Problem 1 (locks and condition variables):
- hard-copy listings of synch.h and synch.cc (use enscript to
save paper!)
- hard-copy of README text describing how you implemented locks
and condition variables (discuss problems that needed to be
solved, possible solutions that you can think of, and why you
chose the way you actually used in your implementation).
- submit electronically the files synch.h, synch.cc, your make file
and any other file that you changed or added. Be sure to describe
how to install the files if you added new files (what directory, etc.)
If I can't compile your code, you'll have problems to convince me
that your solution actually works :-)
Problem 2 (consumer/producer problem):
- hard-copy listing of your code
- hard-copy of README text describing your solution. Discuss why you
implemented it the way you did it. Include any assumption you
might have made.
- submit electronically the file prob2.cc and any other file that is
needed for this problem (and was not given to you).
Problem 3 (laundromat):
- hard-copy listing of your NACHOS solution (probably listing of prob3.cc)
- hard-copy of README text describing
(a) the problems with the original laudromat code given to you
(b) your modifications to make it work properly
(c) your actual NACHOS implementation
Include any assumption you might have made.
- submit electronically the file prob3.cc and any other file that
is needed for this problem (and was not given to you).
Problem 4 (H2O problem):
- hard-copy listing of your actual NACHOS implementation (probably
listing of prob4.cc)
- hard-copy of README text describing
(a) your solution
(b) any assumptions you made
- submit electronically the file prob4.cc and any other file that
is needed for this problem (and was not given to you).
How do you submit your files electronically?
- every group submits one solution electronically (i.e., one team member
sends me the files).
- do not submit ANY files that were given to you unless you changed the
files (e.g., you are not supposed to change files in the machine
directory, i.e., do not submit these files!!!).
- include your combined README file (containing all the text (write-up)
solutions for problems 1 - 4) in the electronic submission.
- Make sure the README file explains how to install files that you
added to NACHOS (e.g., if you created a file called locks.h, and
your make file expects this file in the machine directory, then
this should be explained in the README file!).
- Steps to submit the files:
1. add all files that you want to submit to a "tar" archive.
"tar" is a UNIX utility that combines individual files into
an archive (similiar to tools like PKZIP, ARC, ZOO or LHarc on PCs,
except that "tar" does not compress the archive.)
If you don't know how to use "tar", read the man page for tar by
typing in
man tar
Please, add only INDIVIDUAL files to the archive, not entire
directory hierarchies.
Please make sure that the archive name is "hw1.tar."
2. compress the "tar" archive file using the "gzip" utility.
This is actually pretty easy. If your archive name is "hw1.tar",
type in
gzip hw1.tar
and gzip will turn it into a file called hw1.tar.gz that is
(hopefully) substancially smaller (i.e., compressed).
Read the man page for gzip for more information on this program.
3. "Uuencode" the file hw1.tar.gz. "uuencode" is a tool that allows
you to convert a binary file (like the gzip file) into a pure
ASCII file (only 7 bit characters), which then can be emailed
(many networks are not 8-bit capable, thus the need for uuencoding).
(use man page for uuencode for more info).
4. Email the "uuencoded" file with your favorite email program to
If you send it to any other email address, it will NOT be considered
as submitted (i.e., DO NOT send it to ostein@cs!!!).
Use "hw1 submission" as your subject line.
You might be wondering why I don't give you a handy-dandy submit script
that automatically takes over this multi-step job. Well, the reason is
that I want you to get somewhat familiar with some important UNIX tools.
The description here sounds much more complicated than the actual process
is. Read the man pages (another reason for not giving you a script...
I want you to get used to the concept of having to use man pages) for
tar, gzip, and uuencode. They will tell you everything you need to know
(and even more).
You should try out steps 1 - 3 (i.e., everything except the actual
submission by email) SOON with a couple of unimportant files (e.g.,
copy some files into a test directory and play around with the tools).
If you run into trouble and can't figure out why something doesn't
work, ask your classmates or send me email.
All the tools above should create identical files on all platforms,
but to avoid any problems, please do the entire submission process
on one of the Elaines (SparcStations).
Hard-copy listings etc. are due at 3 PM on Wednesday, at Tresidder
TAC (there will either be a box or I'll be in my office). You can,
of course, turn in the stapled (!) solution during class that day.
The email submission must be time-stamped before or exactly at 3 PM
on Wednesday.
Oliver
Problem 1: 40 points
Problem 2: 20 points
Problem 3: 20 points
Problem 4: 20 points
TOTAL: 100 points
Please note that I'll take off points if your README is
- incomplete (i.e., doesn't provide the necessary information to
understand your solution)
- extremely long (it is NOT required to justify every single line of
code in the README file!)
Oliver