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. 23:What Operating Systems Do
Readings
OSTEP, Chapters 1-2
Jan. 25: 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
Jan. 26:4th hour: Install Linux
In-class work
Installing Ubuntu
Assignments
Programming assignment 1: C programming. Due Feb. 1
Jan. 30: Processes and forking Processes
Readings
OSTEP, Chapter 3-5.1
Worksheet
fork1, wait, exec Worksheet
Examples
fork1.c
fork2.c
fork3.c
makefile
Homework
Homework 1 handed out, due Feb. 5
Feb. 1: Process API, System calls
Readings:
OSTEP, 5.2-5.6, 6.1-6.2
Examples
wait1.c
wait2.c
exec1.c
Feb. 2:4th hour: C memory management
Readings
OSTEP, Chapter 14
Examples
Money.c
Money2.c
Money2Free.c
Money2Dangle.c
Leaks.c
makefile
Assignments
Programming assignment 2: textsort. Due Feb. 15
Feb. 6: Context switches, Introduction to scheduling
Readings
OSTEP, 6.3 - 7.3
Linux System Calls
Assignments
Homework 2 handed out, due Feb. 12
Feb. 8: Scheduling
Readings
OSTEP, Chapters 7.4-7.6
Feb. 9:4th hour:
In-class work
fork, wait, exec worksheet
Feb. 13: Round robin Scheduling, Mutli-level feedback scheduling
Readings
OSTEP, Chapters 7.7-7.10, 8, 11
Feb. 15: Address space and address translation
Readings
OSTEP, Chapters 12, 13, 15
Feb. 16:4th hour:
In-class work
Using scheduler simulators
Assignments
Programming assignment 3: shell. Due Mar. 8
Feb. 20: Segmentation
Readings
OSTEP, Chapter 16
Feb. 22:Paging
Readings
OSTEP, Chapter 18
Feb. 23:4th hour:
In-class work
Hexadecimal and address translation with paging
Feb. 27: TLBs
Readings
OSTEP, Chapter 19
Mar. 1: Midterm exam
Practice midterm questions
Sample answers to the practice midterm questions
Mar. 2: Fourth hour - work on programming assignment 3
Assignments
Project assignment handed out
Mar. 6: Smaller page tables
Readings
OSTEP, Chapter 20
Mar. 8: Paging mechanisms and policies
Readings
OSTEP, 21-22.4
Mar. 9:No 4th hour - Enjoy spring break!
Mar. 20: Paging policies
Readings
OSTEP, 22.5-22.12, 24
Mar. 22: Introduction to concurrency
Readings
OSTEP, Chapters 25-26
Examples
t0.c - Example creating threads
t1.c - Example race condition
mythreads.h - Include file needed by the examples
Mar. 23:4th hour: Free space management
Readings
OSTEP, Chapter 17
Assignments
Programming assignment 4, Due date changed to Apr. 8
mem.h
memtest.c
Project proposal due
Mar. 27: Locks
Readings
OSTEP, Chapter 28.1-28.8
Examples
t1_locked.c - Example using lock correctly
Worksheet
Lock implementations
Mar. 29: Locks (cont.)
Readings
OSTEP, Chapters 28.11-28.14
Worksheet
More lock implementations
Mar. 30:No 4th hour
Apr. 3: Concurrent data structions
Readings
OSTEP, Chapter 29
Apr. 5: Condition variables
Readings
OSTEP, Chapter 30
Apr. 6: 4th hour
Assignments
Project progress report due
Details on the project presentation and paper
Apr. 10: Semaphores
Readings
OSTEP, Chapter 31
Worksheet
Semaphores
Assignments
Optional programming assignment 5. Due Apr. 26
Apr. 12: Common concurrency problems
Readings
OSTEP, Chapters 32, 34
In-class activity to fix buggy code
bug1.c
bug2.c
bug3.c
bug4.c
Apr. 13: No 4th hour: Senior symposium
Apr. 17: Concurrency in Java
Examples
Creating threads
Using locks
Reentrant locks
Apr. 19: Project presentations
Apr. 20: 4th hour: Project presentations
Apr. 24: Project presentations
Apr. 26: Project presentations
Apr. 27: No 4th hour
May 7, noon:
Final project submission due