Introduction to Operating Systems

CPSC/ECE 3220 — Section 001 — Fall 2022

WARNING: This schedule is not set in stone. It will evolve as we go. Please check it frequently.

NOTE: Readings from the "Operating Systems Principles and Practice" text will be abbreviated as OSPP (or maybe SOPP, if I'm typing fast).

Topics, Readings, Assignments

Course introduction, policies, and preliminaries.
READ: This little tutorial on C and pointers, Beej's guide to C, and this tutorial on Makefiles.
The point of this reading is to make sure that you are ready for CPSC/ECE 3220. Some of you may be tempted to skip this reading. Do so at your own peril. I know that it's a lot, and I hope that it is all review. Taking this course without a clear understanding of C (and specifically how pointers work) and how to use make to automate compilation and testing tasks is likely to result in endless frustration.

Systems, Operating Systems. Welcome to the "systems" community. A little history, a little philosophy, and an overview of the course.
READ: OSPP ch 1, Lampson's hints for computer system design There's also an updated shorter version here.

The Kernel, Interrupts, traps, library calls, system calls. Processes (fork, strace, ltrace).
READ: OSPP ch 2.

Processes (continued), exec, ptrace, shims, anatomy of a process.
READ: OSPP ch 3-3.2
Project 1 posted here.

Finish Processes. Start interprocess communication.
READ: OSPP ch 3.3–3.6

Interprocess Communication.

Meeting in Cooper 200D
Threads, PThreads, and a little scheduling
READ: this pthreads tutorial.
WATCH: These videos might also help.

More Threads, synchronization

More threads/synch. Conditions variables.

Semaphores, Classic Synch problems and Deadlock

Project 1 due.
Project 2 posted here.

Read: OSPP ch 7.

Watch: This video about scheduling before class.
More Scheduling. Start Realtime Scheduling

Finish realtime scheduling. Review for midterm.

Midterm Exam

Start on Memory.
Read: OSPP ch. 8


Paging (Modern Virtual Memory)
Project 2 due.
Project 3 posted here.

More Paging, malloc

Allocating Frames, Page replacement, copy-on-write
Read: OSPP ch. 9

Finish memory
Read: OSPP ch. 10

Mass Storage. Disks. Files and Filesystems. Read: OSPP ch. 11

Fall Break. No class.


Read: OSPP ch 12
Project 4 posted here.

UNIX/Berkeley Fast File System
READ: OSPP ch. 13
Project 3 is due.

Log-structured File Systems 

Thanksgiving Holiday break. No class.

Disk-level fault tolerance (RAID).

RAID continued. 

OS Security. 

Project 4 due.
Course Recap and final review.

Final Exam. 3:00–5:30 PM