COSC 374
Operating Systems
Spring 2002
1:15 - 2:30 Tuesday, Thursday
Reiss 281

Instructor: Clay Shields
Email:clay at cs dot georgetown dot edu
Phone: (202) 687-2004
Office: Reiss 222
Mailbox: Reiss 240
Office Hours: Wednesday, 2 -4, and by appointment

Homework Assignments:
 
Homework
Due Date
Problems
1
January 22
Chapter 1: 1, 3, 5, 6, 9, 10
Chapter 2: 3, 4, 5, 9 10
2
January 29
Chapter 3: 3, 6, 7, 11, 12
Chapter 4: 1, 2, 4
3
February 5
Chapter 5: 1, 2, 4
Chapter 6: 2, 3
4
February 12
Chapter 6: 4, 5, 8
5
February 19
Chapter 7: 5, 8,10,12
(if you do not know Java well, use generic mechanisms where necessary)
6
February 26
Midterm preparation! Midterm on the 26th
7
March 21
Chapter 9: 3, 5, 8, 10, 16
8
April 2
Chapter 10: 3, 9, 11, 16, 20 
9
April 23
Chapter 11: 4, 12, 14, 15, 18

Projects:
 

General DLX Project Information
Project
Design Due
Project due
1: Process Scheduling February 5th, 2002, 1:14 P.M. February 14th, 2002, 1:14 P.M.
2: Monitors February 28th, 2002, 1:14 P.M. March 19, 2002, 1:14 P.M.
3: Shell project - part 1 April 3, 2002, 11:59 P.M.
3: Shell project - part 2 April 18, 2002, 11:59 P.M.
3: Shell Project - part 3 April 30, 2002, 11:59 P.M.

General Information

Additional Readings:

(Week 1)  In the Beginning Was the Command Line, by Neal Stephenson. This particular copy I have made available has a few marks to show you what you may skip reading for this class. The original is available from the Cryptonomicon web site.

Description:

This course studies the software systems that provide the interface between the computer system hardware resources and the users of the system. This interface is composed of a large collection of programs that provide simplified and uniform access to information storage (data and programs on tape, disk, and in memory), processing elements (CPUs and remote computers), input/output devices (telecommunications, keyboards, mice, video displays, printers, etc.), and data acquisition and equipment control devices. Topics include processes and threads of execution, concurrent process synchronization,  oncurrent access to hardware resources, file systems, memory management and virtual memory, job scheduling, system modeling and performance evaluation, network communication and  rotocols, and computer and network security. A variety of example operating systems of different types will be examined and their characteristics compared.

Prerequisites: COSC 173.

Texts:

Readings and homeworks will be assigned from the primary text, which also has a website:

Applied Operating System Concepts, by Silberschatz, Galvin, and Gagne.
 
 

The recommended text is an invaluable reference that will help you with the projects for the class and for the rest of your programming life. I really do recommend that you get a copy, even though there will be no readings assigned:

Advanced Programming in the UNIX Environment, by W.R. Stevens.

Grading:
 
Homework 15%
Projects 30%
Midterm
February 26, 2002
25%
Final 30%

Policies:

All of my courses are conducted under the same policies, available here.