CSE422S: Operating Systems Organization (Fall 2005)

Department of Computer Science
School of Engineering and Applied Science
Washington University in St. Louis
Meeting Time/Place: 400-530 (Tue, Thu), Lopata 101

Instructor

Dr. Ken Wong
Office Hours: By appointment, Bryan 508

Grader/Consultants


Quick Links



Course Description

Exploration of operatings systems as resource managers. Using UNIX as a conceptual framework, students study algorithms and data structures that support essential operating systems services. Concepts are reinforced through programming exercises and comparative studies. Topics include: process scheduling, file systems organization, memory management, virtual memory, device management, concurrent processes, and security.

Prerequisites


Books


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.

Programming Projects

There will be some number of small programming (lab) assignments and two or three programming projects that will involve substantial design and programming. Students are assumed to be competent in C or C++ and familiar with the UNIX operating system.

The criteria for the grading of the projects and the penalty for late submissions will be elaborated at the time that each project is assigned.

Homework, Quizzes, and Class Attendance

There will be 5-7 homework assignments and some number of short graded quizzes (announced and unannounced). Therefore, it is essential that you attend class in order to prepare for the quizzes and exams. There will be no makeup quizzes.

Late Submissions

Late submissions of program and homework solutions are NOT allowed unless stated explicitly in the assignment description or announced by me (either by email or in class). Occassionally, in special situations, arrangements for a late submission can be made if it is made in advance.

Tentative Syllabus (Subject to Change)

Date Class # Topic Text
Chapter
9/1 1 Introduction
9/6 2 Computer Architecture (1/2) 1
9/8 3 Computer Architecture (2/2) 1
9/13 4 Processes and Threads (1/2) 2.1-2
9/15 5 Processes and Threads (2/2) 2.1-2
9/20 6 Using an OS 10.1-3
9/22 7 The Bourne Shell (1/2)
9/27 8 The Bourne Shell (2/2)
9/29 9 Open
10/4 10 Open
10/6 11 Synchronization (1/2) 2.3
10/11 12 Synchronization (2/2) 2.3
10/13 13 High-Level Synchronization
10/18 14 Deadlock (1/2) 3
10/20 15 Deadlock (2/2) 3
10/25 16 Unix Pipes (1/2)
10/27 17 Unix Pipes (2/2)
11/3 18 Exam 1
11/8 19 Unix Signals
11/10 20 Open
11/15 21 Scheduling 2.5
11/17 22 Memory Management 4.1-2
11/22 23 Virtual Memory (1/3) 4.3-4.8
11/24 24 Thanksgiving
11/29 25 Virtual Memory (2/3) 10.4
12/1 26 Virtual Memory (3/3)
12/6 27 Basic I/O 5, 10.5
12/8 28 File Management (1/2) 6, 10.6
12/13 29 File Management (2/2) 6, 10.6
12/20
Exam 2 (4-6 PM, Lopata 101)


Online Notes and Tutorials