CS4513 B-Term 1996
Programming Assignment #3
Due Date: Thursday 12/19

Goal: The primary goal of this assignment is to implement Remote Procedure Calls for the previous project's file operations and run the core file system remotely.

Client Process: The client is responsible for processing the input file, deciding which remote functions to call, calling them (via the client stub), and displaying the return value(s) whenever appropriate. This process should accept 2 command-line arguments: first, the name of the input file to process and second, the name of the host running the server.

Server Process: The server is responsible for implementing the file system. As such, it should contain most of the code you've written this term and should (minimally) provide remotely-callable versions of the following functions:

New Filename NumBlocks
Extend Filename NumBlocks
Truncate Filename NumBlocks
Delete Filename
Short
Long

This assignment does not require the implementation of sub-directories, but they may be included if you implemented them last time and would like to see them completed. Although RPCs open up a number of additional alternatives, all programs will be graded with respect to implementing the core set of functions listed above (no tiered grading). If your group is bored by the minimal requirements feel free to design/implement any number of additions/alternatives provided they are approved by me before Tuesday, 12/17, at 5:00pm.

Please run the local and remote processes on the same machine until you finish debugging the code. And try to remember to kill off the server processes if you are using machines that others use.

What to turn in: This assignment requires the same paper submission required by previous assignments: one page per group, listing the members, signed by each, each member's % contribution, a sentence or two describing each member's contribution, and step by step instructions for compiling and running (this time both client and server processes). Include you team's input file that demonstrates the correctness of your program. As before, the programs must compile and run on bigwpi.