Answer the following questions:

1. Describe context-switching in a common, real-life example, and identify the “process” information that needs to be saved, changed, or updated when context-switching takes place.

2. Five jobs (A, B, C, D, E) are already in the READY queue waiting to be processed. Their estimated CPU cycles are respectively: 2, 10, 15, 6, and 8. Using SJN, in what order should they be processed?  Explain your answer.

3. Describe the advantages of having a separate queue for a Print I/O interrupt and for a Disk I/O interrupt as discussed in Lecture 4’s “Example: Job and Process State Transition”.

4. Compare the processors’ access to main memory for the loosely coupled configuration and the symmetric multiprocessing configurations. Give a real-life example (not from lecture or textbook!) where the symmetric configuration might be preferred.

5. Describe the programmer’s role when implementing explicit parallelism.

6. Give a real-life example (not from lecture or textbook!) of busy-waiting.

7. Compare and contrast multiprocessing and concurrent processing.  Describe the role of process synchronization for both systems.

8. Describe the purpose of a buffer and give an example from your own experience (not from lecture or textbook!) where its use clearly benefits system response.

9. Give an original “real life” example (not related to a computer system environment, not discussed in our textbook or in lecture) of each of these concepts: deadlock, starvation, and race.

10. Using the narrow staircase example from the beginning of this chapter, create a list of features or actions that would allow people to use it without causing deadlock or starvation. 

11. As discussed in this chapter, a system that is in an unsafe state is not necessarily deadlocked. Explain why this is true. Give an example of such a system (in an unsafe state) and describe how all the processes could be completed without causing deadlock to occur.

12. Given the four primary types of resources—CPU, memory, secondary storage, and files—select for each one the most suitable technique described in this chapter to fight deadlock and briefly explain why you choose it.

13. Explain the differences between blocking and buffering.

14. Minimizing the variance of system response time is an important goal, but it does not always prevent an occasional user from suffering indefinite postponement. What mechanism would you incorporate into a disk scheduling policy to counteract this problem and still provide reasonable response time to the user population as a whole?  Explain your answer.

15. Explain the difference between buffering and spooling.

16. Under light loading conditions, every disk scheduling policy discussed in this chapter tends to behave like one of the policies discussed in this chapter. Which one and why?

17. Track requests are not usually equally or evenly distributed. For example, the tracks where the disk directory resides are accessed more often than those where the user’s files reside. Suppose that you know that 50 percent of the requests are for a small, fixed number of tracks. Which one of the scheduling policies presented in this chapter would work best under these conditions?  Explain your answer.