CSS 430: Operating Systems
Spring 2014
MW 8-10pm at UW1-210
Professor: Erika Fuentes
Professor:
Dr. Erika Fuentes
(efuente at u.washington.edu),
room Truly House, phone TBD
office hours: TBD (or by appointment)
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.
Work Load and Grading:
Course Work |
Percentage |
Achievements |
Approximately Corresponding Numeric Grade |
Assignment 1 |
8% |
90s |
3.5 - 4.0 |
Assignment 2 |
8% |
80s |
2.5 - 3.4 |
Assignment 3 |
8% |
70s |
1.5 - 2.4 |
Assignment 4 |
8% |
60s |
0.7 - 1.4 |
Final Project |
18% |
Class Discussions |
4% |
Midterm Exam |
23% |
Final Exam |
23% |
Textbooks:
-
Operating System Concepts with JAVA, 8th edition,
Abraham Silberschatz, Peter Galvin, and Greg Gagne,
Addison-Wesley, 2009.
- A Java book of your choice.
Some Java Books:
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
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. 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-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 is allowed) which are essential to have the 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. A representative will be rewarded with 0.1 extra credits for
his/her presentation.
Catalyst EPost (Message Board)
You can access
GoPost to exchange messages with your classmates. Please use this
board for only dicussions. No junk email. Note that the professor may
not keep track of all messages.
Catalyst DropBox to submit programming assignments
CSS430 section A DropBox
Course Material
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.
Week |
Date (MW) |
Topics |
Chapters |
Reading |
Assignment |
1
|
03/31 |
Introduction
| 1 |
pp. 3-47 |
|
04/02 |
OS Structures
In-class Linux IDE orientation |
2 |
pp. 49-100 |
Program 1 assigned |
|
2
|
04/07 |
Processes
|
3
|
pp. 103-152
|
|
04/09 |
3
|
04/14 |
Threads |
4 |
pp. 153-192 |
04/16 |
CPU Scheduling
|
5
|
pp. 193-239
|
Program 1 due Program 2 assigned |
4
|
04/21 |
|
04/23 |
Process Synchronization
|
6
|
pp. 241-312
|
5
|
04/28 |
04/30 |
Deadlocks |
7 |
pp. 313-347 |
Program 2 due Program 3 assigned |
6
|
05/05 |
Midterm exam in class |
[ 1 - 7 ] |
|
|
05/07 |
Main Memory
|
8
|
pp. 351-391
|
7
|
05/12 |
05/14 |
Virtual Memory
|
9
|
pp. 393-457
|
Program 4 assigned
Program 3 due (05/18)
|
8
|
05/19 |
|
05/21 |
File-System Interface |
10 |
pp. 461-500 |
9
|
05/26 |
File-System Implementation |
11 |
pp. 501-549 |
05/28 |
Final Project Explanation |
|
|
Program 4 due
Project assigned |
10
|
06/02 |
Protection System |
|
06/04 |
Review and Wrap-up |
11
|
06/09 |
Final exam in class |
[ 8 - 11 ] |
06/11 |
Final project due at 3:30pm |