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
- 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?
- Consider the following last-one call semantics for RPCs: a caller
repeatedly calls the server until a response is received.
- Give an example of a service for which this semantics is appropriate.
- 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.
- A company's sales brochure touts that its software libaries provide
support for Atmost-once multicast RPC
- Give an example of an application where such an RPC might be useful.
- Suggest how such an RPC might be realized.
- 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?
- Java and other languages support exceptions, which are raised when an error
occurs. How would you implement exceptions in RPCs and RMIs?
- Suppose you could make use of only transient synchronous communication
primitives. How would you implement primitives for transient asynchronous
communication?
- 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?
- 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?
- Statically associating a single thread with a light weight process is not
such a good idea. Why not?
- 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.
- 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