Computing & Software Systems 430
Operating Systems
Winter 2018
Syllabus
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: Kelvin Sung, ksung@uw.edu
Office Hours: Wednesday 11:00 - 1:00 pm, UW1-260-O
Course Website: http://courses.washington.edu/css430
Canvas will be utilized for most course
communication: https://canvas.uw.edu/courses/1124283
Lectures: M/W 3:30-5:30pm, UW1 110
· Required text: Operating System Concepts with JAVA, 9th edition, Abraham Silberschatz, Peter Galvin, and Greg Gagne, Addison-Wesley, 2013.
It is also recommended that you obtain a good Java book if you are not familiar with Java.
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. This will be done an exam by exam basis and communicated clearly
to the student. 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 (written)
assignments are assigned and announced on the Canvas site, typically on Friday.
These are strictly per-person assignments. You must type (NOT write) your
answers on the provided answer sheet, print that out, and bring to class on the
following Monday to submit at the beginning of class.
Programming Assignments are to be submitted
electronically to Canvas. Please verify your submission is correct before the
deadline. If we cannot open your submission, you will receive a zero-grade for
the assignment. We will not accept submissions via emails.
Except for the final project, these are strictly per-person assignments.
Late submissions will not be accepted unless
there has been previous agreement due to extenuating circumstances.
Details of programming assignments can be found here: http://courses.washington.edu/css430/prog/dimpsey/assignment.html
We will use Canvas to track electronically submit projects and for general communication and written assignment announcements.
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.
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.
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 uwbdrs@uw.edu. 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.
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.
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. You will be held responsible for any such violations whether they were intentional or unintentional.
I care about cheating and will refer instances of suspected cheating to the academic affairs office who will determine whether academic misconduct has occurred.
Here are actions which I deem to be academic misconduct:
· Using assignment or programming solutions pulled from github or other online sources
· Utilizing sections of code from a peer for a programming assignment
· Copying from another student during an exam
· Obtaining previous quarter exam questions
· Utilizing problem solutions from on-line teacher book editions
See http://www.uwb.edu/studentservices/academicconduct . The library also has an extremely useful website with resources at http://libguides.uwb.edu/ai
Sign up for UWB Alerts, to be made aware of possible school closures. For more information on the alert process, see http://www.uwb.edu/alert. If school is closed and class cancelled, I will notify the class with arrangements to handle coursework for any missed classes.
Date |
Topics |
Reading |
Programming
Assignment |
1/3 |
Introduction |
Chapter 1 |
|
1/8 |
OS Structures |
Chapter 2 |
Program 1 assigned |
1/10 |
Processes I |
Chapter 3 |
|
1/15 |
MLT Day: No class |
||
1/17 |
Processes II + Threads |
Chapter 4 |
Program 1: Due |
1/22 |
CPU Scheduling I |
Chapter 6 |
|
1/24 |
CPU Scheduling II |
||
1/29 |
Process Synchronization I |
Chapter 5 |
|
1/31 |
Process Synchronization II |
Program 2: Due |
|
2/5 |
Catch-up Midterm Prep |
Program 3 assigned (new) |
|
2/7 |
Midterm Exam |
||
2/12 |
|
|
|
2/14 |
|
Chapter
12 |
|
2/19 |
Presidents' Day: No class |
||
2/21 |
|
Program 3: Due (new) |
|
2/26 |
|
|
|
2/28 |
Main Memory II |
|
|
3/5 |
|
|
|
3/7 |
Deadlock |
Chapter 7 |
|
3/9 |
Friday of the last week of class |
|
Final Project: Due (new) |
3/14 |
Final Exam |
||
|
|
|
|