Definition
User-Level Thread
A user-level thread (ULT) is a thread managed entirely by an application-level library rather than the operating system kernel. The kernel remains unaware of the threads and manages the process as a single unit of execution.
In this model, the application includes a thread library that provides functions for thread creation, termination, and scheduling.
Mechanism
- Management: Scheduling and context switching occur within the user process’s address space.
- Efficiency: Since no mode switch to kernel mode is required for thread switching, ULTs are extremely fast.
- Blocking: A significant disadvantage is that if a ULT performs a blocking system call, the entire process (including all other threads) is blocked by the kernel.
Comparison
ULTs allow for application-specific scheduling algorithms but cannot take advantage of multi-core processors, as the kernel only assigns one CPU core to the entire process.