EECS 338 Introduction to Operating Systems

Fall 2005

News | Schedule | Assignments



    Course Description

This is an introductory course on operating systems. The goal of the course is to help students understand the design and function of modern operating systems. The course will cover various OS topics, which include processes/threads, mutual exclusion, synchronization, semaphores, monitors, dead lock dectecion and prevention, inter-process communication, CPU scheduling, 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 

    Adminstrative Information 

  


  Course 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 5-6 programming assignments in Unix using C language. Students need to get at least 15% out 40% to get a passing grade. You may use your own Linux machine, Smithlab or the department’s SUNs (Only C please). However, your code must run on the department’s Solaris machines for the grader to run your code. Students need to setup their own course web-page to post their solutions (please come to the recitation section if you need help), we will use this software system to detect code copying. Assignments are usually due on Thursdays before class. Late submission of assignements are generally not accecepted, 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, and README (anything you want the grader to know) to zhihua.wen@case.edu. This should be done by Midnight of the due date. Meanwhile, you need to hand in hardcopies of your source code, makefile and README in class on due date. There is a best solution contest with 10% extra credit for each assignment. Please see assigments page for detail.

There will be a written midterm (in class on Oct 18) and final exam (Dec 15, 12:30 - 3:30pm).
 

    Grading Policy

        Subject to minor changes, exceptional comments/contributions while attending the classes can be awarded extra points.

    Tentative Schedule (subject to change)

Date

Coverage

Assignments and Notes
 Week 1 (Aug 30, Sep 01)
  Introduction,  Logistics and Policies
  Operating System Basics (Chapter 1 -- 3)
[Lecture-1]   [Lecture-2.1]
Week 2 (Sep 06, Sep 08)   Processes and Threads  (Chapter 4.1 - 4.4, Chapter 5)
  Unix System Calls: fork( ), exec( ), wait ( ), etc.
Drop/Add ends Sep 9
[Lecture-2.2] [Lecture-3]
Assignment-1 Due by Sep 15
Tanenbaum/Torvalds:
Monolithic vs Microkernel
  Andrew Tanenbaum
  Week 3 (Sep 13, 15)
  Week 4 (Sep 20, 22)
 Concurrent Programming Basics, Critical Section
 Classical concurrent programming problems:
          Producer-Consumer problem, 
          Readers-Writers Problem, 
          Dining Philosophers Problem,...,
 Semaphores, Critical Region and Monitors (Chapter 7)

[Lecture-4]   [Lecture-5]
[Lecture-6]   [Lecture-7]
[Concurrency Control Example]

Assignment-2 Due by Sep 29

Donald E. Knuth
Edsger W. Dijkstra
Tony Hoare    The Emperor's Old Clothes
Leslie Lamport
  Week 5 (Sep 27, 29)
  Interprocess communication with Messages
[Lecture-8]
  Week 6 (Oct 04, 06)
   CPU Scheduling
Assignment-3 Due by Oct 13

[Lecture-9]
Lottery Scheduling
  Week 7 (Oct 11, 13)
   Deadlocks   Critical Region Text
[Lecture-10.1]   [Lecture-10.2]
  Week 8 (Oct 18)
   Midterm Exam (in class)
Assignment-4 Due by Nov 3
                Oct 21
  Midterm Review

  Week 9 (Oct 25)
   Fall Break
                  Oct 27
  Week 10 (Nov 01, 03)
   Memory Management and Virtual Memory [Lecture-11.1]   [Lecture-11.2]
[Lecture-12.1]   [Lecture-12.2]   [Belady FIFO]
  Week 11 (Nov 08, 10)
   File System  
Assignment-5 Due by Nov 22
[Lecture-13]  
  Week 12 (Nov 15, 17)
  Week 13 (Nov 22, 24)
 
   File System, I/O system and Mass Storage
  
   Nov 24 Thanksgiving Holiday
[Lecture-14]   [Lecture-15] [Lecture-16]
Assignment 6 Due by Dec 8

  Week 14 (Nov 29, Dec 01)

   Distributed Computing:
                    Distributed Coordination
[Lecture-17.1] [Lecture-17.2]
  Week 15 (Dec 06, 08)
 
    Wrap up
    Exam Review
[Review]  [PPT version]
  Dec 15 (Thursday)
Final Exam 12:30 - 3:30 pm

Unix Text Coverage (in Recitations):


Recitation


Date

Coverage

 Week 1 (Aug 30)
 Basics of Unix environment, programs and processes (Chapters 1, 2)
 Week 2 (Sep 06)
 System Calls: Fork( ), exec( ), wait ( ), etc. (Chapter 3)
 Week 3 (Sep 13)
 More on System Calls; getrusage( ), sleep( ), getrlimit( ), gethostname( ), etc. (Chapter  3)
 Week 4 (Sep 20)
 Pipes (Chapter 5)
 Week 5 (Sep 27)
 Unix System 5 IPCs--Semaphores (Chapter 7)
 Week 6 (Oct 04)
 Unix System 5 IPCs--Shared Memory (Chapter 8)
 Week 7 (Oct 11)
 Unix System 5 IPCs--Messages (Chapter 6)
 Week 8 (Oct 18)
 After-Midterm
 Week 9 (Oct 25)
 RPCs (Chapter 9)
 Week 10(Nov 1)
 Sockets (Chapter 10)
 Week 11(Nov 8)
 Threads (Chapter 11)
 Week 12(Nov 15)
 Threads, Cont'd (Chapter 11)
 Week 13, 14 (Nov 22,  Nov 29)
 Misc and Review


    Acknowledgements

        This course has been developed based on previous versions taught by Professor Gultekin Ozsoyoglu.