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: OSPP ch 4
READ: this pthreads tutorial.
WATCH: These videos might also help.

More Threads, synchronization
READ: OSPP ch 5

More threads/synch. Conditions variables.

Semaphores, Classic Synch problems and Deadlock
READ: OSPP ch 6

Project 1 due.
Project 2 posted here.

Scheduling
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

Segmentation.

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.

FAT

FAT
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 
READ: LFS.

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