User-level threads vs Kernel-level threads

Description

The difference between user-level and kernel-level threads regarding scheduling.
Ahmad Abdelwahed
Note by Ahmad Abdelwahed, updated more than 1 year ago
Ahmad Abdelwahed
Created by Ahmad Abdelwahed about 9 years ago
29
0

Resource summary

Page 1

A major difference between user-level threads and kernel-level threads is the performance.Doing a thread switch with user-level threads takes a handful of machine instructions.With kernel-level threads it requires a full context switch, changing the memory map and invalidating the cache, which is several order of magnitude slower.On the other hand, with kernel-level threads, having a thread block on I/O does not suspend the entire process as it does with user-level threads.User-level thread can employ an application-specific thread scheduler. This strategy maximizes the amount of parallelism in an environment where threads frequently block on disk I/O. With kernel-level threads, the kernel would never know what each thread did.In general, application-specific thread schedulers can tune an application better than the kernel can.

Show full summary Hide full summary

Similar

Components of An Operating System - Jason Madappattu
Jason EM
OS1: Operating system basics
MpoMp
OS9: Processes
MpoMp
OS11: Interprocess communication
MpoMp
Operating Systems
bubblesthelabrad
OS10: Threads
MpoMp
OS Final
Hello World
OS2: Operating systems' history
MpoMp
OS3: Hardware
MpoMp
OS4: Operating system types
MpoMp
OS5: Operating system concepts
MpoMp