Advanced Operating Systems
Part II: 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 and the Raspberry Pi 4 board.
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) (UPDATED
- Readings (PDF)
- DTrace Quick Start (PDF)
- Lab Setup (PDF) (UPDATED)
- Hardware Performance Counters (PDF)
Lecture slides
Lecture slides will be posted here as the module proceeds.
Lecture 1 - Advanced Operating Systems
- Advanced Operating Systems: Lecture 1, Part 1 (What is an Operating System?)
- Advanced Operating Systems: Lecture 1, Part 2 (The Course)
Lecture 2 - Kernels and Tracing
- Advanced Operating Systems: Lecture 2, Part 1 (DTrace)
- Advanced Operating Systems: Lecture 2, Part 2 (The Probe Effect)
- Advanced Operating Systems: Lecture 2, Part 3 (Kernel Dynamics)
Lecture 3 - The Process Model (1)
- Advanced Operating Systems: Lecture 3, Part 1 (The Process Model)
- Advanced Operating Systems: Lecture 3, Part 2 (Processes in Practice)
Lecture 4 - The Process Model (2)
- Advanced Operating Systems: Lecture 4, Part 1 (Traps and System Calls)
- Advanced Operating Systems: Lecture 4, Part 2 (Traps and System Calls in Practice)
- Advanced Operating Systems: Lecture 4, Part 3 (More on VM)
Lecture 5 - The Network Stack (1)
- Advanced Operating Systems: Lecture 5, Part 1 (Network Stacks)
- Advanced Operating Systems: Lecture 5, Part 2 (Network Stack Implementation)
- Advanced Operating Systems: Lecture 5, Part 3 (Network Stack Research Taster)
Lecture 6 - The Network Stack (2)
- Advanced Operating Systems: Lecture 6, Part 1 (TCP)
- Advanced Operating Systems: Lecture 6, Part 2 (TCP Implementation)
- Advanced Operating Systems: Lecture 6, Part 3 (Wrapping Up)
Lab lecturelet slides
Lab lecturelet slides will be posted here as the module proceeds.
- Advanced Operating Systems: Lecturelet 1 (Lab 1 - I/O)
- Advanced Operating Systems: Lecturelet 2 (Lab 2 - IPC)
- Advanced Operating Systems: Lecturelet 3 (Lab 2 - TCP)
Lab handouts
Lab handouts will be posted here as the module proceeds.
Lab 1 - I/O
- Advanced Operating Systems - Lab 1 - I/O (general description)
- Advanced Operating Systems - Lab 1 - I/O (Part II assignment)
Lab 2 - IPC
- Advanced Operating Systems - Lab 2 - IPC (general description) (UPDATED)
- Advanced Operating Systems - Lab 2 - IPC (Part II assignment) (UPDATED)
Lab 3 - TCP (optional: is not assessed)
- Advanced Operating Systems - Lab 3 - TCP (general description)
- Advanced Operating Systems - Lab 3 - TCP (Part II Assignment)
Lab Analysis Notes
These notes provide retrospective information on data collection and analysis for Advanced Operating Systems's lab assignments.
Lab analysis notes will be posted shortly after Lab Assignment 1 is due.
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