- Back to Home »
- Multi-threading Models in Operating System
Multi-threading Models in Operating System:
Different multithreading models are as follows:
1. Many-to-one Model:
In Many-to-one Model, many user level treads are mapped to one kernel thread. It is efficient because it is implemented in user space. A process using this model will be blocked entirely if a thread makes a blocking system call. Only one thread can access the kernel at a time so it cannot be run in parallel on multiprocessor.
2. One-to-one Model:
In this model, each user thread is mapped to a kernel thread. It provides more concurrency because it allows another thread to execute when a thread makes a blocking system call. It facilitates parallelism in multiprocessor. Each user thread requires a kernel thread which may affect the performance of the system. Creation of threads in this model is restricted to a certain number. This model is used by Windows NT, Windows 2000 and OS/2.
3. Man-to-Many Model:
This model multiplexes many user level threads to a smaller or equal number of kernel threads. The number of kernel threads may be specific to either a particular application or a particular machine. The user can create any number of user threads and corresponding kernel threads can run in parallel on multiprocessor. When a thread makes a blocking system call, the kernel can execute another thread. It is used by Solaris 2, IRIX, and Tru64.