230 views
3 3 votes

Which of the following statements about threading models are correct?

  1. User-level threads can be implemented without modifying the operating-system kernel.
     
  2. In a pure user-level threading model, a blocking I/O operation by one thread may block all threads of the process.
     
  3. Kernel-level threads belonging to the same process cannot execute simultaneously on multiple processors.
     
  4. A hybrid threading model can map multiple user-level threads onto a smaller number of kernel scheduling entities.

1 Answer

1 1 vote

Statement (A) is correct.
User-level threads are managed by a user-space thread library.
They can therefore be implemented without adding thread-management support to the kernel.

Statement (B) is correct.
In a many-to-one user-level model, the kernel sees the entire process as one schedulable entity.
If one user thread performs blocking I/O, the kernel may block the entire process.

Statement (C) is incorrect.
Kernel-level threads are independently visible to the operating-system scheduler.
Different threads of the same process can therefore be scheduled simultaneously on different processors.

Statement (D) is correct.
A hybrid or many-to-many model multiplexes several user-level threads over a set of kernel-level threads.
It combines user-level management with kernel-supported parallelism.

Answer:
Position:
Show:

Related questions

2 2 votes
1 1 answer
188
188 views
GO Classes asked Jul 16
188 views
Consider the following statements about processes and threads. Which of them is/are correct?Using multiple threads can allow a process to continue performing useful work ...
4 4 votes
1 1 answer
174
174 views
GO Classes asked Jul 25
174 views
Consider the following code:$\texttt{balance}$ is a shared variable initialized to $0$.Each of two worker threads performs:$\texttt{int result = 0;}$$\texttt{result = res...
1 1 vote
1 1 answer
252
252 views
GO Classes asked Jul 17
252 views
Which of the following statements about context switching are correct?When switching between two threads, the registers, stack pointer, and program counter of the outgoin...
2 2 votes
1 1 answer
257
257 views
GO Classes asked Jul 17
257 views
Which of the following statements are correct?With kernel-level threads, if one thread of a process blocks, all the threads of that process will also be blocked. A lock i...