CMPSCI 677: Homework 2

Due: 11:59pm, Friday, March 15 2002
Off-campus students: one week from when you view Lecture 11
Web posted: Thu Mar 7, 5pm

  1. An experimental file server is up 3/4 of the time and down 1/4 of the time, due to bugs. How many times does the file server have to be replicated to give an availability of at least 99 percent?

  2. Consider the following last-one call semantics for RPCs: a caller repeatedly calls the server until a response is received.
    1. Give an example of a service for which this semantics is appropriate.
    2. Give an example of a service for which this semantics is NOT appropriate. Explain why and indicate the semantics that would be appropriate for your example.

  3. A company's sales brochure touts that its software libaries provide support for Atmost-once multicast RPC
    1. Give an example of an application where such an RPC might be useful.
    2. Suggest how such an RPC might be realized.

  4. To complete its task, a client has to invoke RPCs on three different servers one after another. However, the client desires to leave no trace of any of its calls if even one of the servers is unable to respond successfully. What must the client do to achieve this? How much the servers be designed to satisfy the client needs?

  5. Java and other languages support exceptions, which are raised when an error occurs. How would you implement exceptions in RPCs and RMIs?

  6. Suppose you could make use of only transient synchronous communication primitives. How would you implement primitives for transient asynchronous communication?

  7. Imagine we have a token bucket specification where the maximum data unit size is 1000 bytes, the token bucket rate is 10 million bytes/sec, the token bucket size is 1 million bytes and the maximum transmission rate is 50 million bytes/sec. How long can a burst of maximum speed last?

  8. In this problem, you are to compare reading a file using a single-threaded file server and a multi-threaded server. It takes 15 msec to get a request for work, dispatch it, and do the rest of the necessary processing, assuming that the data needed are in a cache in main memory. If a disk operation is needed, as is the case a third of the time, an additional 75 msec is required, during which time the thread sleeps. How many requests/sec can the server handle if it is single-threaded? If it is multi-threaded?

  9. Statically associating a single thread with a light weight process is not such a good idea. Why not?

  10. Strong mobility in Unix systems could be supported by allowing a process to fork a child on a remote machine. Explain how this would work.

  11. Consider a process P that requires access to file F that is locally available on the machine where P is currently running. When P moves to another machine, it still requires access to F. If the file-to-machine binding is fixed, how could the system-wide reference to F be implemented?

Prashant Shenoy
Last modified: Thu Mar 7 16:33:13 EST 2002