Multi-threading Models || Process and Thread Management || Bcis Notes

Multi-threading Models || Process and Thread Management || Bcis Notes

Multi-threading Models

Some operating system provides a combined user-level thread and Kernel level thread facility. Solaris is a good example of this combined approach. In a combined system, multiple threads within the same application can run in parallel on multiple processors and a blocking system call need not block the entire process. Multi-threading models are three types

  •  Many to many relationships.
  •  Many to one relationship.
  •  One to one relationship.

Many to Many Model
The many-to-many model multiplexes any number of user threads onto an equal or smaller number of kernel threads. The following diagram shows the many-to-many threading model where 6 user-level threads are multiplexing with 6 kernel-level threads. In this model, developers can create as many user threads as necessary and the corresponding Kernel threads can run in parallel on a multiprocessor machine. This model provides the best accuracy on concurrency and when a thread performs a blocking system call, the kernel can schedule another thread for execution


Many to One Model
The many-to-one model maps many user-level threads to one Kernel-level thread. Thread management is done in userspace by the thread library. When a thread makes a blocking system call, the entire process will be blocked. Only one thread can access the Kernel at a time, so multiple threads are unable to run in parallel on multiprocessors. If the user-level thread libraries are implemented in the operating system in such a way that the system does not support them, then the Kernel threads use the many-to-one relationship modes.

There is a one-to-one relationship of user-level thread to the kernel-level thread. This model provides more concurrency than the many-to-one model. It also allows another thread to run when a thread makes a blocking system call. It supports multiple threads to execute in parallel on microprocessors. A disadvantage of this model is that creating user thread requires the corresponding Kernel thread.
OS/2, Windows NT and Windows 2000 use one to one relationship model.

you may also like Implementation of threads

Be the first to comment

Leave a Reply

Your email address will not be published.