|
Home
Tentative Schedule
Assignments
Lecture Notes
Policies
Course News
Demo Scheduler
|
Nachos Assignments
Before starting any
assignment you should be familiar with the material in Nachos
Project Policies and Mechanisms , which presents the policies and
procedures that apply to all of the Nachos assignments. You will find the information
in Working
With Nachos valuable for some or all of the labs. The system call
definitions in Nachos
System Call Interface are important for Labs 4 and 5.
Note that the labs for this
semester have been slightly restructured from previous semesters and differ
from the descriptions in the Nachos
Lab Modules in the Nachos Guide. The definitive versions for this
semester are given below:
Lab 1: The Trouble with Concurrent Programming. This lab does correspond more or less directly to Section
3.1 in the Lab Modules. In addition to what is specified there, we want
to emphasize the importance of the quality of your output. The goal of this
exercise is to help you develop debugging strategies for concurrent programs.
In future labs, you will not necessarily expect to observe bad behavior or
have a good idea of the causes. So you should carefully think about (and we
will base part of the grade on) what kinds of information you need to output
in order to determine that there is, in fact, a bug and to identify the
cause. Does your output help you to explain which thread is doing what and
when it is doing it relative to other threads?
For instructions on building
Nachos see these Lab Notes.
Lab 2: Threads and Synchronization.
This assignment covers
Sections 3.2,
3.3,
and 3.5
in the Lab Modules.
Lab
3: Programming with Threads. This assignment covers Sections 3.4,
3.6,
and 3.7.
Here is code for Elevator.h mentioned in section
3.4.
Lab
4: Multiprogrammed Kernel This
assignment covers Section 3.8
. The Extra Credit in Section 3.8.5
is tempting, but I warn you it is rarely done correctly. On the other
hand, people often overlook the required Section 3.8.6
-- don't forget it. This is the hardest of the labs so start early.
Code for LoadPage mentioned in guide.
Lab
5: I/O
This assignment covers Sections 3.9
and 3.10.
Extra credit for this assignment is described in 3.11.
There is code for VAtoPA mentioned in the guide.
Lab
6: Virtual Memory This assignment covers Sections 3.12,
3.13
and 3.14.
Problem Sets
Jan 22/23: Problems 1, 4, 7, 8, 9, 15, 17,
and 21 from Tanenbaum pp. 153-154(Ch. 2.1-2.3)
Jan 29/30: Problems 22, 24, 26, 28, 29,
33, and 40 from pp. 153-155.(Ch. 2.3-2.5)
Feb 5/6: Problems 35, 37, 38, 44, 50, and
51 from 156-157 and Problems 12 and 14 from p. 500.(Ch. 2.3-2.5, 7.4)
Feb 12/13: Problems 1, 2, 9, 14, 22, 24,
and 25 from pp. 578-582 and problems 7, 9, 12, 17, and 18 from p. 758.(Ch. 8,
10.3)
Feb 19/20: Problems 6, 8, 11, 14, 15, 16,
18, 20, 21, 22, 23, 25, and 27 from pp. 186-188. (Ch. 3)
Mar 5/6: Problems 5, 8, 13, 17, 20, 28,
29, 35, and 37 from pp. 263-268 (Ch. 4)
Mar 19/20: Problems 11, 12, 16, 24, 25,
32, and 46 from pp. 373-378 (Ch. 5)
Mar 26/27: Problems 5, 8, 9, 20, 30, 36,
and 37 from pp. 449-452 (Ch. 6)
Apr 2/3: Problems 14, 27, 34; pp. 449-452
(Ch. 6)
Apr 9/10: 6, 8, 10, 13, 22, 30, 31, 32 and
35 from pp. 667-670. (Ch. 9)
Apr 16/17: Exam review problems: pp.
153-158: 18, 40; pp. 186-188: 12, 28; pp. 263-268: 14, 27, 34; pp. 449-452: 7, 13, 17, 23; pp. 758-759: 11, 16.
Old Exams
Exam 1 Spring 2004
with answers
Exam 2
Spring 2004 with answers
Final Exam Spring 2004
with answers
Exam 1 Spring
2003 -- with answers
Midterm
Fall 2002 -- with answers
Final
Exam Fall 2001
|