CSS 430: Operating Systems
Fall 2014

MW 3:30-5:30pm at UWBB-240

Instructor: Stephen Dame


Instructor:

Stephen Dame <sdame@u.washington.edu>, room UWB Truly House, office hours: TBD (or by appointment)

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%
Class Discussions 4%
Midterm Exam 23%
Final Exam 23%

Textbooks:

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

Some Java Books:

Video Learning Products

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.

Final Project: 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.

Homework:Any homework is due at the beginning of class 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.

Access and Accommodations: Your experience in this class is important to us, and it is the policy and practice of the University of Washington to create inclusive and accessible learning environments consistent with federal and state law. If you experience barriers based on disability, please seek a meeting with DRS to discuss and address them. If you have already established accommodations with DRS, please communicate your approved accommodations to your instructor at your earliest convenience so we can discuss your needs in this course. Disability Resources for Students (DRS) offers resources and coordinates reasonable accommodations for students with disabilities. Reasonable accommodations are established through an interactive process between you, your instructor(s) and DRS. If you have not yet established services through DRS, but have a temporary or permanent disability that requires accommodations (this can include but not limited to; mental health, attention-related, learning, vision, hearing, physical or health impacts), you are welcome to contact DRS at 425.352.5307 rlundborg@uwb.edu.

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 allows) which are essential to have 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:

Class Discussions:

Each chapter has its own lecture slides in a ppt file that includes one or more discussion topics and non-turn-in exercises. 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 eight or more class discussions through the quarter, although not having scheduled specific discussion dates yet. Your participation in each discussion counts 0.5% of your entire grade, which ends up with 4% by attending minimum eight discussions. If we eventually have more than eight dicussions and you attend all of them, you will receive extra credits.

A discussion group will be dynamically formed in the class. For instance, students sitting closer or on the same desk can form a group. I will give each group a piece of scratch paper or transparency. You should summarize your discussions, write down the names of all group members, and turn it in to me. Each group should elect a group representative who will give a short presentation in the class. A representative will be rewarded with 0.1% extra credits for his/her presentation.

Discussions and Announcements

Please see the Canvas site for up to date information, discussions and Announcements.

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 Topics Chapters Reading Assignment
0 Sep-24 Introduction
In-class Linux IDE orientation
1 pp. 3-47  
1
Sep-29 OS Structures 2 pp. 49-100 Program 1 assigned
Oct-1
Processes
3
pp. 103-152
 
2
Oct-6
Oct-8 Threads 4 pp. 153-192
3
Oct-13
CPU Scheduling
5
pp. 193-239
Program 1 due
Program 2 assigned
Oct-15  
4
Oct-20
Process Synchronization
6
pp. 241-312
Oct-22
5
Oct-27 Deadlocks 7 pp. 313-347 Program 2 due
Program 3 assigned
Oct-29 Midterm exam in class [ 1 - 7 ]    
6
Nov-3
Main Memory
8
pp. 351-391
Nov-5 Program 3 due
Program 4 assigned
7
Nov-10
Virtual Memory
9
pp. 393-457
 
Nov-12  
8
Nov-17 File-System Interface 10 pp. 461-500
Nov-19 File-System Implementation 11 pp. 501-549
9
Nov-24 Final Project Explanation   Program 4 due
Project assigned
Nov-26 Protection & Security 14 pp. 635-715  
10
Dec-1 Distributed Systems 15 pp. 717-755
Dec-3 Review and Wrap-up [ 8-11, 14-15 ]  
11
Dec-8 Final Exam in class [ 8-11, 14-15 ]
Dec-10 Final project due at 3:30pm