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
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
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.
ReplyDeleteKernel-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.