Computing & Software Systems

CSS430: Operating Systems
Summer 2015 Syllabus

TuTh 1:00 PM-3:30 PM Classroom DISC-162



Instructor

Mike Panitz < mpanitz@uw.edu >
CSS 430 on Canvas: https://canvas.uw.edu/courses/980404
Office Hours: My official office hours are TuTh 11:30 AM-12:30 PM (or by appointment), location TBA (tentatively office hours will be held in my office at Cascadia  - room CC1-319).  Unofficially I am very happy to stay after class (and  help people in (or just outside) the classroom).  Please let me know if you'd like help after class - otherwise I will leave when the room is empty (in order to catch either the 3:45 bus or the 4:15 bus home).
Office Location:
Truly House

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

Class Communication

Canvas Learning Management System (LMS) will be used for notices, discussions, assignment, submissions and individual grade logs. Please visit the Canvas Site to access your Canvas page for this class.

Schedule

Note that this is a tentative ordering of OS topics. Chapters will take approximately the allotted time during the quarter.

Important Note About The Online Lectures & Final Project:

Summer quarter is about 2 weeks shorter than the normal 11 weeks of autumn/winter/spring quarters.  We're going to try to adjust the schedule by putting pre-recorded lectures about the 'File System' topic online by the end of the first week, by requiring all students to have viewed the three online videos no later than Thursday, July 16, and by assigning the final project in parallel with Programs 2 and 3 but over a longer period of time. 

It is extremely important that you both (1) independently and studiously on this topic and (2) seek help from the instructor as soon as you find yourself getting stuck.  While some class time will be dedicated to discussing this topic the majority of the topic will be covered by you independently, on your own.


Week Date Topics Chapters Reading Assignment
1 Jun-23 Introduction
In-class Linux IDE orientation
1 pp. 3-47 Program 1 assigned
Jun-25 OS Structures 2 pp. 49-100  
2 Jun-30 Processes 3 pp. 103-152  
Jul-2 Processes 3 pp. 103-152  
3 Jul-7 Threads 4 pp. 153-192 Program 1 due 
Program 2 assigned
Jul-9 CPU Scheduling 5 pp. 193-239  
File-System Interface 10 pp. 461-500 This online lecture must be watched by 1pm on this day
4 Jul-14 CPU Scheduling 5 pp. 193-239
File-System Implementation 11 pp. 501-549 This online lecture must be watched by 1pm on this day
Jul-16 Process Synchronization 6 pp. 241-312 Final Project assigned
Final Project Explanation 14/15 pp. 635-715 This online lecture must be watched by 1pm on this day
5 Jul-21 Process Synchronization 6 pp. 241-312 Program 2 due
Program 3 assigned
Jul-23 Midterm exam in class [ 1 - 6 ]    
6 Jul-28 Deadlocks 7 pp. 313-347
Jul-30 Main Memory 8 pp. 351-391
7 Aug-4 Main Memory 8 pp. 351-391  
Aug-6 Virtual Memory 9 pp. 393-457 Program 3 due 
Program 4 assigned
8 Aug-11 Virtual Memory 9 pp. 393-457  
Aug-13 Protection  14  pp. 635-715 Final Project due
9 Aug-18 Security  15  pp. 635-715
Aug-20 Final exam in class [ 7-11, 14/15 ]  pp. 635-715 Program 4 due

Coursework Distribution

Coursework Percentage Points
Assignment 1 8% 80
Assignment 2 8% 80
Assignment 3 8% 80
Assignment 4 8% 80
Midterm Exam 25% 250
Final Exam 25% 250
In-Class Activities 4% 40
Final Project 14% 140
TOTAL 100% 1000

All grades will be listed as percentages in the Canvas LMS. The conversion table below will help you determine your final grade. For example, if you earn 950 points (or 95%) you will get a 4.0. If you earn 750 points (or 75%) you will earn a 2.0.

A - 100%-90% B - 89%-80% C - 79%-70% D - 69%-62% E - 61%-below

100%–95% = 4.0
94% = 3.9
93% = 3.8
92% = 3.7
91% = 3.6
90% = 3.5

89% = 3.4
88% = 3.3
87% = 3.2
86% = 3.1
85% = 3.0
84% = 2.9
83% = 2.8
82% = 2.7
81% = 2.6
80% = 2.5

79% = 2.4
78% = 2.3
77% = 2.2
76% = 2.1
75% = 2.0
74% = 1.9
73% = 1.8
72% = 1.7
71% = 1.6
70% = 1.5

69% = 1.4
68% = 1.3
67% = 1.2
66% = 1.1
65% = 1.0
64% = 0.9
63% = 0.8
62% = 0.7

= .6 (Failing)

Grading Criteria:

Total of 1000 points available

  1. The baseline points above are the standard allocations.
  2. Class attendance is very important - you should plan on attending every class and actively engaging in each class.  You should assume that every class will include graded activities such as (but not limited to) in-class discussions, individual or group quizzes, 'viewing comprehension' worksheets for the lectures or some combination of the above.  More details will be provided in the class itself.
  3. Weekly homework assignments count as extra credit (1-2 points each depending on the difficulty of the homework assignment)

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.

The final project may be done by a team of two (or three students if you cannot find a single partner). Each student must contribute an equal amount of work. (You can only work in a group of 3 if first obtain permission from the instructor, otherwise each student will receive only 2/3 of the full score.) For the detailed instructions, see the  project description in Canvas.

Any homework is due at the beginning of class on its due date. Please submit homework and programs via the Canvas LMS assignment upload facilities. Submissions may be postponed only in exceptional events such as accidents, sickness, sudden business trips, and family emergencies. You may turn in your homework late by coordinating with me (which may require written proof). No make-up exams will be given except under exceptional circumstances. Barring emergencies, I must be informed before the exam if you plan to be absent.

To request academic accommodations due to a disability, please contact Disability Resources for Students (DRS) UW1-175, (email: drs@uwb.edu, TDD: 425-352-5303, and FAX: 425-352-3581). If you have a documented disability on file with the DSS office, please have your DRS 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 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: