CS 3733 Operating Systems, Spring 2005 Assignment 5


Please note change in description of the client command line parameters as modified on April 21.


Due Monday, May 2 at 2 PM.

Note that this is the last assignment and the usual 12-hour grace period does not apply to this assignment.

You must be prepared to demonstrate your programs in the Sun lab on May 2 at 2 PM.

For this assignment you will extend the programs of Assignments 3 and 4 to use network communication. You will test this with the server and client running on different machines. Use the programs from Assignment 4 if it is working. Otherwise you can use the programs from Assignment 3 as the starting point.

Part 0:
Make sure you have Assignment 3 working.


Part 1:
Rewrite your server to be a parallel network server. It will take a single command line parameter, the port number. When a connection is made, the server forks a child process to handle the communication. The server can handle additional connections while the child is handling its connection.


Part 2:
Rewrite your client so that it can communicate with your new server. It will take three command line parameters, the name of the server machine, a port number and a directory.

Test your client and server as you did for Assignment 3.


Extra credit
You can do either or both of these extra credit problems to partially make up for a bad grade on one of the midterm exams.

Extra credit part 1:
Make your server work with signals as in Assignment 4. This may be more difficult than it first seems as the signal handler needs information generated by the children.

Extra credit part 2
Modify the client and server programs so that files can be updated across the network. When the client detects that there are files that need to be created (New File) or replaced (Update File) the file will be transferred from the server to the client and appropriately stored on the disk.


Handing in your program:
Use this cover sheet. Be sure to include all source files (you don't need to include the uici or restart libraries). Be sure to include all include files you have written for this assignment.

On Monday, May 2, come to the Sun Lab instead of coming to class.

If you do not have anything to demonstrate, turn in your assignment to me. You are free to go. Be sure you give a detailed description of the status of your program on the cover sheet.

To demonstrate your program: