CS 471: Operating Systems – Fall 2017


Innovation Hall 204
Meeting time
MW 1:30pm-2:45pm
Yue Cheng
5324 Engineering Building
yuecheng _AT_ gmu.edu
Office hours
W 3pm-5pm
Panneer Selva Santhalingam
TA Email
psanthal _AT_ gmu.edu
TA office hrs
MF 3pm-5pm
TA office
4456 Engineering Building


  • [Required: AD] Operating Systems Principles and Practice, by Thomas Anderson and Michael Dahlin, Second Edition. ISBN: 978-0-9856735-2-9, Recursive Books, Ltd.
  • [HIGHLY Recommended: OSTEP] Operating Systems: Three Easy Pieces, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Arpaci-Dusseau, July, 2017 (v 0.92)
  • [Recommended] Operating System Concepts, by Silberschatz, Galvin and Gagne (9th Edition, John Wiley & Sons 2012, ISBN 978-1-118-06333-0).

Important dates

  • OS/161 ASST0 due 09/20 (8%)
  • OS/161 ASST1 due 10/18 (12%)
  • OS/161 ASST2 due 11/29 (12%)
  • HW1 due 09/18 in class (4%)
  • HW2 TBD (4%)
  • HW3 TBD (5%)
  • Midterm 10/11 in class (25%)
  • Final 12/13 in class (30%)


Lec 3c pcp posted.
Lec 3b OS161 Primer posted.
HW1 posted on Blackboard.
Lec 3a Sync posted.
Lec 2b Threads posted.
Lec 2a Proc posted.
OS/161 Assignment 0 posted (See instructions). Fill out the form for team composition.
Piazza & BB CS471 are online! Sign up Piazza here.

Syllabus and Tentative Schedule

Topics Slides + src Readings (required + extra_if_interested)
Introduction [8/28] Lecture 1a: Class overview: Introduction to OS and Computer Systems [src]
[8/30] Lecture 1b: OS evolution history and interrupt
Ch1(AD) + Extra(OSTEP)
Ch2(AD) + Interrupt(OSTEP 36.1-36.5)
Concurrency [9/06] Lecture 2a: Process abstraction [src]
[9/11] Lecture 2b: Threads
Ch3(AD) + Proc_intro(OSTEP), Proc_API(OSTEP)
Ch4(AD) + Threads (OSTEP 26.1-26.2)
Synchronization [9/13] Lecture 3a: Race conditions, spin locks, semaphores
[9/18] Lecture 3b: Threads and synchronization in OS/161
[9/20] Lecture 3c: Producer-consumer problem and condition variables
[9/25] Lecture 3d: RW problems, dining-philosophers problems, and monitors
OSTEP(26.3-26.7), Locks(OSTEP) + Ch5(AD)
OS/161 src
Sem(OSTEP), CV(OSTEP) + Ch5(AD),Ch6(AD)
CPU scheduling [9/27] Lecture 4a: CPU scheduling algorithms I
[10/2] Lecture 4b: CPU scheduling algorithms II
Midterm review [10/4]
CPU Scheduling [10/10] Lecture 4c: Thread scheduling and scheduling in Linux
Midterm [10/11]
Memory management [10/16] Lecture 5a: Memory management I
[10/18] Lecture 5b: Memory management II
[10/23] Lecture 5c: Swapping I
[10/25] Lecture 5d: Swapping II
[10/30] Lecture 5e: Memory Allocation
Storage management [11/1] Lecture 6a: Disks and disk scheduling
[11/6] Lecture 6b: RAID
[11/8] Lecture?: SSDs
File system [11/13] Lecture 7a: File system interface
[11/15] Lecture 7b: File system implementation
[11/20] Lecture 7c: FFS, LFS
[11/27] Lecture 7d: NFS
Virtual machines [11/29] Lecture 8: Virtual machine monitors
Distribured systems [12/4] Lecture 9: Distributed systems
Datacenter Infrastructure Lecture 10: Intro of Google's datacenter infrastructure
Final [12/13] 1:30pm – 4:15pm