UNIVERSITY OF WISCONSIN-MADISON
Computer Sciences Department
CS 537
Fall 1997
Bart Miller
CS 537: Introduction to Operating Systems

New Stuff

Class Staff

Instructor: Bart Miller
email: bart@cs.wisc.edu
Office: 6381 CS
Phone: 263-3378
Office hours: Tuesday/Thursday 11-noon
Instructor (Section 1): Marv Solomon
email: solomon@cs.wisc.edu
Office: 7379 CS
Phone: 263-2844
Office hours: Monday/Friday 9am-10am
TA: Youlin Li
email: youlin@cs.wisc.edu
Office: 1349 CS
Phone: 262-5340
Office hours: Monday 1pm-3pm, Wednesday 3pm-5pm
TA: Dongbin Tao
email: taodb@cs.wisc.edu
Office: 1349 CS
Phone: 262-5340
Office hours: Monday/Friday 3:30pm-5:30pm
TA: Sivasankaran Chandrasekar (programs only)
email: schandra@cs.wisc.edu
Office: 1308 CS
Phone: 262-6602
Office hours: Tuesday/Thursday 2pm-4pm

Course Materials

The lecture notes are available now. You should read the first section before coming to class. Operating System Concepts and The Java Programming Language are available in the book store.


Lectures and Discussion Sections

Lecture times: Tuesday/Thursday 1300-1415
1325 Computer Sciences

Discussion section: Wednesday 1300-1350
1221 Computer Sciences

Note that there is the extra (Wednesday at 1300) discussion section. This section will be used mainly as a recitation section to discuss material covered in lecture and for the weekly quizzes. On occasion, it will be used to discuss important details of the programming assignments and homeworks. Make sure that you leave room in your schedule to attend this section.


Exams/Quizzes

There will be no midterms. The final is optional. The final exam from Spring 1997 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:

  1. Threads and Java, September 17.
  2. Dining Philosphers, September 24.
  3. Synchronizing Passengers, October 1.
  4. Implementing Semaphores with Monitors, October 8.
  5. Implementing Semaphores with Messages, October 15.
  6. Scheduling and Deadlock, October 22.
  7. Segmentation, October 29.
  8. Multi-Level Paging, November 5.
  9. Paging and TLB's, November 12
  10. Paging to Disk, November 19
  11. File Systems, December 3
  12. None yet.

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 Java and done on workstations running UNIX. It is unlikely that you will be able to do all these assignments on your personal computer.

Written Problem 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. Though, you will find that you will do poorly on the weekely quizzes, if you don't do the problems Solution sets for the problem will be handed out about two weeks after the problem set. The TA's 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 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.

Cheaters will receive the maximum penalties, which include receiving an "F" grade for the course and having this marked on your transcript.


Computer Facilities

We will (probably) be using the Solaris (UNIX) workstations for this course. These are UNIX workstations, running the Sun Solaris operating systems and X windows. All students who have registered for this class should have an account.

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 in the range of 2.9-3.1.


Class Schedule

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

Week 1 September 2 & 4 Introduction and overview, processes
Week 2 September 9 & 11 Dispatching, process creation
Week 3 September 16 & 18 Cooperating processes, synchronization
Week 4 September 23 & 25 Semaphores
Week 5 September 30 & October 2 Semaphores, monitors, NO CLASS Thursday
Week 6 October 7 & 9 Messages, deadlocks
Week 7 October 14 & 16 OS debugging strategies, dynamic memory allocation
Week 8 October 21 & 23 Relocation
Week 9 October 28 & 30 Segmentation, Paging, TLBs
Week 10 November 4 & 6 Virtual memory, page replacement, thrashing
Week 11 November 11 & 13 Working sets, I/O devices, files
Week 12 November 18 & 20 Disk allocation and scheduling, directories
Week 13 November 25 & 27 Protection, NO QUIZ Weds, NO CLASS Thursday
Week 14 December 2 & 4 Security, advanced topics (readings)
Week 15 December 9 & 11 Advanced topics (readings)
Finals December 16 Optional Final Exam (Tuesday, 7:25pm)

Last modified: Fri Dec 12 10:38:02 CST 1997 by bart