CS550 Advanced Operating Systems

Instructor: Xian-He Sun

Department of Computer Science

Homework 2 (Due Date: 3/3/09, Tuesday)

  1. Exercise 4.4 (Text: Tanenbaum and Steen, Prentice Hall) v2
    Consider a procedure incr with two integer parameters. The procedure adds one to each parameter. Now suppose that it is called with the same variable twice, for example, as incr(i,i). If i is initially 0, what value will it have afterward if call-by-reference is used? How about if copy/restore is used?
  2. Exercise 4.7 (Text: Tanenbaum and Steen, Prentice Hall) v2
    Assume a client calls an asynchronous RPC to a server, and subsequent waits until the server returns a result using another synchronous RPC. Is this approach the same as letting the client execute a normal RPC? What if we replace the asynchronous RPCs with one-way RPCs? (notice the problems are changed, which is highlighted in red).
  3. Exercise 4.10 (Text: Tanenbaum and Steen, Prentice Hall) v2
    Describe how connectionless communication between a client and a server proceeds when using sockets.
  4. Exercise 4.13 (Text: Tanenbaum and Steen, Prentice Hall) v2
    Suppose that you could make use of only transient asynchronous communication primitives, including only an asynchronous receive primitive. How would you implement primitives for transient synchronous communication?
  5. Exercise 4.21 (Text: Tanenbaum and Steen, Prentice Hall) v2
    How could you guarantee a maximum end-to-end delay when a collection of computers is organized in a (logical or physical) ring?
  6. Exercise 2.5 (Text: Coulouris, Dollimore, and Kindberg, Addison Wesley)
    The host computers used in peer-to-peer systems are often simply desktop computers in user's offices or homes. What are the implications of this for the availability and security of any shared data objects that they hold and to what extend can any weakness be overcome through the use of replication?
  7. Exercise 2.9 (Text: Coulouris, Dollimore, and Kindberg, Addison Wesley)
    Distinguish between buffering and caching.
  8. Exercise 2.11 (Text: Coulouris, Dollimore, and Kindberg, Addison Wesley)
    Consider a simple server that carries out client requests without accessing other servers. Explain why it is generally not possible to set a limit on the time taken by such a server to respond to a client request. What would need to be done to make the server able to execute requests within a bounded time? Is this a practical option?
  9. Contact Information

    1. Email: sun@iit.edu
    2. Telephone: (312) 567-5260
    3. FAX: (312) 567-5067
    4. USMail: Xian-He Sun Department of Computer Science Illinois Institute of Technology 10 West 31st Street Chicago, IL 60616-3793