Advanced Operating Systems
Part II, Part III, and ACS Advanced Operating Systems teaches OS internals, experimental methodology, and systems-research topics through a hands-on, lab-based course based on the FreeBSD operating system, the Raspberry Pi 4 board, and JupyterLab.
Course Slack
If you need to reach the instructors, or to chat with other students in the course, please join the Advanced Operating Systems course Slack:
Course handouts
These course handouts provide more detailed information about the module and laboratory environment.
- Syllabus (PDF)
- Schedule (PDF)
- Readings (PDF)
- DTrace Quick Start (PDF)
- Lab Reports Guide (PDF) (ACS/Part III only)
- Lab Setup (PDF)
- Hardware Performance Counters (PDF)
- Lab Report Template (LaTeX) (ACS/Part III only)
Lecture slides
Lecture slides will be posted here as the module proceeds.
Lecture 1 - Advanced Operating Systems: Through tracing, analysis, and experimentation (in person)
- Lecture 1, Part 1: What is an Operating System?
- Lecture 1, Part 2: The Course
- Lecture 1, Part 3: Kernel dynamics
Lecture 2 - Kernels and Tracing (prerecorded)
- Lecture 2, Part 1: DTrace (PDF)
- Lecture 2, Part 2: The probe effect (PDF)
- Lecture 2, Part 3: Our lab environment (PDF)
Lecture 3 - The Process Model (1) (in person)
Lecture 4 - The Process Model (2) (in person)
- Lecture 4, Part 1: Traps and System Calls (PDF)
- Lecture 4, Part 2: Traps and Syscalls in Practice (PDF)
- Lecture 4, Part 3: More on VM (PDF)
Lecture 5 - The Network Stack (1) (in person)
- Lecture 5, Part X: Lab session today ... and ... how not to implement shared memory IPC (PDF)
- Lecture 5, Part 1: Network Stacks (PDF)
- Lecture 5, Part 2: Network Stack Implementation (PDF)
- Lecture 5, Part 3: Network Stack Research Taster (PDF)
Lecture 6 - The Network Stack (2) (in person)
- Lecture 6, Part 1: TCP (PDF)
- Lecture 6, Part 2: TCP Implementation (PDF)
- Lecture 6, Part 3: Wrapping Up (PDF)
Lab lecturelet slides
Lab lecturelet slides will be posted here as the module proceeds.
Lab handouts
Lab handouts will be posted here as the module proceeds.
Lab 1 - Kernel tracing
Lab 2 - IPC
- Advanced Operating Systems: Lab 2 - IPC - General Information (UPDATED)
- Advanced Operating Systems: Lab 2 - IPC - Part II Assignment
- Advanced Operating Systems: Lab 2 - IPC - L341 Assignment
Lab 3 - TCP
- Advanced Operating Systems: Lab 3 - TCP - General Information
- Advanced Operating Systems: Lab 3 - TCP - Part II Assignment
- Advanced Operating Systems: Lab 3 - TCP - L341 Assignment
Useful reference material
Lab 2
- ARM® Cortex®-A72 MPCore Processor - see section 11.8
- Arm Architecture Reference Manual Armv8, for Armv8-A architecture profile - see sections D7.10 and Appendix K3