Computing & Software Systems 430:

Operating Systems

Spring 2015

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 real-time operating systems.

Details

Instructor: Bob Dimpsey, dimpsey@uw.edu

Office Hours: MW 2:30 – 3:30 Commons

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

Canvas will be utilized for most course communication

Lectures: MW 3:30 – 5:30pm, DISC 162

Grader: Jay Vyas, jay007vyas@gmail.com

Textbooks

Book Utilized in Class

  1. 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

Video Option

Optional References

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 range.

Also, 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 in the percentage defined by the table below and will be determined as objectively as possible. Coding guidelines are an important part of the objective grading of programming assignments. There will not be a subjective component based on class participation.

Results of exams, homework and programming assignments are averaged together corresponding to the ratios below. They are then grouped and mapped to traditional to 'A', 'B', 'C', etc. for the quarter. Decimal grades are then computed using the equivalences in the time schedule, linearly interpolating between letter-grade boundaries.

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

Programming Assignment Submissions

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. This will undoubtedly change as we make our way and adjust through the quarter.

Date

Topics / In-Class Tests

Reading

Assignment

 

 

 

(there will also be homework

 

 

 

assigned throughout the

 

 

 

quarter)

3/31

Introduction

Ch 1, pp. 3 - 47

 

4/1

OS Structures

Ch 2, pp. 49 - 100

Program 1 assigned

4/6

Processes I

Ch 3, pp. 102 – 152

 

4/8

Processes II

 

 

4/13

Threads

Ch 4, pp. 153 – 192

Program 2 assigned

4/15

CPU Scheduling I

Ch 5, pp. 193 - 239

 

4/20

CPU Scheduling II

 

 

4/22

Process Synchronization I

Ch 6, pp. 241 – 312

 

4/27

Process Syncrhonization II

 

Program 3 assigned

4/29

Deadlocks

Ch 7, pp. 313 – 347

 

5/4

Midterm Exam

 

 

 

 

 

 

5/6

Main Memory I

Ch 8, pp. 351 – 391

 

5/11

Main Memory II

 

Program 4 assigned

5/13

Virtual Memory I

Ch 9, pp. 393 – 457

 

5/18

Virtual Memory II

 

 

5/20

File System Interface

Ch 10, pp. 461 – 500

Final Project Assigned

5/25

File System Implementation

Ch 11, pp. 501 – 549

 

5/27

Protection and Security

Ch 14, pp. 635 – 715

 

6/1

Distributed Systems

Ch 15, pp. 717 – 755

 

6/3

Final Review

 

6/5

 

Final Project Due

6/8

Final Exam