CSS 430: Operating Systems
Spring 2004

TTh 330-535pm

Prof. Munehiro Fukuda


Professor:

Munehiro Fukuda <mfukuda@u.washington.edu>, room UW1-331, phone 352-3459, office hours: TTh 540-710pm

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, protection, and security used in the popular desktop and real-time operating systems.

Prerequisites:

CSS343.

Work Load and Grading:

Course Work Percentage Achievements Approximately Corresponding Numeric Grade
Assignment 1 8% 90s 3.5 - 4.0
Assignment 2 8% 80s 2.5 - 3.4
Assignment 3 8% 70s 1.5 - 2.4
Assignment 4 8% 60s 0.7 - 1.4
Final Project 18%
Midterm Exam 25%
Final Exam 25%

Textbooks:

  1. Operating System Concepts with JAVA, Sixth edition, Abraham Silberschatz, Peter Galvin, and Greg Gagne, Addison-Wesley, 2004.
  2. A Java book of your choice.

Some Java 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 three students if you cannot find a single partner), in which case each student must achieve an equally amount of work. (If you work with other two students, you must explain the reasons in your report, otherwise you will receive only 2/3 of the full score.) For the detailed instructions, see the project assignment sheet.

Any homework 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.

To request academic accommodations due to a disability, please contact Disabled Student Services (DSS) in Bothell Library Annex Building, Room 106, (email: rlundborg@bothell.washington.edu, TDD: 425-352-5303, and FAX: 425-352-5444). If you have a documented disability on file with the DSS office, please have your DSS counselor contact me and we can discuss accommodations.

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, (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 the average.

Assignments:

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.

Week Date (TTh) Topics Chapters Reading Assignment
1 Mar 30 Introduction 1 - 2 pp1-56  
  Apr 1 OS Structures 3 pp57-100 Program 1 assigned
2 Apr 6 330-430pm: CSS Speaker Series: IM-Agents by Prof. Mabry
435-535pm: Process Management
4 pp101-142  
  Apr 8        
3 Apr 13 Threads 5 pp143-170  
  Apr 15 CPU Scheduling 6 pp171-213 Program 1 due
Program 2 assigned
4 Apr 20        
  Apr 22 Process Synchronization 7 pp215-280  
5 Apr 27        
  Apr 29 Deadlocks 8 pp281-314 Program 2 due
Program 3 assigned
6 May 4 Midterm exam in class 1 - 8 pp1-314  
  May 6 Memory Management 9 pp317-361  
7 May 11        
  May 13 Virtual Memory 10 pp363-419 Program 3 due
Program 4 assigned
8 May 18        
  May 20 File-System Interface 11 pp421-461  
9 May 25 File-System Implementation 12 pp463-491 and 500-503 Program 4 due
Project assigned
  May 27 Final Project Explanation      
10 June 1 Protection 18 pp679-706  
  June 3 Review & wrap-up      
11 June 8 Final exam in class 9 - 12, and 18 pp317-491, 500-503 and 679-706  
  June 10 Final Project Due     Both hardcopy and softcopy by 10am