


Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Project; Professor: Nesterenko; Class: OPERATING SYSTEMS; Subject: Computer Science; University: Kent State University; Term: Fall 2004;
Typology: Study Guides, Projects, Research
1 / 4
This page cannot be seen from the preview
Don't miss anything!



This project should be done individually. In this project you will read the Nachos source code and answer questions about it. You will also modify Nachos code to implement the programming assignment. The project is worth the total of 50 points.
First, you have to install and compile Nachos. See the instructions on the course’s webpage. After successful compilation of Nachos, run the executable to make sure it produces the expected results.
It is suggested that you read the files in the order described below. As you do so, read the corresponding sections in Thomas Narten’s “A Road Map Through Nachos” and Archna Kalra’s “Salsa – An Operating Systems Tutorial”. The links to both of these documents are available from the course’s webpage. First, read the code for Nachos operating system. It is located in subdirectory threads. When you compiled Nachos the Makefile turned THREADS directive on (there are several pointers to makefile tutorials on the webpage for the course). Notice what portions of code in the files below were included due to this directive. Note also that other Nachos features like USER_PROGRAM, FILESYS, and NETWORK were turned off. Notice what command line arguments you can give to Nachos and what global data structures are created. Start reading the code by going through the following files
There are three main ways to study and debug your Nachos program:
Help is available from the instructor (Mikhail Nesterenko) and the TA (Xun Lai). The easiest way to reach us is through e-mail. Both of us have our office hours listed on the course’s webpage. If you need a consultation outside office hours please make an appointment. The office hours may be extended as the project deadline approaches:
See the class syllabus. Contact the instructor if you have any questions. For this project, you are allowed to study the Nachos source code with your friends, buy you have to work on the problems and the programming assignment individually.
These questions concern Nachos OS:
What module (file) and what function is function ThreadTest started from?
What does the following statement do?
t->fork(procedure, parameter); What are the parameters to fork and how are they used?
don’t do this one
Thread *t = new Thread(“ string ”); What is string used for?
DEBUG('t', "Entering SimpleTest");
You have to submit your project to the teaching assistant by e-mail. She will acknowledge the receipt of your project within a day. Send only the files you modified – for example thread.cc and thread.h. Include the plainte-text file with your answers. Your submission should be in the form of a tar archive. The command to create the archive file (named project1.tar containing files thread.cc, thread.h and answers.txt) is as follows:
tar cvf project1.tar thread.cc thread.h answers.txt
Each question is worth 2 points. Thus, the programming assignment is worth 30 points. At least 2/3 of the grade for the programming assignment is given if the program works correctly. If the program does not work you may still submit it and explain the reasons what is wrong with the program and why you think it does not work. Put your explanation in answers.txt. Partial credit may be assigned. Late projects are accepted. See syllabus for late policies.
Nachos with compiled binaries may take over 4 Meg of disk space. Note that the usual quota for undergraduates on the departmental network is 10 Meg. If you exceed your disk quota you will not be able to login to your account. Seek help of the system administrators if you have quota problems. You can check your disk quota usage with the following command:
prompt% quota –v