CSS 430: Operating Systems
Winter 2006
TTh 545-750pm
Prof. Munehiro Fukuda
Professor:
Munehiro Fukuda
<mfukuda@u.washington.edu>,
room UW1-331, phone 352-3459,
office hours: TTh 430-540pm
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, Sixth edition,
Abraham Silberschatz, Peter Galvin, and Greg Gagne,
Addison-Wesley, 2004.
- A Java book of your choice.
Some Java Books:
-
Java 2 Black Book,
Steven Holzner, Corilolis, 2001.
-
Java How to Program,
Deitel & Deitel, Fifth Edition,
Prentice Hall, 2003.
- Java by Dissection: The Essentials of Java Programing,
Updated Edition, JavaPlace Edition,
Ira Pohl and Charlie McDowell, Addison-Wesley, 2001.
References:
-
Addison-Wesley's Interactive Linux Tutorial and Reference
Edutrends, 2001
-
Understanding the Linux Kernel,
Daniel P. Bovet and Marco Cesati, O'Reilly, 2000
-
Java Threads, 3rd Edition,
Scott Oaks and Henry Wong, O'Reilly, 2004
-
The Design of the Unix Operating Sytem, Marice J. Bach,
Prentice Hall, 1987
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 for both its hardcopy
and softcopy on the due date. Both copies 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
Disabled Student Services (DSS) in Bothell Library Annex Building,
Room 106, (email: rlundborg@bothell.washington.edu,
TDD: 425-352-5303, and FAX: 425-352-5455). If you have a documented
disability on file with the DSS office, please have your DSS 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:
- Hardcopy must include your report, program listing, and
execution output. Your report must include specifications,
explanations, and/or illustrations of algorithm and data structures
you used, and summarize your consideration of test results, (i.e., do
they make sense?). Note that you do not have to repeat writing all the
assignment specification. Use a typewriter font (e.g. courier new) for
your source code and execution output.
- Softcopy must be a tar archived file that includes
only your java source code. Your code should compile and run properly
using javac under linux since the grader tests them only using
linux javac. Follow the softcopy submission procedure shown below:
-
To log in the uw1-320-lab linux laboratory:
ssh -l your_linux_account uw1-320-lab.bothell.washington.edu
-
To compile your Java program, type:
javac your_program1.java your_program2.java ...
Upon a successful compilation, you will get an your_program1.clas,
your_program2.java ...
-
To run your Java program, type:
java your_program1
To run our ThreadOS simulator with your assignment, type:
java Boot
-
To archive your source programs in a file named "program1.tar":
tar -cvf - your_program1.java your_program2.java > program1.tar
* * * * * *
(A space must be inserted at each of these * marks.)
-
To submit your archived file "program1.tar" including your homework
assignment 1, visit our Catalyst
eSubmit website.
- Assignments are due at the beginning of lecture for both
your hardcopy and softcopy on the specified 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.
- Grading
Criteria |
Percentage |
Documentation of your report including explanations,
illustrations, discussions, and output consideration |
30% |
Correctness of your program (Syntax errors,
run-time errors, and/or incorrect answers will result in a significant
number of points being deduced from your grade). Also reassure that you
have used the algorithm as specified in each assignment | 50% |
Organization of your program (modularization, coding style, and
an appropriate amount of comments) |
20% |
-
Click here to know what environment you should use and see the list of
all assignment descriptions
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 CSS430
EPost to exchange messages with your classmates. Please use this
board for only dicussions. No junk email. Note that the professor will
not keep track of all messages.
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.