CSS 430: Operating Systems
Winter 2004

MW 8-10:05pm
UW1-020


Professor:

Kelvin Sung <ksung@u.washington.edu>

Room: UW1-339

Phone: 352-5420

Office hours: Monday: 1-2:30pm

                        Wednesday: 3-4:00pm

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

 

 

Assignment 1

5%

 

 

Assignment 2

8%

 

 

Assignment 3

11%

 

 

Assignment 4

11%

 

 

Assignment 5

15%

 

 

Midterm Exam

25%

 

 

Final Exam

25%

 

 

Textbooks:

  1. Either one of the following:

a.      (AOSC) Applied Operating System Concepts, First edition, Abraham Silberschatz, Peter Galvin, and Greg Gagne, Addison-Wesley, 2000.

Or

b.      (OSC) Operating System Concepts, Windows XP Update, sixth edition, Abraham Silberschatz, Peter Galvin, and Greg Gagne, Addison-Wesley, 2003.

  1. A Java book of your choice.

Some Java Books:

References:

Policies:

All programs 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. Once again, there should be no collaboration on any of the programming assignments.

All assignments are due at the beginning of class on the due date, including both hard and soft copies. 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-5444). 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 fundamental concepts involved in modern operating systems: (1) process management that schedules, executes, synchronizes with events, and terminates your application programs; (2) memory management that loads your programs into memory and dynamically allocates/deallocates memory space requested; and (3) file system management 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 vital to the modern operating systems connecting to the Internet computing world. Throughout the course, we will use examples based on Java to illustrate the concepts. Through programming assignments you will practice concepts involved in process management, memory management, and file systems. As with most technical courses, besides ability and motivation, it takes time to learn and master the subject. On average, you are expected to spend an additional 10 to 15 hours a week outside of class time.

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 summary of your consideration of test results, (i.e., do they make sense?). Please do not copy and re-submit the assignment specifications, I know what is assigned. 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 program using g++:

g++ your_program1.cpp your_program2.cpp ...

If a given .cpp file includes only template definitions, don't compile it directly. Such file should be treated as a header file, thus included in another .cpp file that must be compiled using g++. Upon a successful compilation, you will get an a.out executable file.

    • To archive your source programs in a file named "myFile.tar":
               tar -cvf - *.java > myFile.tar 

Alternatively, you can do:

               tar -cvf myFile.tar *.java

How/Why are the above commands different/same? The file name must be the concatenation of your first name initial, your last name and ".tar". For instance, if your name is Micky Mouse, the corresponding file name is "MMouse.tar".

    • To submit your archived file "myFile.tar" including your homework assignment 1:
chmod 644 myFile.tar
cp myFile.tar ~css430/f03/hw1/

If your name is Micky Mouse and you would like to submit your assignment 2, you should type:

   chmod 644 MMouse.tar
   cp MMouse.tar ~css430/f03/hw2/

Don't email your softcopy to me. You may overwrite your previous copy with a newer copy as many times as you want, however the corresponding directory such as hw1/, hw2/, hw3/, hw4/, and hw5/ will be closed exactly at the due time. These directories are read-protected, and thus you won't be able to read any files in there.

  • 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 considerations

30%

Correctness of your program (Syntax errors, run-time errors, and/or incorrect answers will result in significant points being deducted from your grade). In addition, please make sure that you have implemented the algorithms as specified in each assignment

50%

Organization of your program (modularization, coding style, and an appropriate amount of comments)

20%

Topics covered and tentative 430 spring 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

Chapter

Reading

Assignment

1

Jan 5

Introduction

Lab Orientation(9:20-9:50pm)

1 - 2

AOSC p1-44

or

OSC p1-54

 

 

Jan 7

OS Structures and Java

3

AOSC p45-84

or

OSC p 55-92

Program 1 assigned 

2

Jan 12

Processes

4

AOSC p87-114   or

OSC p95-117

 

 

Jan 14

Thread

5

AOSC p115-133

or

OSC p 129-148

 

3

Jan 19

Martin Luther King Day (no class)

 

 

 

 

Jan 21

CPU Scheduling

6

AOSC p135-171 or

OSC p151-188

e-reserve: 6.7 of AOSC

Program 1 due
Program 2 assigned

4

Jan 26

 

 

 

 

 

Jan 28

Process Synchronization

7

AOSC p173-225 or

OSC p189-225

e-reserve: 7.8 of AOSC

 

5

Feb 2

 

 

 

 

 

Feb 4

Deadlocks

8

AOSC p227-251 or

OSC p243-270

Program 2 due
Program 3 assigned 

6

Feb 9

Midterm exam in class

1 - 7

AOSC p1-225

or

OSC p1-225

 

 

Feb 11

Memory Management

9

AOSC p255-296 or

OSC p 273-316

 

7

Feb 16

Presidents Day (no class)

 

 

 

 

Feb 18

 

 

 

Program 3 due
Program 4 assigned 

8

Feb 23

Virtual Memory

10

AOSC p297-344 or

OSC p 317-369

Program 3 due
Program 4 assigned 

 

Feb 25

 

 

 

 

9

Mar 1

File Systems

11 (AOSC)

 or

 

11 + 12.4 + 12.5 (OSC)

AOSC p345-400 or

OSC p 371-409 

+ p421-437

 

 

Mar 3

Program 5 explanation

 

 

Program 4 due
Program 5 assigned   

10

Mar 8

Case Study (Win XP)

22

OSC p.789-824

(Also on e-reserve)

 

 

Mar 10

Protection

18

AOSC p567-590 or

OSC p629-656

 

11

Mar 15

final exam in class

ALL

Everything we learned

 

 

Mar 18

Program 5 Due

 

 

Both hard and soft copy by 10am

Acknowledgment

The materials (including lecture notes and assignments) used in this course are based mainly on the contents developed by Professor Munehiro Fukuda.