EECS 338   Introduction to Operating Systems

Spring 2006

Course Description

This is an introductory course on operating systems. The goal of the course is to help students understand the functions and design of modern operating systems. The course will cover various OS topics, including processes/threads, CPU scheduling, synchronization, semaphores, monitors, dead lock dectecion and prevention, memory management, virtual memory, file systems, and distributed systems. The course will also involve systems programming under UNIX environment.

Prerequisites

Knowledge of C programming language and data structures. EECS 337.

Textbooks 

Required: Operating System Concepts (6th edition, Windows XP update), by Silberschatz, Galvin and Gagne, John Wiley Sons, 2003, ISBN: 0-471-25060-0

Helpful: Unix : Interprocess Communications in UNIX (2nd edition), by Gray J. S., Prentice Hall, 1998.

Course Information

Instructor: Shudong Jin (Email: jins@case.edu)
Lecture time: Tuesday & Thursday, 2:45-4:00pm; Location: Rock 309
Office hours: Tuesday & Thursday, 4:00-5:30pm; Office: Olin 502

Recitation leader: Brian Lauber (Email: bml8@case.edu)
Recitation time: Tuesday, 6:00-7:00pm; Location: Rock 309
Recitation Web page

Grader: Yixuan Chen (Email: yxc115@case.edu)
Office: Olin 514

Course Content and Requirements

Lectures will be given twice each week, and there will be a recitation session on Unix programming per week. Students are expected to attend all the lectures and recitations, and to be responsible for all the materials covered in class. Classes missed due to reasons other than medical conditions may not be made up.

There will be 6 programming assignments. Most of them will be done in UNIX environment using C language. Students need to complete an equivalent of 3 assignments in order to get a passing grade. You may use your own Linux machine, Smithlab or the department SUNs. However, your code must run on the department Solaris machines for the grader to run your code. Students can use electronic submission via email to the grader or the instructor. We will use this software system to detect code copying. Assignments are usually due on Tuesdays before class. Late submission of assignements will generally not be accepted, but each student can have one extension of 48 hours for only one assigment.

For each assignment, please send your electronic copies -- source code, makefile, binary code, README, and anything you want the grader to know. This should be done by Midnight of the due date. Hardcopies are not required. There is a best solution contest with 10% extra credit for each assignment

There will be a written midterm (in the week before Spring break), and a final exam on May 4, 12:30-3:30pm.

Grading Policy

Programming assignments: 40%
Midterm exam: 20%
Final exam: 40%

Regular attendance of classes, and exceptional comments/contributions while attending the classes will be awarded up to 5% bonus points.

Current grades of the class.

Tentative Schedule

Week   1 (1/17, 1/19)    Introduction (Chapter 1), Computer-System Structures (Chapter 2)
Week   2 (1/24, 1/26)    Operating System Structures (Chapter 3), Processes (Chapter 4)
Week   3 (1/31, 2/02)    Threads (Chapter 5), CPU Scheduling basics (Chapter 6)
Week   4 (2/07, 2/09)    CPU Scheduling: real-time and evaluation/analysis (Chapter 6)
Week   5 (2/14, 2/26)    Synchronization: critical sessions, mutexe and semaphores
Week   6 (2/21, 2/23)    Classical synchronization problems, critical regions, monitors (Chapter 7)
Week   7 (2/28, 3/02)    Deadlocks (Chapter 8)
Week   8 (3/07, 3/09)    Midterm and midterm review, Memory Management (Chapter 9)
Week   9 (3/14, 3/16)    Class suspected during Spring break
Week 10 (3/21, 3/23)    Memory Management (Chapter 9)
Week 11 (3/28, 3/30)    Virtual Memory (Chapter 10)
Week 12 (4/04, 4/06)    File-System Interface (Chapter 11) and Implementation (Chapter 12)
Week 13 (4/11, 4/13)    Distributed File Systems (Chapter 16), I/O Systems (Chapter 13)
Week 14 (4/18, 4/20)    Mass-Storage (Chapter 14), Distributed System Structures (Chapter 15)
Week 15 (4/25, 4/27)    Distributed Coordination (Chapter 17), Course Review