Projects
This course will assign programming projects in the Nachos instructional operating system. You will be working on the Java version.
The Linux machines located in EBU3B
B230 or B250
are the recommended platform for your projects.
Project 0: Nachos Install
Project 1: Nachos Threads
Project 2: Nachos Multiprogramming
Project 3: Nachos Virtual Memory
Groups
You will work in groups of at most four on each
project. When your group has been formed, please email
cs120s1@ieng6.ucsd.edu with a list of your names and
logins. You can also think of a fun group name if you want.
Submitting
You will be submitting your projects (for 1, 2, 3) via source control
(Subversion this quarter). More information here when we set it up. For
project 0, you will be submitting KThread.java with the turnin
command.
Grading
The Nachos project portion is worth 30% of your class grade as stated
in class. For project phases 1, 2, 3, we will be requiring an informal
design document ~7 days before the project is due. (This is
experimental, if it turns out you all hate it, we will get rid of this
requirement.) The intent of this is to have you think about the
project ahead of time, so you're not designing and coding at the last
minute. In particular, describe the algorithms and data
structures you plan to use, and how you plan to use them. You may also
include pseudocode if you want.
The 30% is thus broken down in the following way:
| |
Design Document |
Implementation Correctness |
| Project 0 |
0% |
1.5% |
| Project 1 |
1% |
8.5% |
| Project 2 |
1% |
8.5% |
| Project 3 |
0% |
9.5% |
Documentation
There are some resouces for using and learning the Nachos system,
but most of them are for the C++ version, and not too helpful. Below
are links more specific to the Java version or general links you may
find helpful.
