CIS 380:
Operating Systems
Fall 2012


Instructor: Boon Thau Loo
Room: Moore 216.
Time: Tuesday and Thursday 1:30-3pm.
Office hours: Wed 2-3pm (605 Levine).
Newsgroup: We will be using Piazza for course-related discussions. Sign up here.

Teaching assistants:

All office hours will be held in the Moore 100 labs.


Course Description

This course is an introduction to the theory and practice behind modern computer operating systems. 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 the subject 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?).

Course textbook:

Course pre-requisites:


Grading

Class participation will be graded based on regular class attendence, visibility on newsgroup, and contribution to group projects.


Schedule

Visit our Piazza website for more up-to-date information, including links to lecture notes, course resources, etc.

Date Topic Reading Remarks
Sept 6 Introduction Chapter 1 Project 0 (due Sept 17)
Sept 11 Processes and system calls;
Unix system calls and process management
Unix "man" pages for:
read(2), write(2), fork(2), execve(2),
execl(3), wait(2), exit(2)
 
Sept 13 Processes and threads Chapter 2.1-2.2.  
Sept 18 Concurrent programming and IPC Chapter 2.3, 2.5 Project 1 (due Oct 12)
token-shell.tgz (gzip'ed tarball)
Sept 20 Synchronization mechanisms and mutual exclusion    
Sept 25 Interprocess communication and synchronization    
Sept 27 Scheduling Chapter 2.4 Homework 0 (due Oct 5)
Oct 2 Scheduling (continue) Chapter 2.4
Oct 4 Resources and deadlocks Chapter 6  
Oct 9 Memory Management Chapter 3.1-3.3  
Oct 11 Midterm review, Virtual memory Chapter 3.1-3.3
Oct 16 Midterm 0    
Oct 18 Buffer  
Oct 25 TLBs, Page replacement,
Project 2 TA-led discussion
  Project 2 (milestone Nov 15/16, due Nov 28)
Oct 30 Project 2 TA-led discussion    
Nov 1 Page replacement algorithms; thrashing Chapter 3.4  
Nov 6 I/O and devices Chapter 5  
Nov 8 Disks, terminals and networks Chapter 5  
Nov 13 File systems Chapter 4
Nov 15 File Systems (continue)    
Nov 20 Remote Procedure Calls, communication protocols    
Nov 27 Network programming (TCP/IP stack and sockets), Distributed File Systems  
Nov 29 Project 2 demo discussion   TA-led discussion
Nov 30 Project 2 demo   Homework 1 (due Dec 4)
Dec 4 Midterm review  
Dec 6 Midterm 1    

Significant Dates


Valid XHTML 1.0 Strict