CSS 430: Operating Systems
Spring 2009 Syllabus
T/Th
8:00-10:05pm
Room:
UW1-030
Instructor:
Dave Probert
2009/03/31
Dave Probert <DProbert@u.washington.edu>, classroom UW1-030, phone 206-930-9202
Office hours: after class (or by appt).
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.
CSS343.
Course Work |
Percentage |
Quizzes/Homeworks |
9% |
Programming Assigns. |
29% |
Project |
9% |
Class Participation |
3% |
Midterm Exam |
20% |
Final Exam |
30% |
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.
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.
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% |
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 |
|
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.