Computing & Software Systems 430

Operating Systems

Spring 2016

Syllabus



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 server operating systems. A focus is made on the Unix operating system.



Details

Instructor: Bob Dimpsey, dimpsey@uw.edu

Office Hours: TTh 4:30 – 5:30 Truly House

Course Website: http://courses.washington.edu/css430

Canvas will be utilized for most course communication

Lectures: TTh 1:15 – 3:15pm, UW2 131


Grader: Hao Wu, whmay.us@gmail.com


Textbooks


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



Grades


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

50%

Homework Assignments

10%

Programming Assignments

40%

Total

100%



Homework Submissions


Any homework is due at the beginning of class on its due date. Only 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.

Information on the programming environment can be found here: http://courses.washington.edu/css430/prog/assignment.html


Canvas


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.



Special needs


If you require academic accommodations, please contact Disability Support Services at (425) 352-5307, TDD (425) 352-5303 or email at dss@uwb.edu. More information is available at the DRS web Site: http://www.uwb.edu/studentservices/drs .

Tentative Class Schedule


The following is a tentative list of subjects, assignments, and tests that we will cover through the quarter. Canvas will have the most up to date syllabus.


Date

Topics / In-Class Tests

Reading

Assignment

(there will also be non-turn in homework assigned throughout the quarter)

3/29

Introduction

Ch 1, pp. 3 - 47


3/31

OS Structures

Ch 2, pp. 49 - 100

Program 1 assigned

4/5

Processes I

Ch 3, pp. 102 – 152


4/7

Processes II



4/12

Threads

Ch 4, pp. 153 – 192


4/14

CPU Scheduling I

Ch 5, pp. 193 - 239

Program 2 assigned

4/19

CPU Scheduling II



4/21

Process Synchronization I

Ch 6, pp. 241 – 312


4/26

Process Syncrhonization II



4/28

Deadlocks

Ch 7, pp. 313 – 347

Program 3 assigned

5/3

Midterm Exam




5/5

Main Memory I

Ch 8, pp. 351 – 391


5/10

Main Memory II



5/12

Virtual Memory I

Ch 9, pp. 393 – 457

Program 4 assigned

5/17

Virtual Memory II



5/19

File System Interface

Ch 10, pp. 461 – 500


5/24

File System Implementation

Ch 11, pp. 501 – 549

Final Project Assigned

5/26

Protection and Security

Ch 14, pp. 635 - 715


5/31

Distributed Systems

Ch 15, pp. 717 – 755


6/2

Final Review







6/9

Final Exam