UNIVERSITY OF WISCONSIN-MADISON
Computer Sciences Department
CS 537
Spring 2008
Barton Miller
CS 537: Introduction to Operating Systems

New Stuff

Class Staff

Instructor: Barton Miller
email: email address
Office: 7363 CS
Phone: 263-3378
Office hours:
    Wednesday 11am-noon
    Thursday 11am-noon
Indie hour:
    Tuesday 10am-11am
TA: Tristan Ravitch
email: tristan.ravitch@gmail.com
Office: 1302 CS
Phone: 262-6600
Office hours:
    Tuesday 3pm - 4pm
    Wednesday 3pm - 4pm
    Friday 9am - 11am

Course Materials

My lecture notes are available now. You should read the first section before coming to class. Operating Systems Concepts is available in the book store. Any version of the book, 5th edition or later is satisfactory; you do not need to buy the latest edition (7th edition).


Lectures and Discussion Sections

Lecture times: Tuesday/Thursday 1pm-2:15pm
1325 Computer Sciences

Discussion section: Wednesday 1:20pm-2:10pm
1221 Computer Sciences

Note that there is the mandatory discussion section (Wednesday at 1:20pm). This section will be used mainly to discuss material covered in lecture and for the weekly quizzes. It will be used also to discuss important details of the programming assignments and homework. Make sure that you leave room in your schedule to attend this section.


Exams and Quizzes

There will be no midterms. The final is optional. An old final exam is available for you to review.

Each week, starting the second week of classes, there will be a quiz in the Discussion Section. The quizzes will last 15-30 minutes. Following are the past quizzes with answers:


Programming Assignments

There will be about four programming assignments during the semester. Details on these assignments will be given in class handouts. These assignments will be written in C and done on workstations running Linux. It is unlikely that you will be able to do all these assignments on your personal computer.

Written Problems Sets

During the semester, I will hand out several written problem sets based on the lectures. These problem sets are for your use and do not need to be turned in. However, you will find that you will do poorly on the weekly quizzes, if you don't do the problems The TA and I will be happy to answer questions on these problems and look over your solutions.

Late Work

Assignments are due at the start of class on the date listed on the handout. Over the entire semester, you have three late days of credit. You can use these late days on different assignments (e.g., one day on each of three assignments) or all three days on one assignment. Other than these three days, absolutely no late work will be accepted.

Late days are 24-hour days.

Late days cannot be used on any assignment that is due during the last week of classes.


Cheating

Programming assignments will be done with partners. Each group of two will work independently from other groups; there should be no collaborations between groups. Quizzes and exams are individual work; there should be no communication between students during an exam.

If you have any questions about what is a permissible activity, talk with me first.

The penalty for cheating will include receiving an "F" grade for the course and having an academic misconduct notation marked on your transcript.


Cells Phones

Please make sure to turn off your cell phone during class time. If your cell phone or beeper rings audibly off during class, you will be asked to leave and not return until you meet with me in my office.

Computer Facilities

We will be using the Linux workstations for this course. All students who have registered for this class should have an account.

If your personal computer has the proper compilers and libraries, you are welcome to use it for the programming assignments.


Grading Policy

If you don't take the final:
If you take the final:
Programming assignments:40% Programming assignments: 30%
Quizzes:60% Quizzes:45%
Final:0% Final:25%

Your lowest quiz grade will be dropped from the average; there will be no quizzes during the first two weeks. If you take the final exam, it will be counted as above. In the past, when I've taught this class, the class GPA has been around 3.0.


Class Schedule

The following schedule is tentative and could (and probably will) change:

Date Lecture Discussion
Week 1 January 22 & 24 Introduction and overview, processes Intro to C
Week 2 January 29 & 31 Dispatching, process creation
Guest lecturer: Drew Bernat
Intro to C
Week 3 February 5 & 7 Cooperating processes, synchronization I/O libraries
Week 4 February 12 & 14 Semaphores Quiz 1: Processes
Week 5 February 19 & 21 Monitors, message passing Quiz 2: Synchronization with Semaphores
Week 6 February 26 & 28 Implementing synchronization, CPU scheduling
Guest lecturer (Tues): Mike Brim
Quiz 3: Synchronization with Monitors
Week 7 March 4 & 6 Deadlock, dynamic memory allocation Quiz 4: Synchronization with Messages
Week 8 March 11 & 13 Relocation
No class Thursday
Quiz 5: Scheduling and Deadlock
  March 18 & 20 Spring Break
Week 9 March 25 & 27 Segmentation, Paging, TLBs No quiz
Week 10 April 1 & 3 Virtual memory, page replacement, thrashing
Guest lecturer (Tues): Drew Bernat
Quiz 6: Paging
Week 11 April 8 & 10 Working sets, I/O devices, files Quiz 7: TLB's
Week 12 April 15 & 17 Disk allocation and scheduling, directories Quiz 8: Page Replacement
Week 13 April 22 & 24 Protection, file systems No quiz
Week 14 April 29 & May 1 File systems
No class Tuesday
Quiz 9
Week 15 May 6 & 8 File systems, security Quiz 10
Finals May 14 Optional Final Exam (Wednesday, 12:25pm)


Last modified: Thu May 8 10:54:18 CDT 2008 by bart