Concurrent Programming 8893
Assignment 4
Due: Tuesday, April 6 at 8:55.
You may do this assignment in teams of two. If you do so, please
submit only one copy, but clearly list the names of both team members in
the file header blocks. Submit your solution in a zip file,
assign4_all.zip. Include a high-level
description of your solution structure, either in comments in the source
files or in a separate document.
Do one of the following:
- Design and implement a solution to the replicated shared database
problem. Model the database with an array of integers, each of
which represents an independently lockable portion (e.g, table) of the database.
Your system should consist of the following actors:
- Database servers, each of which maintains a local copy of the
database,
services requests from clients to either read or write particular values,
and communicates with the other servers to ensure that locks are obeyed and
all clients see the same values of the database contents.
- Database clients, which access the database either to read or
write a particular value.
The protocol for modifying a value in the database should be three stage:
lock, write, commit/release; whereas reading may be single stage.
Advice: Start with a database containing only one table. You'll
get most of the marks for just getting that to work. Once that works well,
extend your solution to an arbitrary database.
- Design and implement a distributed solution to another problem of your
own choosing subject to my approval. The problem should be of about
the same level of complexity as the above problem. Be sure that your
solution includes termination detection, if applicable.
Back to 8893 homepage
Last modified:
Tue 2004.03.09 at 09:03 NST
by Dennis Peters