CS 4513 Distributed Computing Systems
WPI, D Term 2001
Craig E. Wills
Final Exam (100 pts)
Given: Tuesday, May 1, 2001
NAME:
This is a closed book (and notes) examination. Answer all questions
on the exam itself. Take the number of points assigned to each problem
and the amount of space provided for your answer as a measure of the
length and difficulty of the expected solution. The exam totals 100
points.
SCORE:
- (10 points)
A basic problem in distributed systems is clock synchronization. Describe
how Cristian's algorithm accounts for transmission delay in sending
messages to synchronize clocks.
- (12 points) Project 2.
- What modifications needed to be made to the wpi file system in the Linux
kernel to detect that when any file is modified?
- How did the kernel know if the file modification was of interest to a
user-level process?
- How did the kernel notify the user-level process that a file of
interest had changed?
- (12 points)
Assume a set of processes in a distributed system want to ensure mutual
exclusion for a shared resource amongst a set of processes. The processes
use a token-based approach.
- Describe this algorithm. Be sure to indicate what a process needs to do to
request exclusive access to the resource and to release its access to the
resource.
- What are the advantages and disadvantages of this approach relative
to other possible approaches?
- (12 points) Assume you have a function/method add(), which
takes two integers as its arguments and returns the sum of the two integers
as its result. Using either Sun RPC or Java RMI (your choice, but not
both!) show how the interface definition file is created for this
function/method. You do not have to write the contents of the
function/method.
Now show the sequence of steps to build the client, build the server and start
execution of the client. Be sure and indicate how the client locates the
server.
- (10 points) File sharing.
- Distinguish between Unix semantics and session semantics for implementation
of sharing in file systems.
- How are these approaches used by the Sun Network File System and by the
Andrew File System?
- (10 points) Maintaining state by distributed file servers.
- What is an advantage of a distributed file server that maintains
state between requests from the same client?
- What is an advantage of a distributed file server that does not maintain
state between requests from the same client?
- Which of these approaches is used by the Sun Network File System? Which by
the Andrew File System?
- (19 points)
As discussed in class, the Fossil Lab could be a possible environment for
implementing a load sharing mechanism to
share distributing computations amongst the set of machines.
- Assume that the average load across all machines is consistently low.
Would a load sharing mechanism be useful in this environment? Why?
- Assume that the average load across all machines is consistently high.
Would a load sharing mechanism be useful in this environment? Why?
- Assume that the average load across all machines is moderate (some
machines with high load and some with low load). Would a load sharing
mechanism be useful in this environment? Why?
- Describe the design of a sender-initiated load sharing mechanism for this
environment. Be sure to identify the location and information policy of
your mechanism and justify these choices.
- (15 points) Proxy caches are used in the Web to store copies of
previously requested objects for future reuse.
- How does a Web proxy cache handle coherency between its copy of an object
and the copy stored at the origin server?
- How does this approach compare to that used in distributed file systems?
- We discussed that multiple servers could serve the content at a Web site.
How could multiple proxy servers work together? What are the advantages
and disadvantages of this approach?