CS422S: Operating Systems Organization (Spring 2001)

Department of Computer Science
School of Engineering and Applied Science
Washington University in St. Louis

Instructor

Fred Kuhns
Email: fredk at cse dot wustl dot edu
Office Hours: Tuesday and Thursday 4:00 to 5:00, Bryan 504

Graders

Dante Cannarozzi,
Email: djc2@cec.wustl.edu
Office Hours: Sunday 4:00 - 6:00 PM, Lopata 408 (Graders Office), or by appointment through e-mail.
Matthew Hampton,
Email: mph2@cs.wustl.edu
Office Hours: Monday 4:00 - 6:00 PM, Lopata 408 (Graders Office), or by appointment through e-mail.
William (Russ) Harvey,
Email: wrh1@cec.wustl.edu
Office Hours: Tuesday 5:00 - 7:00 PM, Lopata 408 (Graders Office), or by appointment through e-mail.
Evan Keibler,
Email: emk1@cec.wustl.edu
Office Hours: Wednesday 5:00 - 7:00 PM, Lopata 408 (Graders Office), or by appointment through e-mail.
Greg Kinasewitz ,
Email: gtk1@cec.wustl.edu
Office Hours: Wednesday 6:00 - 8:00 PM, Lopata 408 (Graders Office), or by appointment through e-mail.

Locations


Course Description

Exploration of operating systems as managers of shared local and remote resources. Using UNIX and Linux as conceptual and experimental frameworks, students study algorithms and data structures that support essential operating systems services. Concepts are reinforced through programming exercises and comparative studies. Topics include: time sharing and real-time scheduling of processes and threads, networking, memory management, virtual memory, device management, concurrent programming and file system organization.

Prerequisites


Notes and Reference Materials

  1. Course Syllabus (PS or PDF)
  2. CS 422 Spring 2000 Web Page

Texts

Required:

Also Useful:


Grading

The relative weighting of the components of the grades is:


Exams

There will be two exams: a mid-term and a final. Each exam will be worth 20% of your grade. Material tested on the final exam will be comprehensive.

Programming Projects

There will be 4-6 programming projects. Three of the assignments (called projects below) will involve substantial programming. Students are assumed to be competent in C or C++ and familiar with the UNIX operating system.

The general criteria for the grading of the programs is given below:

Project Design 40%
Are all conditions covered (errors, operations specified in assignment)?
Have synchronization and process/thread scheduling issues been addressed?
Have Proper measurement and/or data collection techniques been used?
Does the overall design and implementation demonstrate an understanding of the underlying issues?
Does the solution demonstrate insight or have novel approaches been used?
Structure 15%
Is the software logically structured?
Is it rational and is there a sufficient use of comments?
Have potential maintainability or portability issues been addressed?
Documentation - 25%
Is there a supplied README file and any other files required by the project?
Does the analysis address all required issues and is it insightful?
Is the documentation logically structured and is it understandable?
Have instructions been followed?
Program Operation - 20%
Does the program work or does it terminate in an error?
Does it accept the proper parameters?
Are the results displayed properly?
Are the results correct or reasonable?

Homeworks, Quizes, and Class Attendance

There will be weekly homework assignments from the required text and an occasional short graded quiz. The quizes can be announced or unannounced. Therefore, it is essential that you attend class in order to prepare for the quizes and exams. There will be no makeup quizes.

Late Submissions

Homework and projects may be submitted up to three days late. However, for each day late 5 points will be deducted. After the third day the homework or project will not be accepted.

Occasionally, in special situations, arrangements for a late submission can be made if requested well in advance of the due date.


Syllabus (Subject to Change)

Date Class # Topic Text Chapter
1/16 1 Introduction and Computer Architecture Review PPT, PS, PDF 1
1/18 2

Computer Architecture Review and OS Overview PPT, PS, PDF

1 & 2
1/23 3 Continue Overview - The Process and Kernel PS, PDF 2
1/25 4 Processes: Lecture PS, PDF 3
1/30 5 Finish Processes Lecture and Start IPC PS, PDF 3
2/1 6 Finish Interprocess Communication Class Notes
2/6 7 Threads, SMP and Microkernels PS, PDF 4
2/8 8 CPU Scheduling PPT, PS, PDF 9
2/13 9 Real-Time and Multiprocessor Scheduling PS, PDF 10
2/15 10 Finish RT Scheduling and Begin Process Synchronization PS, PDF 10 and 5
2/20 11

Synchronization continued (Use lecture notes from previous class)

5
2/22 12 Synchronization continued 5
2/27 13 Deadlocks PS, PDF 6
3/114 Deadlock 6
3/6 15 Midterm Review Bring Book 7
3/816 Midterm Exam N/A
3/13 - 3/15 No Class Spring Break N/A
3/20 17 Memory Management PS, PDF PPT 7
3/22 18 Virtual Memory PS, PDF 8
3/27 19 Virtual Memory PS, PDF 8
3/29 20 File Systems PDF 12
4/3 21 File Systems 12
4/5 22 I/O Systems PS, PDF

11

4/10 23 Mass-Storage Structure PDF 12
4/1224 Distributed Processing PDF 13

4/17

25

Distributed Processing and Process Management PDF 13 and 14
4/1926 Distributed Process Management, Continued 14 and Class Notes
4/24

27

Distributed Systems, Class Notes PDF Class Notes
4/2628 Review notes
Tuesday, May 8, 2001 29 Final exam, Cupples II Rm 217, 10:30AM - 12:30PM N/A

Homework Assignments

Send text file with questions and answers to cs422@cec.wustl.edu or make other arrangements with the graders. Below are listed the homework assignments and due dates.

Programming Assignments

Extra Credit Assignment

For extra credit you may write a report about either a specific operating system or some aspect of an operating system. Suggested operating systems include QNX, LynxOS, VxWorks (By WindRiver), PalmOS, Mach, NetBSD, RT-Linux, Chorus, OSX, Windows CE or one of your choice. There are plenty of resources and documentation available on the Web for all the OSes I mentioned above.

Example OS features include virtual memory, page replacement algorithms, disk scheduling algorithms, real-time scheduling, VNODE architecture, SVR4 Streams, BSD sockets, NT kernel objects, W2000 scheduling, or one of your choosing. There are plenty of references in your book for all of these topics.

Due Date: Same as Project Number 4, Midnight April 29, 2001

Requirements:

Your report must be between 4 and 5 pages in length (single space lines) and include the following headings:

  1. Abstract - one paragraph providing an overview of your report.

  2. Introduction - This should tell me what the report is about and why I care.

  3. Body - This must be a technical discussion of the topic. If you are reporting on a specific operating system then do your best to anser the following questions (if you could not find sufficient info then indicate so):

    If you are reporting on a specific OS mechanism or algorithm then describe it in detail. Provide a comparison to alternative approaches.

  4. Conclusion - What is your opinion about your selected topic. Is it a "good" approach or environment? Are there environmental or platform specific issues?