University of Pennsylvania / CIS Department
Fall 2007
CSE380 (and 381) -- Operating Systems

Time and Place

Time: Tuesdays and Thursdays, 1330-1500
Place: Moore 216

Instructors

Lecture (CSE380):

Lab Instructors (CSE381):

Teaching Assistants:

Description

This course is an introduction to the theory and practice behind modern computer operating systems. Specific topics will include what an operating system does (and doesn't) do, system calls and interfaces, processes, concurrent programming, resource scheduling and management (of the CPU, memory, etc.), virtual memory, deadlocks, distributed systems and algorithms, networked computing and programming, and security. We will approach these topics from both a theoretical perspective (what are the abstractions and algorithms?) as well as a practical one (what are the mechanisms and how are they built?).

Textbook, Readings, Web Site

The required text for the course (available from the Penn Bookstore either now or soon) is:

Most of the readings will be from the textbook, but we will also refer to other sources from time to time. In particular, we will study technical manuals, system source code, and research papers. The additional readings will generally be available in online form; check the course web page for URLs or pointers.

An additional textbook is required for the lab course (381):

The course web site (with the current version of this text, updated office hours, schedule, etc) can be found online at:

Course-work, Grading, Policies

This course is really two courses: CSE380 (the "lecture" course) and CSE381 (the "lab" course). For students in most programs, if you enroll in one, you're required to enroll in the other, but they are graded separately. The CSE381 course web page can be found at http://www.seas.upenn.edu/~cse381/.

For CSE380, your grade will be based on three in-class exams (two non-cumulative midterms, each worth 20% of your grade, plus a cumulative final, worth 40% of your grade) and approximately three to five short homework assignments (worth the remaining 20% of your grade).

Your lab grade will be based entirely on two implementation projects (one individual, in the first half of the semester, and one with a small group, in the second half of the semester). Details on the CSE381 projects will be distributed separately. Note that there will be tutorial/recitation sessions scheduled weekly throughout the semester for the lab course.

There will be a course mailing list, to which you were (or will soon be) automatically subscribed, assuming you have properly registered. Announcements for both the lecture and lab courses will be sent to the mailing list, and reflected, where appropriate, on the course web page. There is also a course newsgroup.

Late homework (for CSE380) will be accepted for 50% credit for up to 24 hours past the deadline. It will not be accepted at all after 24 hours. This is a firm policy applied bureaucratically and without mercy.

Warning: The CSE380/381 coursework and projects notoriously demand significant planning and effort to complete. Do not put things off until the last minute, even if you have been successful doing so in other courses. Really.

Preliminary Schedule (last updated 9/20/07)

Note: The schedule and topic list is subject to change! See the course web site for the latest schedule.

Note that the assignments and readings are not complete beyond the first few weeks of the course.

Lecture notes will be posted and made available after each class meeting.


Date Topics Readings, Homework, etc.
(Readings to be done prior to the class session with which they are listed).
9/6/07 Introduction; course logistics;
What does an OS do?
Notes (PDF format)
Any appropriate summer novel
9/11/07 Processes and System Calls;
Unix system calls and process management
Notes (PDF format)
Tanenbaum, Chapter 1
Unix "man" pages for read(2), write(2), fork(2), execve(2), execl(2), wait(2), exit(2)
Homework #1 assigned
9/13/07 Processes and threads
Notes (PDF format)
Tanenbaum, Sec 2.1, 2.2
9/18/07 Concurrent programming and IPC
Notes (PDF format)
Tanenbaum, Sec 2.3, 2.4
Homework #1 due at 1800
9/20/07 Synchronization mechanisms and mutual exclusion
Notes (PDF format)
Homework #2 assigned
9/25/07 Interprocess Communication and synchronization
Notes (PDF format)
 
9/27/07 Scheduling; real time processes
Notes (PDF format)
Tanenbaum, Sec. 2.5, 2.6, 2.7
10/2/07 Resources and Deadlocks
Notes (PDF format)
Tanenbaum, Chapter 3
Homework #2 due at 1800
10/4/07 Deadlocks avoidance and starvation
Notes (PDF format)
 
10/9/07 EXAM I
previous example exam (PDF format)
(Covers material from 9/6/07-10/4/07)
10/11/07 Memory Management and Swapping
Notes (PDF format)
Tanenbaum Sec. 4.1, 4.2
10/16/07 No class meeting (Fall break)  
10/18/07 Virtual memory
Notes (PDF format)
Tanenbaum Sec. 4.3, 4.4, 4.5
Extra credit homework available
10/23/07 Virtual Memory, TLBs, Page Replacement
Notes (PDF format)
Tanenbaum Sec. 4.6, 4.7, 4.8, 4.9, 4.10
10/25/07 Page replacement algorithms; thrashing
Notes (PDF format)
 
10/30/07 I/O and devices
Notes (PDF format)
Tanenbaum, Chapter 5
11/1/07 Disks, Terminals and Networks
Notes (PDF format)
 
11/6/07 File systems
Notes (PDF format)
Tanenbaum, Chapter 6
11/8/07 File systems (continued)
Notes (PDF format)
 
11/13/07 EXAM II
Previous example exam (PDF format)
(Covers material from 10/11/07-11/8/07)
11/15/07 Multiprocessing and distributed systems
Tanenbaum, Chapter 8
11/20/07 Distributed systems; remote procedure calls
Notes (PDF format)
 
11/22/07 No class meeting (Thanksgiving break)  
11/27/07 Remote procedure calls; security
Notes (PDF format)
Sun RPCGEN Programming guide (PDF)
Sun RPCGEN manual (PDF)
Homework #3 assigned
11/29/07 Security
Notes (PDF format)
Tanenbaum, Chapter 9
12/4/07 Security; Case studies
Notes (PDF format)
 
12/6/07 Case studies; course review
Notes (PDF format)
 
Date TBA
Time TBA
Room TBA
FINAL EXAM (Covers entire course)