3
$\begingroup$

Find whether given statement True or False? Explain.

User level threads are transparent to the kernel?


My attempt :

False. Since, user level threads are managed by a user level library however, they still require a kernel system call to operate. It does not mean that the kernel knows anything about thread management. Not at all, it only takes care of the execution part. the lock of the cooperation between user level threads and the kernel is a known disadvantage.


Somewhere it explain as : "The kernel knows nothing about user-level threads and manages them as if they were single-threaded processes".

I found another statement "User level threads are transparent to OS and kernel level threads are scheduled by OS". It seems correct.

My question is :

Are user level threads transparent to the kernel? What is meaning of transparent here?

$\endgroup$
4
  • $\begingroup$ Possible partial duplicate: cs.stackexchange.com/questions/1065/… $\endgroup$
    – Pseudonym
    Commented Dec 20, 2015 at 23:54
  • $\begingroup$ This may help cs.stackexchange.com/q/49309/10082 $\endgroup$
    – PleaseHelp
    Commented Dec 21, 2015 at 14:39
  • 2
    $\begingroup$ That was a gate cs exam question.. Nice question man $\endgroup$
    – void
    Commented Dec 10, 2017 at 18:56
  • $\begingroup$ User level threads can be assigned to kernel level threads. However opposite is not true. $\endgroup$ Commented Sep 2, 2020 at 17:14

1 Answer 1

6
$\begingroup$

As, the linked answers and the explanations provided by your textbooks describe that, user level threads are transparent to the kernel, yes they are indeed.

Kernel Level threads are not transparent to the kernel, but user level threads are. Because you yourself said, that User Level Threads are managed by the User level library, and what happens is, the user level threads can get assigned to one or many kernel threads. About these kernel threads the kernel keeps track of (are not transparent to kernel). But it doesn't know which user threads have got assigned onto these kernel threads and how many.

Say, if five user threads are assigned onto one kernel thread and 4 other user threads are assigned onto another kernel thread, the kernel sees just two kernel threads (requesting execution) and doesn't know that there are altogether 9 threads, but it just knows that the program called the User Level Application(s) is(are) using two of the kernel threads.

I hope this helps. Also, I suggest you read the linked posts carefully. They're pretty explanatory.

$\endgroup$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.