course information

Classes: MW 4-6 pm, PAI 3.02
Jan S. Rellermeyer
Tel 512-286-6780
Office Hours M 2:00-3:00, W 2:00-3:30pm, GDC 4.314
Discussion Sections:
53790 T 9-11am, GDC 6.202
53795 W 9-11am, GDC 2.210
53799 F 9-11am, CLA 0.102
53800 Th 9-11am, GDC 2.210
Office Hours F 12-2pm, GDC 1.302 (TA station)
Daniel Rutledge
Office Hours W 12-2pm, GDC 3.312
Lyee Chong
Office Hours Th 3:30-5:30pm, GDC either 3rd floor lab or basement lab
Overview: An introduction to low-level software abstractions with an emphasis on the connection of these abstractions to underlying computer hardware. Key abstractions include threads, dynamic memory allocation, protection, and IO. Requires writing of synchronized multithreaded programs.
Homework 10%
Two Midterm Exams 15% each
Final Exam 30%
Labs/Project 30%
  Midterm Exam 1: Wed 02/19 4-6pm in WEL 3.502
  Midterm Exam 2: Wed 03/26 4-6pm in UTC 2.102A
  Final Exam: Fri 05/09 7-10pm in JGB 2.324
Textbooks: Thomas Anderson and Mike Dahlin: Operating Systems: Principles and Practice (OSPP)
Randal E. Bryant and David R. O’Halloran: Computer Systems: A Programmer’s Perspective (CSPP)
Additional Information:
Piazza Page [link]


Date Topic Additional Material Assignment
Mon 01/13/2014 Introduction and Motivation
Wed 01/15/2014 Anatomy of an Operating System [slides] OSPP Chapter 1+2 [project 1] [system image]
Mon 01/20/2014 MLK Day, no class [homework 1]
Wed 01/22/2014 Anatomy of an Operating System continued,
Processes and Scheduling [slides]
[J. Liedtke: On μ-Kernel Construction ]
CSPP Chapter 7.4, OSPP Chapter 2
Mon 01/27/2014 Processes and Scheduling continued OSPP Chapter 7, CSPP Chapter 3 [homework 2]
Wed 01/30/2014 Inter-Process Communication, Threads [slides] OSPP Chapter 4,
[U. Drepper, I. Molnar: The Native POSIX Thread Library for Linux ]
[T. Anderson, B. Bershad, E. Lazowska, H. Levy: Scheduler Activations ]
Mon 02/03/2014 Threads continued,
Too Much Milk [slides]
[B. Alpern, F. Schneider: Recognizing Safety and Liveness ]
[H.-J. Boehm: Threads Cannot be Implemented as a Library ]
[project 2]
[threads.h] [main.c]
[homework 3]
Wed 02/05/2014 Synchronization [slides] OSPP Chapter 5
Mon 02/10/2014 Synchronization continued OSPP Chapter 5 [homework 4]
Wed 02/12/2014 Synchronization continued
Deadlock [slides]
[H. Franke, R. Russel, and M. Kirkwood: Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux ]
[U. Drepper: Futexes are Tricky ]
[T. Harris: A Pragmatic Implementation of Non-Blocking Linked Lists ]
Mon 02/17/2014 Deadlock continued
Midterm review [slides]
OSPP Chapter 6 no homework
Wed 02/19/2014 Midterm exam in WEL 3.502
Mon 02/24/2014 Memory [slides] OSPP Chapter 8.1, CSPP Chapter 7.7
[J. Peterson, T. Norman: Buddy Systems ]
[homework 5]
Wed 02/26/2014 Virtual Memory [slides] OSPP Chapter 8.2, CSPP Chapter 9.6
Mon 03/03/2014 Virtual Memory continued. OSPP Chapter 8.3, CSPP Chapter 6.2 [homework 6]
Wed 03/05/2014 Heap Memory Management [slides] CSPP Chapter 9.9, 9.10
[P. Wilson: Uniprocessor Garbage Collection Techniques ]
[project 3]
Mon 03/10/2014 Spring break, no class
Wed 03/12/2014 Spring break, no class
Mon 03/17/2014 I/O and Storage [slides] OSPP Chapter 12, CSPP 6.1.2, 6.1.3, 6.3 [homework 7]
Wed 03/19/2014 File Systems [slides] OSPP Chapter 11
Mon 03/24/2014 I/O and File Systems in Practice [slides]
Midterm review [slides]
OSPP Chapter 11, CSPP Chapter 10.1-10.3 no homework
Wed 03/26/2014 Midterm exam in UTC 2.102A
Mon 03/31/2014 I/O and File Systems in Practice continued OSPP Chapter 11, CSPP Chapter 10.1-10.3
[homework 8]
Wed 04/02/2014 I/O and File Systems in Practice continued OSPP Chapter 11, CSPP Chapter 10.1-10.3
[W. R. Stevens and S. A. Rago: Advanced Programming in the Unix Environment ]
Mon 04/07/2014 Computer Networks [slides] CSPP Chapter 11
[ A. Tanenbaum, D. Wetherall: Computer Networks]
[homework 9]
Wed 04/09/2014 Computer Networks continued CSPP Chapter 11
Mon 04/14/2014 Computer Networks continued
Socket Programming [slides]
CSPP Chapter 11
W.R. Stevens and S. A. Rago: Advanced Programming in the Unix Environment
[homework 10]
Wed 04/16/2014 Socket Programming continued
Transactions [slides]
CSPP Chapter 12
[ P. Bernstein, E. Newcomer: Principles of Transaction Processing]
Mon 04/21/2014 Transactions continued [homework 11]
Wed 04/23/2014 Operating System Security [slides] [Smashing the Stack for Fun and Profit]
Mon 04/28/2014 Operating System Security continued [ W. Diffie, M.E. Hellman: New Directions in Cryptography]
[R.L. Rivest, A. Shamir, L. Adleman: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems]
Wed 04/30/2014 MapReduce [slides] [J. Dean, S. Ghemawat: MapReduce: Simplified Data Processing on Large Clusters]
[homework 12 (optional)]