1) The following state transition table is a simplified model of process management, with the labels representing transitions between states of READY, RUN, BLOCKED, AND NONRESIDENT.
|
READY
|
RUN
|
BLOCKED
|
NONRESIDENT
|
READY
|
-
|
1
|
-
|
5
|
RUN
|
2
|
-
|
3
|
-
|
BLOCKED
|
4
|
-
|
-
|
6
|
Give an example of an event that can cause each of the above transitions. Draw a diagram if that helps.
2) In a number of early computers, an interrupt caused the register values to be stored in fixed location associated with the given interrupt signal. Under what circumstances is this a practical technique? Explain why it is inconvenient in general.
3) You have executed the following C program:
main ()
int pid;
Pid = fork ();
Printf ("%d n , pid);
What are the possible outputs, assuming the fork succeeded?
4) It was pointed out that two advantages of using multiple threads within a process are that (1) less work is involved in creating a new thread within an existing process than in creating a new process, and (2) communication among threads within the same process is simplified. Is it also the case that a mode switch between threads within the same process involves less work than a mode switch between two threads in different processes?
5) In the discussion of ULTs verses KLTs, it was pointed out that a disadvantage of ULTs is that when a ULT executes a system call, not only is that thread blocked, but also all of the threads within the process are blocked. Why is that so?
6) If a process exits and there are still threads of that process running, will they continue to run? Explain.