COMPSCI 110, Spring 2003

Introduction to Operating Systems

 

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

Challenge Problem with answers

Exam 1 Spring 2003 -- with answers

Exam 2 Spring 2003 -- with answers

Midterm Fall 2002 -- with answers

Final Exam Fall 2001