CSS 430B: Operating Systems
Winter 2023

TTh 330-530pm at UW2-141

Prof. Munehiro Fukuda


Professor:

Munehiro Fukuda <mfukuda@uw.edu>, room UW1-271T, phone 352-3459, office hours: TTh 5:30-6:15pm at UW1-271 (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 9% 90s 3.5 - 4.0
Programs 2A and 2B 9% 80s 2.5 - 3.4
Programs 3A and 3B 9% 70s 1.5 - 2.4
Programs 4A and 4B 9% 60s 0.7 - 1.4
Final Project 9%
Class Discussions 5%
Midterm Exam 25%
Final Exam 25%

Textbooks:

  1. Operating System Concepts, zyVersion, Abraham Silberschatz, Peter Galvin, and Greg Gagne, (zyBook ISBN: 979-8-203-08082-0)
  2. A C++ book of your choice.
  3. A Java book of your choice.
See Canvas instructions on how to subscribe a zyBook. If you have already purchased a hardcopy from www.os-book.com/OS10, that still works out. The contents are the same. We'll use zyBook for in-class discussions.

Some Programming Books:

References:

Policies:

All programs except the final project 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.

The final project may be done by a team of two, (or by solo if you cannot find a single partner), in which case each student must achieve an equally amount of work. For the detailed instructions, see the project assignment sheet.

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) UW1-080, (email: uwbdrs@uw.edu. If you have a documented disability on file with the DSS office, please have your DRS counselor contact me and we can discuss accommodations. For more information, please read this DRS statement.

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. Using C++, you will learn how to use Linux system calls for directly interacting with OS at the programming level. 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 the average.

Assignments:

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
1 Jan 3 Introduction 1  
  5 OS Structures, Process Management - Part 1
In-class Linux lab orientation
2, 3 Prog1A assigned
2 10 OS Structures, Process Management - Part 2 2, 3  
  12 Process Management, Threads & Concurrency 3, 4 Program 1A due at 11:59pm
Prog1B assigned
3 17 Threads & Concurrency 4  
  19 CPU Scheduling - Part 1 5 Program 1B due at 11:59pm
Prog2A assigned
4 24 CPU Scheduling - Part 2 5  
  26 Synchronization Tools 6 Program 2A due at 11:59pm
Prog2B assigned
5 31 Synchronization Examples 7  
  Feb 2 Review of Weeks 1-5 and Midterm Rehearsal 1 - 7 Program 2B due at 11:59pm
Prog3A assigned
6 7 Midterm exam in class 1 - 7  
  9 Deadlocks 8 Program 3A due at 11:59pm
Prog3B assigned
7 14 Main Memory - Part 1 9  
  16 Main Memory - Part 2 9 Program 3B due at 11:59pm
Prog4A assigned
8 21 Virtual Memory - Part 1 10  
  23 Virtual Memory - Part 2 10 Program 4A due at 11:59pm
Prog4B assigned
9 28 File-System Interface 13  
  Mar 2 Final Project Explanation   Program 4B due at 11:59pm
Prog5 (Final Project) assigned
10 7 File-System Implementation 14  
  9 Review of Weeks 6 - 19 and Final Rehearsal 8 - 10 and 13- 14  
11 14 No class    
  16 Final exam in class 8 - 10 and 13 - 14 Final project due at 11:59pm