CS 4513 Distributed Computing Systems WPI, D Term 2001
Craig E. Wills Midterm Exam (100 pts)
Given: Thursday, April 5, 2001








NAME: $\underline{\hspace*{3in}}$










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: $\underline{\hspace*{3in}}$




1.
(9 points) Distinguish between an absolute and relative file name. Give an example of each type of file name.


2.
(10 points) Experimental observation shows that most files are small with a few files being large. Identify a file system we have discussed in class and explain how its design handles efficient access for both types of files.


3.
(15 points) In Project 1 you created a system call to return the file modification time for a given file in the Linux Operating System.
(a)
What data structure holds the modification time of a file in Linux?


(b)
Where is the modification time stored for a file stored in the FAT file system?


(c)
Where is the modification time stored for a file stored in the NT File System?


4.
(10 points) Distinguish between location and access transparency in a distributed system. Give an example of location and access transparency.


























5.
(10 points) Given the inode number for the current working directory in the Unix/Linux file system, describe the algorithm used by the operating system to map this number to the full path name for the directory.


6.
(10 points) What does it mean to have memory-mapped access to a file? Will mapping the file into memory guarantee better performance in accessing the contents of the file than with traditional file access? Justify your answer.


7.
(10 points) An RPC client sends a request to an RPC server.
(a)
What technique is used by the client to distinguish between the case where the server is taking a long time to calculate the computation and the case where the server has failed?


(b)
What technique is used by the client to distinguish between case where the server is taking a long time to calculate the computation and the case where the computation is in an infinite loop?

8.
(8 points) What is an idempotent operation? How does it relate to RPC?


























9.
(18 points) The block size used in a file system is an important consideration.
(a)
What is the problem of using large block sizes in a file system?








(b)
How does the problem of large block sizes relate to the redesign of the FAT-16 file system to the FAT-32 file system?








(c)
How is the problem of large block sizes handled in the Berkeley Fast File System?








(d)
Consider a possible file system design that divides disk space into disk blocks of variable size. For example, there are some blocks of 1KBytes, others of 4KBytes and still others of 8KBytes. A list of free blocks is maintained and allocated for each size. Propose and describe how the data blocks for files in such a file system should be allocated and maintained. What are advantages and disadvantages of this approach in comparison with existing systems?