COP5615 Operating System Principles

Spring 2001

Project Requirements



All the requirements in this document applies to all the projects that will be assigned this semester unless otherwise noted in any specific project specification document.

These guidelines should be followed strictly!

All project assignments are individual and your projects must be your own work. No group work is allowed. We will look at every source file and read every report. Therefore you need to make sure that both are your original work.

All project assignments will be implemented in Java. We will be using Sun's Java SDK 1.2 (a.k.a. Java 2) installed on CISE Solaris machines. You can use any Java SDK 1.2  (Windows and Unix platforms) to develop your programs, but we recommend you to test your code in CISE Sun Solaris machines before you submit your programs.

CISE Account

The first step in being successful completing projects is to have a CISE account. There are two important reasons to have one. First as indicated above, our target system for all the projects is CISE Unix machines and we will grade your projects on these machines. Therefore you should test your projects on this environment to avoid undesirable situations. The other reason is the only way to submit projects is the turnin utility and it has to be invoked on a CISE Unix machine by a CISE account.

We will send out project grades and other class related information to your CISE e-mail addresses. Therefore it is important that you should let us know your CISE login names. If the CISE e-mail is not your favorite e-mail, you can forward e-mails from your CISE account to any e-mail address that you frequently check. To do so please refer to the link http://www.cise.ufl.edu/help/mail/forwards/.

Since it takes some time to obtain an account, if you do not have it, apply for one ASAP.

Submission

For each project you should submit all of the following:

You should NOT submit:


We will compile your programs and then test them.

Please note that none of the the files have an extension and all the file names are in lower case, except Java files. (i.e. report.txt, REPORT, Report.dat, MAKEFILE, makefile.txt are all INVALID)

How to Submit

There is a utility, turnin, installed in CISE Unix machines. You will be using this utility to easily submit your programs. There are man pages for this utility and we strongly encourage you to read this documentation in advance and be familiar with it. To do so type man turnin in command prompt of any CISE Unix machine.

To submit project X you need to do the following:

turnin -c cop5615sp01 -p projX <files>

cop5615sp01 identifies the class for which, you are submitting  your project. projX identifies the project your are submitting.
<files> are the names of all the files in your project separated by commas. You can use wildcards in file names like *.java.

Important note: After you turn in your files, turnin will display a message indicating your submission is accepted. Even if you get this message (due to a bug in turnin) you still need to do the following to make sure that your submission is complete:

turnin -c cop5615sp01 -p projX -v

If you can't see all the files you submitted as the output of this command, repeat the submission procedure.

Local Students:

You MUST use the turnin command to submit your files as illustrated above. Submissions in any means except turnin will NOT be accepted!

FEEDS Students:

To submit project X you need to do the following:

turnin -c cop5615sp01 -p FEEDSprojX <files>

and then check your submission as indicated above except that the -p arguement is FEEDSprojX.

FEEDS students can e-mail their projects for convenience but this is not preferred unless there is difficulty in remote login.
 
REPORT

You are to provide a file named report that should include:

Please note that your reports MUST consist of your own sentences, if you have to copy anything from anywhere you have to quote it and provide reference.

Also a perfect program does not necessarily deserve full points if it is not complemented with a good report. A good report is a brief one that help its reader to understand the system thoroughly from the problem definition through the limitations.

Makefile

We will use the makefile you provided to compile the programs in your project. Please be sure that it works as expected, otherwise we will not be able to test your project. For convenience, we recommend that you use this file yourself, too, while testing your system.

Here is a sample makefile:

------------------------
    all:
        javac X.java
        javac Y.java
        javac Z.java
    cl:
        rm -f *.class
        rm -f log
------------------------

This file assumes we have three Java source files: X.java, Y.java and Z.java. (Note that javac *.java should also work)
cl stands for clean and is used to remove all .class files.
To compile your files simply type make, to delete .class files and the log file type make cl.
 

Grading Criteria

Correct Implementation/Execution/
Graceful Termination/Nonexistence of Run-away processes     65%

Report                                                      20%

Stylish Code/Readability/Comments/
Structure and Readability of Output                         15%

TOTAL                                                        100%
 

Some Java Resources

These are the links to Java resources that you might find useful:

Java API
http://java.sun.com/products/jdk/1.2/docs/api/

Java Tutorial Page
http://java.sun.com/docs/books/tutorial/