Advanced Operating Systems
L41: 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.
- L41 - Syllabus (PDF) (UPDATED)
- L41 - Readings (PDF)
- L41 - DTrace Quick Start (PDF)
- L41 - Lab Reports (PDF)
- L41 - Lab Setup (PDF) (UPDATED)
- L41 - 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 (L41 Assignment)
Lab 2 - IPC
- Advanced Operating Systems - Lab 2 - IPC (general description) (UPDATED)
- Advanced Operating Systems - Lab 2 - IPC (L41 Assignment)
Lab 3 - TCP
- Advanced Operating Systems - Lab 3 - TCP (general description)
- Advanced Operating Systems - Lab 3 - TCP (L41 Assignment) (UPDATED)
Lab Report Template
This Lab Report template must be used for all submissions. Please see the Lab Report handout above for more details. Pay particular attention to notes on content, formatting, and page limits in the lab-report handout above.
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 Report 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