Sample Header Ad - 728x90

What are the relations between processes, kernel threads, lightweight processes and user threads in Unix?

15 votes
1 answer
9135 views
Unix Internal by Vahalia have figures showing the relations between processes, kernel threads, lightweight processes, and user threads. This book gives most attention to SVR4.2, and it also explores 4.4BSD, Solaris 2.x, Mach, and Digital UNIX in detail. Note that I am not asking about Linux. 1. For each process, are there always one or more lightweight processes underlying the process? Figure 3.4 seems to say yes. Why does Figure 3.5(a) show processes directly on top of CPUs, without lightweight processes in between? 2. For each lightweight process, is there always exactly one kernel thread underlying the lightweight process? Figure 3.4 seems to say yes. Why does Figure 3.5(b) show lightweight processes directly on top of processes, without any kernel thread in between? 3. Are kernel threads the only entities able to be scheduled? 4. Are lightweight processes scheduled only indirectly via scheduling the underlying kernel threads? 5. Are processes scheduled only indirectly via scheduling the underlying lightweight processes? Figure 3-4. Lightweight processes Figure 3-5. User thread implementations ---------- **Update:** I asked a similar question for Linux https://unix.stackexchange.com/questions/472300/is-a-light-weight-process-attached-to-a-kernel-thread-in-linux I guessed it might be because the book Operating System Concepts introduces the concepts implicitly using Unix, and Unix and Linux might differ, so I read about Unix kernel. I appreciate the current reply, but I am hoping to reopen the post so that I can accept other replies.
Asked by Tim (106430 rep)
Sep 29, 2018, 08:00 PM
Last activity: Oct 1, 2018, 01:37 PM