CS 110 Intro to Computer Systems
Dining Philosophers Project
Version .99
Due 5 October, 9 PM
30 Points for Basic Project
10 Points for Demo


You are to implement a Robust Dining Philosopher's solution. Your solution is to work in the following way:

While this is a neat problem, as written no one knows what the heck is going on. Thus you MUST have another process, the Waiter, who monitors the Philosopher's table. Because he wants to get a good tip, every 2 seconds the Waiter looks at the table and determines (prints out in a horizontal Santillo format,


When all the Philosophers are done eating the Waiter prints out one more time and the program dies.

Input Parameters

There are 4 parameters to the program (in order): These parameters are provided as command line parameters and you will get ALL or NONE but you must check for valid values.

Implementation Notes:

Due Dates:

Stuff You Need to Turn-in or Submit:

Where to Turn-In:

To the plastic bin outside mike's office.



If you decide to NOT implement shared memory with a dynamic size array, then use a max size of 10 philosophers, but expect to loose 4 points. You MUST also indicate this choice in the documentation comments at the front of your program.
We reserve the right to change the problem statement when someone demonstrates the ambiguity of said problem statement.

New: For example, if the input was correct, the program should output at the beginning, correct input, the parameters are set to the inputs, and show that. If there is no input or wrong numbers of input, then your program should output that fact and say that the defaults are used and show what the defaults are. If the values of the input are not valid, then our program should state that and say that the defaults are used, and show what the defaults are.

Last modified October 3, 01 by mike@cs.hmc.edu