CSE 306 -- Operating Systems

Spring 2002

General Information about the OSP/2 Programming Project

For the project, we shall use the OSP/2 system, a simulated environment for OS design. OSP simulates the events that result from the execution of processes that run in a normal system as well as various hardware events. Your job is to write several OS modules over the course of the semester that react appropriately to these events.

Details of how to do this are provided in the OSP/2 manual. The manual describes the system-call interface for each OSP module and gives an overview of what each module is supposed to do. The interface description does not supply all the details, however. These are left for you to figure out (based on your knowledge of the course material)!

The programming language to be used in the project is Java with JDK 1.2.2. To use Java in the UG lab, put the following in your ~/.cshrc file, if you are using CSH or TCSH:

setenv PATH  /usr/local/jdk1.2.2/bin:$PATH
or the following in your ~/.bashrc or ~/.profile, if you are using BASH, KSH and related:


Where should I work?

You should use the Undergraduate Computing Lab, right next-door to the CS library. The lab can be accessed by a special access card. You have to purchase this card (from the undergraduate secretary), which also allocates certain budget for printing in that lab.
You don't have to buy a card to get an account. For example, you can use the account by logging in from home. To request an account in this lab, click on the "Request account" link on the
UG lab home page, and follow the directions.

Can I work with a partner?

You are to work alone on the first programming assignment.

Using Version Control System

You must use the Concurrent Version Control System (CVS) in your project. No project will be accepted without first checking the history of changes made to the project through the CVS system AND making sure that substantial activity was happening there over a period of time.

To enable us to check your CVS log and to run and grade your project, you must do this:

cd ~
chmod 711 .
mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
touch ~/.ssh/authorized_keys2
cat ~cse306/id_cse306.pub >> ~/.ssh/authorized_keys
cat ~cse306/id_dsa_cse306.pub >> ~/.ssh/authorized_keys2

Important: Make sure that your home directory has mode 711 and the ~/.ssh directory has mode 700. This is what the first few instructions above are supposed to achieve. With mode 711, your directory becomes searchable (though not readable), so you might want to change permissions on your subdirectories to disallow read access completely.

To learn more about CVS, type ``man cvs''. Much more information is available at: http://CVShome.org. Additional info (if you are really hungry for it) is also available at http://www.loria.fr/~molli/cvs-index.html . Another useful site is http://www.refcards.com/about/cvs.html, which publishes various reference cards.

I prepared a short summary (absolutely the bare minimum) of what you need to do to create your own CVS repository for this course. Here is a tutorial about the use of CVS (and some info about SSH).

Which editor?

We suggest that you use XEmacs. It has a nice interface to CVS, called pcl-cvs, which releaves the user from having to remember most of the command line CVS instructions. Most of the CVS commands are available through the Tools/PCL_CVS menu of XEmacs. After you invoke cvs-update or cvs-examine command, XEmacs will put you into a special CVS buffer. At this point, you should see a new menu called CVS. There are many more CVS commands under this menu.

Using Secure Shell

If you have a Unix box at home, it is also possible to arrange to access your repository (located on the UG lab's machines) remotedly, through CVS and SSH. SSH is a replacement for rlogin/rcp/etc., but it is secure. Passwords don't fly back and forth unencrypted, because SSH uses RSA public key encryption.

Type ``man ssh'' for more information on SSH. If this still looks murly to you, use your favorite search engine and type "ssh tutorial". You will get more hits than you care about.

You can download a copy of SSH for your home computer (only the Unix versions are free of charge, i.e., Linux, FreeBSD, etc.) from http://www.ssh.com/download/.

Description of Project Assignments

Please read the OSP manual for general information about OSP as well as the specifics of the projects.