- Many-to-One
- Many user-level threads mapped to single kernel thread.
- Thread management is done in user space but the whole process blocks if any one user thread blocks.
- Used on systems that do not support kernel threads.
- One-to-One
- Each user-level thread maps to kernel thread.
- As thread management is done in kernel space, a blocked thread does not prevent other threads from running and multiprocessor utilization is efficient.
- Examples, Windows 95/98/NT/2000, OS/2
- Many-to-Many
- Allows many user level threads to be mapped to many kernel threads.
- The number of kernel threads provided might be specified according to the application and also the number of processors on a particular host.
- Allows the operating system to create a sufficient number of kernel threads.
- Solaris 2, DEC/compaq (Thu64), HP (HP-UX), and Silicon Graphics (IRIX), Windows NT/2000 with the ThreadFiber package
Figure 2.9:
Thread Models; Many-to-One, One-to-One, Many-to-Many
|
2004-05-25