CSS 430B: Operating Systems
Autumn 2025
MW 330-530pm at UW1-051
Prof. Munehiro Fukuda
Professor:
Munehiro Fukuda
<mfukuda@uw.edu>,
room UW1-136, phone 352-3459,
office hours: MW 2:30-3:20pm at UW1-136 (office)
Course Description:
This course introduces the logical design of operating systems,
especially focusing on the design in Java. Topics covered include
processes, threads, CPU scheduling, synchronization, deadlocks, memory
management, virtual memory, file systems, I/O systems, and protection
used in the popular desktop and real-time operating systems.
Prerequisites:
CSS343.
Work Load and Grading:
Course Work |
Percentage |
Achievements |
Approximately Corresponding Numeric Grade |
Programs 1A and 1B |
10% |
90s |
3.5 - 4.0 |
Programs 2A and 2B |
10% |
80s |
2.5 - 3.4 |
Programs 3A and 3B |
10% |
70s |
1.5 - 2.4 |
Programs 4A and 4B |
10% |
60s |
0.7 - 1.4 |
HW 5 (code analysis) |
5% |
Class Discussions |
5% |
Midterm Exam |
25% |
Final Exam |
25% |
Textbooks:
-
Operating System Concepts,
10th edition, Abraham Silberschatz, Peter Galvin, and Greg Gagne, Wiley, 2018.
- A C++ book of your choice.
- A Java book of your choice.
Some Programming Books:
-
Data Abstraction & Problem Solving with C++: Walls and Mirrors, 7th Edition
Frank M. Carrano and Timothy M. Henry, Person, 2017
-
Absolute Java,
6th Edition, Walter Savitch and Kenrick Mock, Pearson, 2016.
-
Java How to Program,
Deitel & Deitel, 12th Edition,
Prentice Hall, 2025.
References:
-
Understanding the Linux Kernel, 3rd Ed
Daniel P. Bovet and Marco Cesati, O'Reilly, 2005
-
The Design of the Unix Operating Sytem, Marice J. Bach,
Prentice Hall, 1986
-
Advanced Programming in the Unix Environment, 2nd Ed,
W. Richard Stevens, Addison Wesley, 2005
-
PThreads Programming,
Bradford Nicbols et. al., O'Reilly, 1996
-
Java Threads, 3rd Edition,
Scott Oaks and Henry Wong, O'Reilly, 2004
Policies:
All programing and code analyzing assignments are to be done
independently. 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 homework is due at 11:59pm on its due date. Only a soft copy 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.
To request academic accommodations due to a disability, please contact
Disability
Resources for Students (DRS) in UW1-071,
(email: uwbdrs@uw.edu, Phone:
425-352-5426). If you have a documented disability on file with the
DRS office, please have your DRS counselor contact me and we can
discuss accommodations. For more information, please
read this DRS statement. For
assistance from Veteran & Military Community Programs, please email
Linh Thai, Program Manager for Veterans & Military Community Programs,
at leon2004@uw.edu or call
425.352.3943.
The class follows the religious accomodation policy. Please check
Office of the University Registrar's webpage.
Course Goals:
The overall goal of CSS 430 is to learn fundamemtal 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/deallocates 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. which is essential to
have the modern operating systems work in the Internet computing
world. Through the course, we will use C++ and Java to illustrate many
operating-system concepts. Eight C++ coding assignments will not only
improve your programming skills on how to use Linux system calls but
also strengthen your understanding on how OS performance will
change. The final assignment intends to analyze the code and sketches
the underlying OS structures. 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 the average.
Assignments:
- Assignments are due at the 11:59pm on their
due date. No late programs will be accepted unless you provide me
with a proof showing that you have been under an emergency
circumstance. No matter the circumstances, it is always best to turn
in something.
-
Click here to know the details of the programming environments.
Class Discussions:
Each chapter has its own lecture slides in a ppt file that includes
one or more discussion topics. The class is divided into groups of 4
or 5 students, each discussing about a different topic for several
minutes and presenting the dicussion summary in the class. We are
planning to have 17 class discussions through the quarter, (each
counted as an active participation - 0.2 or 0.3%, and thus in total 5%
of your entire grade).
All group members should work with a given google doc. Please make
sure to write down your name on the discussion sheet. At the end of
each discussion, I will ask each group to elect a group representative
who will present a short summary to the class. A representative will
be rewarded with 0.1 extra credits for her/his presentation.
Topics covered and tentative 430 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.
Week |
Date (TTh) |
Topics |
Chapters |
Assignment |
0 |
Sep 24 |
Introduction |
1 |
|
1 |
29 |
Introduction Cont'd
In-class Linux lab orientation
OS Structures, Process Management - Part 1 |
1, 2 |
|
|
Oct 1 |
OS Structures, Process Management - Part 1
| 2, 3 |
Prog1A assigned |
2 |
6 |
OS Structures, Process Management - Part 2 |
2, 3 |
|
|
8 |
Process Management, Threads & Concurrency |
3, 4 |
Program 1A due at 11:59pm
Prog1B assigned |
3 |
13 |
Threads & Concurrency |
4 |
|
|
15 |
CPU Scheduling - Part 1 |
5 |
Program 1B due at 11:59pm
Prog2A assigned |
4 |
20 |
CPU Scheduling - Part 2 |
5 |
|
|
22 |
Synchronization Tools |
6 |
Program 2A due at 11:59pm
Prog2B assigned |
5 |
27 |
Synchronization Examples |
7 |
|
|
29 |
Review of Weeks 0-5 and Midterm Rehearsal |
1 - 7 |
Program 2B due at 11:59pm
Prog3A assigned |
6 |
Nov 3 |
Midterm exam in class |
1 - 7 |
|
|
5 |
Deadlocks |
8 |
Program 3A due at 11:59pm
Prog3B assigned |
7 |
10 |
Main Memory - Part 1 |
9 |
|
|
12 |
Main Memory - Part 2 |
9 |
Program 3B due at 11:59pm
Prog4A assigned |
8 |
17 |
Virtual Memory - Part 1 |
10 |
|
|
19 |
Virtual Memory - Part 2 |
10 |
Program 4A due at 11:59pm
Prog4B assigned |
9 |
24 |
File-System Interface |
13 |
|
|
26 |
File-System Implementation |
14 |
Program 4B due at 11:59pm
HW5 assigned |
10 |
Dec 1 |
Protection |
17 |
|
|
3 |
Review of Weeks 6 - 10 and Final Rehearsal |
8 - 10, 13- 14, and 17 |
HW5 due at 11:59pm |
11 |
8 |
Final exam in class |
8 - 10, 13 - 14, and 17 |
|