One of the disadvantages of user level threads compared to Kernel level…

2017

One of the disadvantages of user level threads compared to Kernel level threads is

  1. A.

    If a user level thread of a process executes a system call, all threads in that process are blocked.

  2. B.

    Scheduling is application dependent.

  3. C.

    Thread switching doesn’t require kernel mode privileges.

  4. D.

    The library procedures invoked for thread management in user level threads are local procedures.

Attempted by 343 students.

Show answer & explanation

Correct answer: A

Answer: If a user level thread of a process executes a system call, all threads in that process are blocked.

Key reason: User-level threads are implemented in a user-space library. The kernel is unaware of these individual threads and views the entire process as a single schedulable entity. When one user-level thread performs a blocking system call, the kernel blocks the whole process, which blocks all user-level threads and eliminates intra-process concurrency.

  • Blocking system calls cause global blocking: one blocked thread can stall the entire process.

  • No true parallel execution on multiple CPUs under a many-to-one mapping because the kernel schedules the process as a single entity.

Why the other statements are not disadvantages:

  • Scheduling is application dependent. Scheduling is handled by the user-level thread library, which allows custom policies and flexibility (usually an advantage rather than a disadvantage).

  • Thread switching doesn’t require kernel mode privileges. This is a performance advantage because context switches can be done entirely in user space without expensive mode switches.

  • The library procedures invoked for thread management in user-level threads are local procedures. Managing threads in user space reduces overhead and is generally beneficial.

Mitigations:

  • Use kernel-level threads or hybrid many-to-many models when you need true parallelism and to avoid global blocking on system calls.

  • Use non-blocking or asynchronous I/O and careful library design to reduce the impact of blocking system calls.

A video solution is available for this question — log in and enroll to watch it.

Explore the full course: Mppsc Assistant Professor