CIS 380:
Operating Systems
Fall 2013

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

Teaching assistants:

TA office hours are listed here. 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:


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

Tentative Schedule

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

Date Topic Reading Remarks
Aug 29 Introduction Chapter 1 Project 0 (due Sept 16)
Sept 3 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 5 Processes and threads Chapter 2.1-2.2.  
Sept 10 Concurrent programming and IPC Chapter 2.3, 2.5  
Sept 12 Synchronization mechanisms and mutual exclusion    
Sept 17 Interprocess communication and synchronization   Project 1 (milestone Oct 1, due Oct 14)
Sept 19 Scheduling Chapter 2.4
Sept 24 Scheduling (continue) Chapter 2.4 Homework 0 (due Oct 4)
Sept 26 Resources and deadlocks Chapter 6  
Oct 1 Memory Management Chapter 3.1-3.3  
Oct 3 Exam review, Virtual memory Chapter 3.1-3.3
Oct 8 Midterm 0   Cover all material from Aug 29 to Oct 3
Oct 15 Buffer  
Oct 17 TLBs, Page replacement,
Final project TA-led discussion
  Final project (milestone Nov 14/15, due Dec 4)
Oct 22 Final project TA-led discussion    
Oct 24 Page replacement algorithms; thrashing Chapter 3.4  
Oct 29 I/O and devices Chapter 5  
Oct 31 Disks, terminals and networks Chapter 5  
Nov 5 File systems Chapter 4  
Nov 7 File Systems (continue)    
Nov 12 Remote Procedure Calls, communication protocols    
Nov 14 Network programming (TCP/IP stack and sockets), Distributed File Systems   Homework 1 (due Nov 22)
Nov 19 Advanced topics (distributed systems)  
Nov 21 Advanced topics (distributed systems)  
Nov 26 Advanced topics (distributed systems)    
Dec 3 Final project demo discussion    
Dec 5 Final project demo    
Dec 10 Midterm 1   Covers all material from Oct 15 - Nov 26