Syllabus for CSC 495
Operating Systems
Spring 2006

A discussion of fundamental operating system concepts, including threads, file systems, interprocess communication, scheduling, and synchronization. Students will write Java programs that model important parts of operating systems. Prerequesite: Instructor permission. Any student who has passed CSC 210 and CSC 345 with a grade of 2.0 or above will be granted permission.

General Information.

Instructor: James Moen
Email: moen@augsburg.edu
Phone: 612 330-1142
Office: Sverdrup 203F
Office Hours: To be announced  
Classroom: 16 Old Main (this may change)
Classroom Hours: 6:00 PM-9:00 PM Thursday

I'm often in my office at other times during the day, not just during my regular office hours. You may visit my office (almost) any time I am there. You may also telephone or send email at any time.

Textbook.

Abraham Silberschatz, Peter Baer Galvin, & Greg Gagne. Operating System Concepts with Java. Sixth Edition. John Wiley and Sons Inc. 2004. (ISBN 0-471-48905-0.)

Assignments.

I'll assign homework every week or every two weeks, depending on what I'm discussing in class. Each homework assignment will involve writing a program in the programming language Java. You must turn in a listing of your program, and a copy of the actual output printed by your program. Your programs will be graded both on correctness (are they free of errors?) and on style (are they easy to understand?). I'll accept homework up to one calendar day late, with a 20% penalty.

If you turn in homework by email, you must attach it as an ordinary text file. Please don't use proprietary file formats (like Microsoft Word). My computer can't read them.

Examinations.

There will be two examinations in this course: a one-hour midterm and a two-hour final. Both examinations will be ``open book.'' To help you answer questions, you will be able to use your textbook, your class notes, and anything else handed out in class. See the schedule for (approximate) dates.

Grading.

I'll assign points for each homework assignment and examination. Your final grade will be based on the number of points you get during the term. About 60% of your grade will be determined by homework, and about 40% will be determined by examinations.

Honesty.

Students are expected to be familiar with Augsburg College's policies on academic honesty. You will be required to sign a statement indicating that you understand these policies. Although you may exchange ideas with other students, everything you turn in must be your own work. Copying assignments, or parts of assignments, is not permitted!

Schedule.

This schedule is approximate. I may change it slightly during the term. Chapter numbers refer to the Silberschatz et al. text. I won't always follow the textbook exactly. Instead, I'll use it as outside reading to supplement the lectures.

  January 19 Chapter 1-3   Overview.  
  January 26 Chapter 4   Processes.  
  February 2 Chapter 5   Threads.
  February 9 Chapter 6   CPU scheduling.  
  February 16 Chapter 7   Process synchronization.  
  February 23 Chapter 8   Deadlocks.  
  March 2 Chapter 9   Memory management.  
  March 9 Chapter 10   Virtual memory.  
  March 16 Chapter 11   Midterm examination. File system interface.  
  March 23   No class.  
  March 30 Chapter 12   File system implementation.  
  April 6 Chapter 13   I/O systems.  
  April 13 Chapter 14   Mass storage structure.  
  April 20 Chapter 18   Protection.  
  April 27 Chapter 19   Security.  
  May 4   Final examination (6:30 PM-8:30 PM).