Word cloud
CS 322
Operating Systems

Course Schedule

We will be using the following book in this course:

OSTEP
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, 2015.

OSTEP is available in a variety of formats: ranging in price from FREE for an online version through $36 for a hardcover book. See the author website for all the options.

Jan. 22: What Operating Systems Do
Readings
OSTEP, Chapters 1-2
Jan. 24: Introduction to C
Readings
Introduction to C and Unix
OSTEP Lab Tutorial Sections F.1-F.3, F.6-F.8
Examples
HelloWorld.c
Money.c
Arrays.c
makefile
Worksheets
Intro C Worksheet
Intro C Worksheet Solution
Assignments
Programming assignment 1: C programming. Due Jan. 31
Jan. 25: 4th hour: Install Linux
In-class work
Installing Ubuntu
Jan. 29-31: Processes and Process API
Readings
OSTEP, Chapter 3-5
Worksheet
fork1, wait, exec Worksheet
fork, wait, exec worksheet solution
Examples
fork1.c
fork2.c
fork3.c
wait1.c
wait2.c
exec1.c
makefile
Homework
Homework 1 handed out, due Feb. 4
Feb. 1:4th hour: C memory management
Readings
OSTEP, Chapter 14
In-class work: Questions at the end of Chapter 14
Examples
Money.c
Money2.c
Money2Free.c
Money2Dangle.c
Leaks.c
makefile
Assignments
Programming assignment 2, available on Moodle. Due Feb. 14
Feb. 5-7: Limited direct execution
Readings:
OSTEP, Chapter 6
Linux System Calls
Worksheet
Protected instructions and system calls
Worksheet solution
Assignments
Homework 2 handed out, due Feb. 18
memory.c
Feb. 7: Scheduling
Readings
OSTEP, Chapters 7
Worksheet
Scheduling
Scheduling solution
Feb. 8:4th hour
Feb. 12: Scheduling (cont.)
Readings
OSTEP, Chapters 7
Worksheet
Preemptive Scheduling
Solution
Feb. 14: Unix command line workshop
Feb. 15: No 4th hour
Feb. 19: Multi-level Feedback Queue Scheduling
Readings
OSTEP, Chapters 8, 11
Worksheet
Preemptive Scheduling
Solution
Assignments
Homework 3 handed out, due Feb. 25
Feb. 21: Address space and address translation
Readings
OSTEP, Chapters 12, 13, 15
Worksheet
Address spaces
Feb. 22:4th hour
Assignments
Programming assignment 3 is available on Moodle. Due Mar. 21
Feb. 26: Segmentation
Readings
OSTEP, Chapter 16
Worksheet
Segmentation
Feb. 28: Midterm exam
Practice midterm questions
Sample answers to the practice midterm questions
Midterm solution
Mar. 1: Fourth hour
Worksheet
Hexadecimal and segmented addresses
Solution
Assignments
Project assignment handed out
Mar. 5:Paging
Readings
OSTEP, Chapter 18
Worksheet
Paging
Mar. 7: TLBs
Readings
OSTEP, Chapter 19
Worksheet
TLBs
Mar. 8:No 4th hour - Enjoy spring break!
Mar. 19: Smaller page tables
Readings
OSTEP, Chapter 20
Worksheet
Multi-level page tables
Mar. 21: Paging mechanisms
Readings
OSTEP, 21-22.4
Worksheet
Page faults
Mar. 22: Fourth hour
Worksheet
Paging
Assignments
Project proposal due
Mar. 26: Page replacement policies
Readings
OSTEP, 22.5-22.12, 24
Worksheet
Page replacement
Solution
Assignments
Homework 4 handed out, due April 1
Mar. 28: Introduction to concurrency
Readings
OSTEP, Chapters 25-26, 28.1-28.2
Examples
t0.c - Example creating threads
t1.c - Example race condition
t1_locked.c - Example using lock correctly
mythreads.h - Include file needed by the examples
Mar. 29:4th hour: Free space management
Readings
OSTEP, Chapter 17
Assignments
Programming assignment 4, Due April 11
Apr. 2: Locks
Readings
OSTEP, Chapter 28.3-28.8, 28.1-28.14
Worksheet
Lock implementations
Apr. 4: Special guest: Alfred Spector
Apr. 5: 4th hour
Assignments
Project progress report due
Apr. 9: No class - Community Day
Apr. 11: Condition variables
Readings
OSTEP, Chapter 30
Worksheet
Locks and condition variables
Apr. 12: No 4th hour: Senior symposium
Apr. 16: Semaphores
Readings
OSTEP, Chapter 31
Worksheet
Semaphores
Assignments
Project presentation and final paper
Apr. 18: Common concurrency problems
Readings
OSTEP, Chapters 32, 34
Apr. 19: 4th hour: Project presentations
Apr. 23: Project presentations
Apr. 25: Project presentations
Apr. 26: 4th hour: Project presentations
Apr. 30: Project presentations
May 6, 9 AM:
Final project submission due