Computing & Software Systems

CSS430: Operating Systems
Fall 2015 Syllabus

MW 3:30-5:30pm Classroom UW2-005

Canvas Site



Instructor

Dr. Erika Parsons <efuente@uw.edu>, Office Location(UW1-347) MW 1:30-2:30PM (or by appointment)

Overview

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 announcements, discussion forums, assignment posting and submissions, and individual grades. Please visit the Canvas Site to access the Canvas page for this class.

For any direct/individual communication with your instructor please use email (do not use Canvas messaging/mail).

Course Description and Schedules

For more detailed information on the course and tentative schedule, please refer to the electronic notebook (OneNote document) accessible through the Canvas Site.

High Level Schedule and Topics

Coursework Distribution

Coursework Percentage Points
Assignment 1 8% 80
Assignment 2 8% 80
Assignment 3 8% 80
Assignment 4 8% 80
Midterm Exam 23% 230
Final Exam 23% 230
Class Discussions and Participation 8% 80
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 and 10 total points are given for attendance throughout the quarter.
  3. Weekly homework assignments count as extra credit (1-2 points each depending on the difficulty of the homework assignment)
  4. Participation and in-class activities = 2 points each with an extra point given for leading the discussion.

Textbooks:

  1. Operating System Concepts with JAVA,8th edition, Abraham Silberschatz, Peter Galvin, and Greg Gagne, Addison-Wesley, 2009. (You are welcome to use other editions as long as you keep track of the right chapter/topic and problem numbers).
  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), 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.

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.

Students assume full responsibility for the content and integrity of the academic work they submit. The guiding principle of academic integrity shall be that a student's submitted work, examinations, reports, and projects must be that of the student's own work. Students shall be guilty of violating the honor code if they:

The penalty for violating the honor code is severe. Any student violating the honor code is subject to receive a failing grade for the course and will be reported to the Office of the Dean of Students. If a student is unclear about whether a particular situation may constitute an honor code violation, the student should meet with the instructor to discuss the situation. For this class, it is permissible to assist classmates in general discussions of computing techniques. General advice and interaction are encouraged. Each person, however, must develop his or her own solutions to the assigned homework. Students may only "work together" on graded assignments to the extent of discussion of general ideas not on specific problems. Such collaboration constitutes cheating, unless it is a grouped assignment. A student may not use or copy (by any means) another's work (or portions of it) and represent it as his/her own.

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:

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.

Attendance

Student Conduct In-Class