List the disadvantages of user level threads in operating systems
Question:
List the disadvantages of user-level threads
Answer:
Here are the major disadvantages of user level threads in OS;
- User-Level threads are invisible to the OS. So, they are not well integrated with the OS. As a result, OS can make poor decisions like scheduling a process with idle threads, blocking a process whose thread initiated an I/O even though the process has other threads that can run and unschedule a process with a thread holding a lock. Solving this requires communication between kernel and user-level thread manager.
- There is a lack of coordination between threads and operating system kernel. Therefore, process as whole gets one time slice irrespective of whether process has one thread or 1000 threads within. It is up to each thread to relinquish control to other threads.
- Can’t leverage multiple cores, since OS only knows how to schedule processes.
- User-level threads require non-blocking systems call i.e., a multi-threaded kernel. Otherwise, entire process will blocked in the kernel, even if there are runnable threads left in the processes. For example, if one thread causes a page fault, the process blocks.
- When a thread is blocked, all of the threads within that process are blocked
*********************
Related
Questions:
No comments:
Post a Comment