CIS 380:
Operating Systems
Fall 2017

Instructor: Boon Thau Loo
Room: Wu and Chen Auditorium.
Time: Tuesday and Thursday 1:30-3pm.
Office hours: Tuesday 3-4pm, Wednesday 1-2pm (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?).

Recommended textbooks:

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
Aug 31 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 13)
Sept 5 Processes and threads Chapter 2.1-2.2.  
Sept 7 Concurrent programming and IPC Chapter 2.3, 2.5  
Sept 12 Interprocess communication and synchronization  
Sept 14 Scheduling Chapter 2.4 Project 1 (milestone Sept 27, due Oct 20)
Sept 19 Buffer  
Sept 21 Scheduling (continue) Chapter 2.4
Sept 26 NO CLASS   Instructor out of town
Sept 28 Resources and deadlocks Chapter 6 Homework 0 (due Oct 6)
Oct 3 Memory Management Chapter 3.1-3.3
Oct 10 Memory Management Chapter 3.1-3.3  
Oct 12 Midterm
Oct 17 Memory Management (continue)  
Oct 19 Buffer  
Oct 24 TLBs, Page replacement   Final project (milestones Oct 27, Nov 15, demo Nov 30)
Oct 26 TA-led project discussion
Oct 31 Page replacement algorithms; thrashing Chapter 3.4  
Nov 2 I/O and devices, Disks, terminals and networks Chapter 5  
Nov 7 File systems Chapter 4  
Nov 9 File Systems (continue)
Nov 14 File Systems (continue)  
Nov 16 NO CLASS   Instructor out of town
Nov 21 Advanced topics: Virtual machines DISCO and Xen papers
Nov 28 Advanced topics: Virtual machines  
Nov 30 NO CLASS. Final project demo day.
Homework 1 (due Dec 7)
Dec 5 Review and in-class presentations  
Dec 7 NO CLASS Instructor out of town