CS 537: Introduction to Operating Systems

   Spring 2005
CS room 1221
Mon/Wed/Fri   9:55 - 10:45
Discussion Thu   2:25 - 3:15
Eli Collins

Staff   Materials   Projects   Resources   Schedule and Lectures   Grading

Announcements

[Mon Apr 11] Project 3 is posted.
[Wed Feb 23] Project 2 is posted.
[Wed Feb 09] Readings are posted.
[Mon Jan 24] Project 1 is posted.

Staff

Instructor: Eli Collins
office: CS 6352
office hours: by appointment, send email
email: eli at cs
  TA: Mariyam Mirza
office: CS 5390
office hours: Wednesday 11-12, Thursday 2:30-3:30
email: mirza at cs

The class list is cs537-2@lists.students.wisc.edu. Feel free to direct project questions to the list.

Course Materials

You will need a copy of either Operating System Concepts (6th or 7th edition is fine, not the 'with Java' edition) by Silberschatz, Galvin, and Gagne or Modern Operating Systems (2nd edition) by Tanenbaum. You will be assigned reading every week.

You will be programming in C for all assignments. If you do not already know C you will be expected to pick up the basics; I suggest the The C Programming Language by Kernighan and Ritchie. If you want to further develop your C/UNIX skills I recommend Expert C Programming by Van der Linden and Advanced Programming in the UNIX Environment by Stevens. Linkers and Loaders by Levine is useful for understanding how programs are built. For inspiration read The Soul of A New Machine by Tracy Kidder.

Programming Projects

"When a man says he approves of something in principle, it means he hasn't
the slightest intention of putting it into practice."       -Otto von Bismarck

You will complete three programming assignments as part of this course. You will work alone on the first assignment and in groups of two on the last two assignments. You will be assigned a new partner for each assignment. You may find this advice on working in teams useful.

Projects may be developed in either the "royal" or "emperor" instructional labs (CS rooms 1350 and 1366). To remotely log into a lightly loaded machine ssh best-royal or ssh best-emperor. If you want to develop on your own machine that's fine but be aware that your code will be tested/evaluated on a royal or emperor machine. If you are new to UNIX or the CSL's UNIX facilities I encourage you to attend an orientation session early in the semester. The CSL has also posted an introductory manual.

You may NOT use other people's code from the web or previous semesters for any of the projects. Doing so will be considered cheating. All work should be your own.

Programming Resources

If you are not already familiar with a UNIX programming environment (shell, editor, compiler, debugger, Makefiles, revision control, etc.) this class is a good opportunity to pick up these skills.

Tentative Schedule, Lectures

  Monday Wednesday Friday
Jan 19, 21    Introduction (pdf)  Processes (pdf)
Jan 24, 26, 28  Synchronization (pdf)    Semaphores (pdf)
Jan 31, Feb 2, 4  Monitors (pdf) Project 1.1    Deadlock
Feb 7, 8, 11  IPC (pdf)  CPU Scheduling (pdf)  Project 1.2 (Sunday)
Feb 14, 16, 18  MLFQ (pdf)    Adv. Scheduling (pdf)
Feb 21, 23, 25  Exam 1  Memory Allocation (pdf)  
Feb 28, Mar 2, 4  Memory Management (pdf)    Segmentation, Paging (pdf)
Mar 7, 9, 11      TLBs (pdf)
Mar 14, 16, 18  Virtual Memory (pdf)    
Mar 21, 23, 25  Spring break
Mar 28, 30, Apr 1  Exam 2  I/O Devices (pdf)   Project 2
Apr 4, 6, 8    File System Interfaces (pdf)  
Apr 11, 13, 15  File System Allocation (pdf)    
Apr 18, 20, 22  FFS (pdf)    RAID
Apr 25, 27, 29  Journaling    
May 2, 4, 6  Exam 3  Protection and Security (pdf)  Encryption (pdf)
May 9, 11, 13  Project 3 (no class)    

Grading

Half your grade will be determined by three exams, half by the three programming assignments. The exams will be weighted equally. The programming assignments will be weighted equally. Late projects will not be accepted. University policy on academic misconduct will be followed strictly.

Students Requiring Special Accomodation

If you require special accomodation as a result of disability (visible or hidden), or religious reasons, we strongly encourage you to contact the course instructor or staff promptly, ideally within the first three weeks of class. Although we understand that situations can come up in the middle of the semester, and we will accomodate later requests if at all possible, the earlier we have information about your needs for special accomodation, the better we will be able to serve your needs.