CMSI 587: Operating Systems

Syllabus

Spring 2004

MondayCaskey L. Dickson
6:30p.m. - 9:30 p.m.caskey @ technocage.com
Doolan 222310-338-5100
Doolan 104

Objectives

This class will discuss the design and construction of modern computer operating systems. Topics such as process management, storage management, i/o, security and networking will be covered as they relate to the operating system's role as a resource manager and arbiter.

Audience

This course is for Graduate Students in Computer Science who are capable of programming in C or capable of learing it quickly. Furthermore, to complete certain homework assignments, students will have to acquire a working knowledge of the UNIX environment.

Texts & Materials

The course homepage is available at the following two URLs. The first is the primary site and the second is a mirror. The details of specific homework assignments will be posted at these locations.

Grading Policy

Your final grade will be weighted as follows.

Homework ...................................... 20 points
Research Paper ...................................... 15 points
Project ...................................... 15 points
Midterm Exam ...................................... 20 points
Final Exam ...................................... 30 points

Letter grades are figured according to the usual scale: 90 or more points will earn you an A- or better, 80 a B- or better, and so on. The actual grade you receive in the course may be curved upward based upon the performance of your peers.

Homework is due at the beginning of class. Late work will be accepted at a 20% penalty per class session. You will not be reminded to turn in assignments, you are expected to keep track of your deadlines.

Your coding style will play a huge part in determining your score on the assignments. I will not hesitate to assign D's and F's to working programs which are poorly structured, haphazardly indented, under-commented, have poor identifier names and abbreviations, contain inappropriate hard-coded values, or are not "easily maintainable". Appearance of the grading policy in this syllabus constitutes "fair warning" of the consequences of poorly written code.

Code that fails to compile or fails to validate when run through a conformance test (e.g. validating parser) will be given an F without further review.

As with your source code, your writing must be clear, edited and concise. All submitted work, must be typed and proofed. The ability to communicate your ideas clearly and effectively is a critical aspect of your work now and later in industry. As such, assignments with misspellings and/or bad grammar will be returned ungraded. You are encouraged to make use of your peers. It is my assumption that any writing assignment you turn in has been proofed by at least one other person. The campus LRC in the library is an invaluable resource in this regard. An exception to printed/typeset material requirement is granted for hand-annotation of printed screen shots, complicated diagrams or other material that would be impractical to typeset. However, illegible work will be returned ungraded and poor craftsmanship will be given an F.

Work may be turned in either in-class or via email, however email submissions of writing assignments will be accepted in PDF format only. As we will learn later in this class, email is a reliable but somewhat unpredicatable message transport. Sending a message on time is not sufficient, it must arrive before the deadline in order to be considered on time.

Attendance

Attendance is at your discretion. Participation is an important part of the learning process and the value of attending the lecture can't be overstated. We're all aware of how expensive tuition is and out of respect I will do my best to be here on time every week; I expect you to do the same.

Course Schedule

What follows is a general outline of the course topics and readings. While we will attempt to adhere as closely as possible to this schedule, it may scale depending upon the speed with which we cover the individual topics.

Week 1: January 26
Syllabus Review; Operating Systems in General
Silberschatz 1-3, 23
Week 2: February 2
Processes; Threads; Scheduling
Silberschatz 4-6
Week 3: February 9
Synchronization; Deadlocks; IPC
Problem Set #1
Silberschatz 7 & 8
Week 4: February 16
Memory Management; Virtual Memory; Paging and Overcommit
Silberschatz 9 & 10
Week 5: February 23
Problem Set #2
Week 6: March 1
File Systems
Silberschatz 11
Week 7: March 8
I/O; File System Implementation; ext2; ext3; ReiserFS; FAT32; ISO9660; NFS
Silberschatz 12 & 13
Week 8: March 15
Mid Term Exam; Mass Storage Structure
Problem Set #3
Silberschatz 14
Week 9: March 22
Distributed File Systems
Silberschatz 15-16
Week 10: March 29
UNIX and Linux Kernel Internals
Silberschatz 20
Problem Set #4
Week 11: Spring Break
Week 12: April 12
Distributed Processing; NUMA; OpenMOSIX
Silberschatz 17
Week 13: April 19
Protection and Security
Silberschatz 18 & 19
Week 14: April 26
Problem Set #5
Kernel Project
Week 15: May 3
Final Exam
Paper Presentations
Paper

Valid XHTML 1.0!