All mock tests are FREE till 31 December — register to save your progress

One of the disadvantages of user-level threads compared to kernel-level threads is:

Pick an option to check yourself, or open the answer below.

Show answer & explanation

Correct answer: A. If a user-level thread executes a system call, all threads in that process are blocked.

Explanation

In the pure user-level thread model the kernel is unaware of individual threads and sees only the single underlying process, so when any one of its threads makes a blocking system call, the kernel blocks the entire process, which blocks every other thread in it too, even if they are otherwise ready to run. This is the classic drawback that kernel-level threads avoid, since the kernel can schedule another thread of the same (or a different) process the instant one thread blocks. Options (ii)-(iv) are, in fact, usually cited as advantages of user-level threads (application-controlled scheduling, no kernel-mode switch overhead, and simple local library calls for thread management), not disadvantages. So the correct disadvantage is all threads in that process are blocked, option (i).

More System Software and Operating System questions