CSS 430B: Operating Systems
Fall 2020
MW 800-1000pm Online
Prof. Munehiro Fukuda
Professor:
Munehiro Fukuda
<mfukuda@uw.edu>,
room UW1-271T, phone 352-3459,
office hours: MW 1000-1030pm, TTh 500-530pm (online)
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, and protection
used in the popular desktop and real-time operating systems.
Prerequisites:
CSS343.
Work Load and Grading:
Course Work |
Percentage |
Achievements |
Approximately Corresponding Numeric Grade |
Assignments 1A and 1B |
9% |
90s |
3.5 - 4.0 |
Assignments 2A and 2B |
9% |
80s |
2.5 - 3.4 |
Assignments 3A and 3B |
9% |
70s |
1.5 - 2.4 |
Assignment 4A and 4B |
9% |
60s |
0.7 - 1.4 |
Final Project |
9% |
Class Discussions |
5% |
Midterm Exam |
25% |
Final Exam |
25% |
Textbooks:
-
Operating System Concepts, 10th edition,
Abraham Silberschatz, Peter Galvin, and Greg Gagne,
Wiley, 2018.
- A C++ book of your choice.
- A Java book of your choice.
Some Programming Books:
-
Data Abstraction & Problem Solving with C++: Walls and Mirrors, 7th Edition
Frank M. Carrano and Timothy M. Henry, Person, 2017
-
Absolute Java,
6th Edition, Walter Savitch and Kenrick Mock, Pearson, 2016.
-
Java How to Program,
Deitel & Deitel, 11th Edition,
Prentice Hall, 2017.
References:
-
Understanding the Linux Kernel, 3rd Ed
Daniel P. Bovet and Marco Cesati, O'Reilly, 2005
-
The Design of the Unix Operating Sytem, Marice J. Bach,
Prentice Hall, 1986
-
Advanced Programming in the Unix Environment, 2nd Ed,
W. Richard Stevens, Addison Wesley, 2005
-
PThreads Programming,
Bradford Nicbols et. al., O'Reilly, 1996
-
Java Threads, 3rd Edition,
Scott Oaks and Henry Wong, O'Reilly, 2004
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 by solo if you
cannot find a single partner), in which case each student must achieve
an equally amount of work. For the detailed instructions,
see the project assignment sheet.
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. No make-up exams will be given except under
exceptional circumstances. Barring emergencies, I must be informed
before the exam.
To request academic accommodations due to a disability, please contact
Disability Resources
for Students (DRS) UW1-080,
(email: uwbdrs@uw.edu. If you have
a documented disability on file with the DSS office, please have your
DRS counselor contact me and we can discuss accommodations. For more
information, please read this DRS
statement.
The class follows the religious accomodation policy. Please
check the
Syllabi Guidelines and Resources webpage.
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. which is essential to
have the modern operating systems work in the Internet computing
world. Through the course, we will use C++ and Java to illustrate many
operating-system concepts. Using C++, you will learn how to use Linux
system calls for directly interacting with OS at the programming
level. 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:
- Assignments are due at the beginning of lecture on their
due date. No late programs will be accepted unless you provide me
with a proof showing that you have been under an emergency
circumstance. No matter the circumstances, it is always best to turn
in something.
-
Click here to know the details of the programming environments.
Class Discussions:
Each chapter has its own lecture slides in a ppt file that includes
one or more discussion topics. 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 17 class discussions through the quarter, (each
counted as an active participation - 0.2 or 0.3%, and thus in total 5%
of your entire grade).
Each discussion group will be formed as a Zoom breakout room. All
the group members should work with a given google doc. Please make
sure to write down your name on the discussion sheet. At the end of
each discussion, I will ask each group to elect a group
representative who will present a short summary to the class. A
representative will be rewarded with 0.1 extra credits for her/his
presentation.
Topics covered and tentative 430 schedule:
Note that this is an approximate ordering of topics. Chapters will
take about the allotted time and not all sections in all chapters are
covered.