CSS 430: Operating Systems
Spring 2009 Syllabus

T/Th 8:00-10:05pm
Room: UW1-030
Instructor: Dave Probert

2009/03/31


Instructor:

Dave Probert <DProbert@u.washington.edu>, classroom UW1-030, phone 206-930-9202

Office hours: after class (or by appt).

Course Description:

This course introduces the logical design of operating systems, especially focusing on Windows and UNIX. Topics covered include processes, threads, CPU scheduling, synchronization, deadlocks, memory management, virtual memory, file systems, I/O systems, protection, and security.

Prerequisites:

CSS343.

Grading:

Course Work

Percentage

Quizzes/Homeworks

  9%

Programming Assigns.

29%

Project

  9%

Class Participation  

  3%

Midterm Exam

20%

Final Exam

30%

Textbook:

References (as discussed in class):

Policies:

All work is to be done independently (unless explicitly specified differently in the written assignment).

Any collaboration of work will result in severe penalty. You may discuss the problem statement and any clarification with each other, but any actual work to be turned in, must be done without collaboration.

Any assigned work is due at the beginning of class for both its hardcopy and softcopy on the due date. Both copies must be submitted. The submission may be postponed only in emergencies such as accidents, sickness, sudden business trips, and family emergencies, in which case you may turn in your homework late with a written proof. No make-up exams will be given except under exceptional circumstances. Barring emergencies, I must be informed before the exam.

If you believe that you have a disability and would like academic accommodations, please contact Disability Support Services at 425.352.5307, 425.352.5303 TDD, 425.352.5455 FAX, or at dss@uwb.edu. They will be happy to provide assistance. You will need to provide documentation of your disability as part of the review process.

Course Goals:

The overall goal of CSS 430 is to learn fundamental concepts that are used in and applicable to a variety of operating systems. The course consists of three major concepts: (1) process management that schedules, executes, synchronizes with events, and terminates your application programs, (2) memory management that loads your programs in memory and allocates/de-allocates memory space they requested dynamically, and (3) file system that provides the mechanism for on-line storage of and access to both data and programs residing on the disks. The course also covers protection, (and security if time is allowed) which are essential to have the modern operating systems work in the Internet computing world. Through the course, we will use Java to illustrate many operating-system concepts. Using Java, you will implement each concept of process management, memory management, and file system. As with most technical courses, besides ability and motivation, it takes time to learn and master the subject. Expect to spend an additional 10 to 15 hours a week outside of class time on average.

Programming Assignments:

Criteria

Percentage

Documentation of your report including required results (explanations, analysis/reasoning, algorithm justifications, insights, evaluation of alternative solutions, test strategy, etc)

30%

Solution (your code satisfies the assignment correctly and you demonstrate a solid understanding of how/why it the solution is correct.   Syntax errors, run-time errors, and/or incorrect results will cause significant deductions from the grade.

50%

Organization of your program and test code (clarity, design, coding style, comments).  Excessive subtlety or cleverness may result in deductions.

20%

Topics covered and tentative 430 spring schedule:

Note that this is an approximate ordering of topics.

Chapters will take about the allotted time and not all sections in all chapters are covered.

Extra topics of interest will be added as time allows.

Week

Date

Topics

Chapters

Due Dates

 1

Mar 31

Introduction

1

Apr 2

OS Structures

2

2

Apr 7

Process Management

3

 

Apr 9

Threads

4

3

Apr 14

CPU Scheduling

5

 

Apr 16

Process Synchronization

6

4

Apr 21

Real-time

19

 

Apr 23

Deadlocks

7

5

Apr 28

Memory Management

8

 

Apr 30

Virtual Memory

9

6

May 5

Midterm exam

Covers: 1-7, 19

 

May 7

Project Discussions

7

May 12

File-System Interface

10

 

 

May 14

File-System Implementation

11

 8

May 19

Mass-Storage Structure

12

 

 

May 21

I/O Systems

13

9

May 26

Protection

14

 

May 28

Security

15

 

10

Jun 2

Catch up

 

Project Due

 

Jun 4

Review

 

11

Jun 9

Final exam – 8pm

 

 

Acknowledgments

The materials (including lecture notes and assignments) used in this course may include material from a variety of sources: previous CSS430 courses (e.g. from Profs. Sung & Fukuda), the Windows Academic Program Curriculum Resource Kit, Avi Silberschatz, Russinovich & Solomon, Wikipedia, and others.