CS 446/646 Principles of Computer Operating Systems

Spring 2009

Homework 1

Due on Wednesday, February 11 at 12:00 pm


Solve the following problems from the text book (Silberschatz, 8th edition):

Chapter 1:

19: Distinguish between the client–server and peer-to-peer models of distributed systems.

22: What is the purpose of interrupts? What are the differences between a trap and an interrupt? Can traps be generated intentionally by a user program? If so, for what purpose?

Chapter 2:

19: Why is the separation of mechanism and policy desirable?

20: It is sometimes difficult to achieve a layered approach if two components of the operating systemare dependent on each other. Identify a scenario in which it is unclear how to layer two system components that require tight coupling of their functionalities.

Chapter 3:

9: Including the initial parent process, how many processes are created by the program shown in Figure 3.28?

Figure 3.28

13: Using the program shown in Figure 3.30, explain what the output will be at Line A.

Figure 3.30

15: Fibonacci sequence

Exercise 3.15

18: echo server

Exercise 3.18

Note: Source codes of programs in the textbook (including the date client and server) can be found here.

What to turn in: A softcopy of your solutions (could be a scanned version of the hard copy of the solutions) to be uploaded to WebCT.