Computing & Software Systems 430

Operating Systems

Spring 2017



This course introduces the logical design of operating systems. 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 server operating systems. A focus is made on the Unix operating system. The course utilizes Java in programming examples and as a basis for design.


Instructor: Prof. Dimpsey,

Office Hours: TTh 3:30 – 4:40 Truly House

Course Website:

Canvas will be utilized for most course communication

Lectures: TTh 1:15 – 3:15 pm, UW1 110

Grader: Sam Li,


Book Utilized in Class

Operating System Concepts with JAVA, 8th edition, Abraham Silberschatz, Peter Galvin, and Greg Gagne, Addison-Wesley, 2009.

It is also recommended that you obtain a good Java book.

Recommended Java Books

Absolute Java, 4th Edition, Walter Savitch, Addison-Wesley, 2009.

Java How to Program, Deitel & Deitel, 9th Edition, Prentice Hall, 2011.

Java for Programmers, Deitel & Deitel, 2nd Edition, Prentice Hall, 2011

Video Option

Java Fundamentals I and II, by Deitel & Associates, Inc

Optional References

Understanding the Linux Kernel, Daniel P. Bovet and Marco Cesati, O'Reilly, 2000

The Design of the Unix Operating Sytem, Marice J. Bach, Prentice Hall, 1987

Advanced Programming in the Unix Environment, 2nd Ed, W. Richard Stevens, Addison Wesley, 2005

Java Threads, 3rd Edition, Scott Oaks and Henry Wong, O'Reilly, 2004


This course is not graded on a curve. That is, there is not a pre-defined percentage of the class to be assigned to different grade ranges (e.g., x% 4.0, y% 3.5, etc). It is feasible (although unlikely) that all students can receive the highest grade.

It is not possible to pre-determine what scores on the exams and tests correspond to what grade ranges.

Grades consist of three major components as shown by the percentages in the table below and will be determined as objectively as possible. There will not be a subjective component based on class participation.

There will be two exams in the quarter, a mid-term and final. Assignments will consist mainly of programming problems but there will also be written homework as well. In all there will be four programs written as well as a final programming assignment.

At any time I will be happy to consult with you on how you are doing in the class relative to grade ranges.

Course Work

Percentage of Grade

Exams: Midterm, Final


Homework Assignments


Programming Assignments




Homework Submissions

Any homework is due at the beginning of class on its due date. A soft copy must be submitted to Canvas. The submission may be postponed only in emergencies such as accidents, sickness, sudden business trips, and family emergencies.

Programming Assignment Submissions

Assignments due dates and times will be clearly shown in Canvas. A severe penalty will be given to any late programs. Past a short period of time past the due date homework will not be accepted. Extenuating circumstances should be discussed with the professor as early as possible.

More information can be found here:


We will use Canvas to track grades, electronically submit projects and for general communication and announcements.

Class Attendance

Class attendance is not mandatory and there is not a grade based upon attendance or participation. However, I strongly encourage you to come to class as there is generally a direct correlation between attendance and performance (aka, grade). Also, exams will be given during class. Finally, you will be held responsible for all material covered in class, regardless of its presence (or lack thereof) in the textbook or Web Site.

For Our Veterans

If you are a student who has served in our nation’s military forces, thank you for your service. I hope that you feel comfortable enough to confidentially self-identify yourself to me so I can help you make a successful transition from the military to higher education.

Access and Accommodations

Your experience in this class is important to me. If you have already established accommodations with Disability Resources for Students (DRS), please communicate your approved accommodations to me at your earliest convenience so we can discuss your needs in this course.

If you have not yet established services through DRS, but have a temporary health condition or permanent disability that requires accommodations (conditions 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 or DRS offers resources and coordinates reasonable accommodations for students with disabilities and/or temporary health conditions. Reasonable accommodations are established through an interactive process between you, your instructor(s), and DRS. It is the policy and practice of the University of Washington to create inclusive and accessible learning environments consistent with federal and state law.

Honor Code

Work is to be done independently unless directed otherwise; collaboration of work is not acceptable.

You may discuss the problem statement with each other and help debug, but any actual work to be turned in, must be done without collaboration. In other words, all designing and coding is to be done independently. This class is run by the honor code. By taking this class, you agree that you will not collaborate inappropriately on any work. In some cultures, family relationships and their loyalty are considered above all others. In this course, we are an academic family and you betray the instructor’s and university’s trust should you violate the honor code.

Academic Conduct

Work you submit must be the product of your own efforts. Plagiarism is one of the most common violations of academic integrity. Plagiarism, cheating, and other forms of academic dishonesty, including dishonesty involving computer technology, are prohibited. You are responsible for knowing what constitutes a violation of the University of Washington Student Code, and you will be held responsible for any such violations whether they were intentional or unintentional, so please pay attention to canvas information, assignments, and discussions in class regarding these topics. See The library also has an extremely useful website with resources at

UWB Alerts

Sign up for UWB Alerts, to be made aware of possible school closures. For more information on the alert process, see If school is closed and class cancelled, I will notify the class with arrangements to handle coursework for any missed classes.

Class Schedule








Ch 1, pp. 3 - 47


OS Structures

Ch 2, pp. 49 - 100

Program 1 assigned


Processes I

Ch 3, pp. 102 – 152


Processes II



Ch 4, pp. 153 – 192

Program 2 assigned


CPU Scheduling I

Ch 5, pp. 193 - 239


CPU Scheduling II


Process Synchronization I

Ch 6, pp. 241 – 312

Program 3 assigned


Process Synchronization II


Catch-up Midterm Prep


Midterm Exam



Ch 7, pp. 313 – 347


Main Memory I

Ch 8, pp. 351 – 391

Program 4 assigned


Main Memory II


Virtual Memory I

Ch 9, pp. 393 – 457


Virtual Memory II

Final Project Assigned


File System Interface

Ch 10, pp. 461 – 500


File System Implementation

Ch 11, pp. 501 – 549


Protection System

Ch 14, pp.637 - 664


Catch-up Final Prep


Final Exam