The goal of this assignment is to become more familiar with JOCAML by implementing a solution to a familiar problem. PA2 required the coding of a solution to the dining philosophers problem in PICT, but all processing was done locally. For this assignment, you must implement a solution to the dining philosophers problem in JOCAML, using two different locations. One location should be the table; the other, a lounge. Philosophers may ONLY eat at the table, and may ONLY think in the lounge. Any solution which prevents deadlock is an acceptable algorithm, as long as it is possible for all philosophers to both eat and think at some point.
JOCAML is available on the CS servers at /projects/dci2002/jocaml/, and the binaries can be found at /projects/dci2002/bin/. The distribution file is at /projects/dci2002/jocaml-beta.tar, or available for download as linked off the course web (here). The distribution includes OCAML, so no additional download is necessary.
As always, if you wish to work together as a group or earn extra credit, you must complete one or more extensions. Remember, if you can think of any project extension you wish to do but which isn't mentioned here, consult either the professor or the TA. Possible extensions include:
The due date for this project is March 28th, 2002, 11:55pm EST. You should use the assignments drop-off box located at the course's WebCT page. Upload a JAR, ZIP, or tar.gz file containing all the relevant documented source files, along with a README file describing the project and its usage. The README should clearly describe how to compile and run the code, as well as explaining your architecture and any design decisions made.