CIS 380:
Operating Systems
Fall 2016

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

Teaching assistants:

TA office hours (time and location) are listed here.

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 30 Introduction Chapter 1
Sept 1 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)
Project 0 (due Sept 15)
Sept 6 Processes and threads Chapter 2.1-2.2.  
Sept 8 Concurrent programming and IPC Chapter 2.3, 2.5  
Sept 13 Synchronization mechanisms and mutual exclusion    
Sept 15 Interprocess communication and synchronization   Project 1 (milestone Oct 1, due Oct 13)
Sept 20 Scheduling Chapter 2.4
Sept 22 Scheduling (continue) Chapter 2.4 Homework 0 (due Sept 29)
Sept 27 Resources and deadlocks Chapter 6  
Sept 29 Exam review, Memory Management Chapter 3.1-3.3
Oct 4 Midterm 0   Cover all material up till Oct 4
Oct 11 Memory Management Chapter 3.1-3.3  
Oct 13 NO CLASS   Instructor out of town
Oct 18 Memory Management (continue)  
Oct 20 TLBs, Page replacement   Final project (milestones Nov 3/4, Nov 17/18, due Dec 5)
Oct 25 Page replacement algorithms; thrashing Chapter 3.4  
Oct 27 TA-led project discussion  
Nov 1 I/O and devices, Disks, terminals and networks Chapter 5  
Nov 3 File systems Chapter 4  
Nov 8 File Systems (continue)    
Nov 10 NO CLASS   Instructor out of town
Nov 15 File Systems (continue)   Homework 1 (due Nov 22)
Nov 17 Remote Procedure Calls, communication protocols  
Nov 22 Network programming (TCP/IP stack and sockets), Distributed File Systems  
Nov 29 Advanced topics (TBA)  
Dec 1 NO CLASS   Instructor out of town
Dec 6 Final project demo    
Dec 8 Midterm 1   Covers all material after the break