recategorized by
1,578 views
2 votes
2 votes

Which of the following is false?

  1. User level threads are not scheduled by the kernel.
  2. Context switching between user-level threads is faster than context switching between kernel-level threads.
  3. When a user thread is blocked all other threads of its processes are blocked.
  4. Kernel-level threads cannot utilize multiprocessor systems by splitting threads on different processors or cores.
recategorized by

2 Answers

Best answer
7 votes
7 votes

There are two approaches to implement a thread package.

(1) User Level Threads

Threads which are created and handled by thread library are called user level threads.

  • OS is unaware of user level threads
  • Creation and handling is cheaper as no system calls are needed. Only CPU registers need to be stored and reloaded
  • But if one thread is blocked, whole process will get blocked.
  • Eg: Pthreads, Mach C-threads, and Solaris 2 UI-threads

(2) Kernel Level thread

Threads which are created and handled by OS are called Kernel Level Threads.

  • Managing is expensive as some system calls are needed.
  • Kernel Level scheduler schedules threads from all processes. Hence it can distribute threads on different processors/cores.
  • Even if one thread is blocked, process will be active. Hence useful if process gets blocked frequently
  • Eg: Windows , UNIX

D is false!!

selected by
Answer:

Related questions

6 votes
6 votes
2 answers
1
gatecse asked Dec 17, 2017
3,193 views
A counting semaphore was initialized t o $7$. Then $\text{20 P (wait)}$ operations and$\text{x V (signal)}$ operations were completed on this semaphore. If the final valu...
2 votes
2 votes
1 answer
3
gatecse asked Dec 17, 2017
2,971 views
Consider the following table :$\begin{array}{|l|l|l|} \hline \textbf{A.} & \text{Activation record} & \textbf{p.} & \text{Linking loader} \\\hline \textbf{B.} & \text{Loc...