Sunday, December 18, 2011

User Thread vs Kernel thread

How User Threads differ from Kernel threads.
Discuss different Multithreading Models like ONE-ONE,MANY-ONE,MANY_MANY

Discuss User Space meomry vs Kernel Space
http://en.wikipedia.org/wiki/User_space

1 comment:

  1. User-level thread packages usually run on top of an existing operating system. The threads within the process are invisible to the kernel. Threads are scheduled by a runtime system which is part of the process code. Switching between user-level threads can be done independently of the operating system. User-level threads, however, have a problem: when a thread becomes blocked while making a system call, all other threads within the process must wait until the system call returns. This restriction limits the ability to use the parallelism provided by multiprocessor platforms.

    Kernel-level threads are supported by the kernel. The kernel is aware of each thread as a scheduled entity. In this case, a set of system calls similar to those for processes is provided, and the threads are scheduled by the kernel. Kernel threads can take advantage of multiple processors; however, switching among threads is more time-consuming because the kernel is involved.

    There are also hybrid models, supporting user-level and kernel-level threads. This gives the advantages of both models to the running process. Solaris offers this kind of model.

    ReplyDelete