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:




  1. (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.




















  2. (12 points) Project 2.

    1. What modifications needed to be made to the wpi file system in the Linux kernel to detect that when any file is modified?


    2. How did the kernel know if the file modification was of interest to a user-level process?


    3. How did the kernel notify the user-level process that a file of interest had changed?


  3. (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.

    1. 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.


    2. What are the advantages and disadvantages of this approach relative to other possible approaches?


  4. (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.


  5. (10 points) File sharing.

    1. Distinguish between Unix semantics and session semantics for implementation of sharing in file systems.


    2. How are these approaches used by the Sun Network File System and by the Andrew File System?


  6. (10 points) Maintaining state by distributed file servers.

    1. What is an advantage of a distributed file server that maintains state between requests from the same client?


    2. What is an advantage of a distributed file server that does not maintain state between requests from the same client?


    3. Which of these approaches is used by the Sun Network File System? Which by the Andrew File System?


  7. (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.

    1. Assume that the average load across all machines is consistently low. Would a load sharing mechanism be useful in this environment? Why?


    2. Assume that the average load across all machines is consistently high. Would a load sharing mechanism be useful in this environment? Why?


    3. 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?


    4. 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.




















  8. (15 points) Proxy caches are used in the Web to store copies of previously requested objects for future reuse.

    1. How does a Web proxy cache handle coherency between its copy of an object and the copy stored at the origin server?


    2. How does this approach compare to that used in distributed file systems?


    3. 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?