6.S081 Operating System Engineering
Website
- Fall 2020 (latest) website slides ✅ | assignments ✅ | videos ✅
- Fall 2019 website slides ✅ | assignments ✅ | exams ✅
- OCW (Fall 2012) Course Home slides ✅ | assignments ✅ | exams ✅
Overview
Design and implementation of operating systems, and their use as a foundation for systems programming. Topics include virtual memory; file systems; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and network protocols
Prerequisites: 6.004
Schedule (2019)
Assignments
- Lab util: Unix utilities
- Lab sh: Simple shell
- Lab alloc: Memory allocator
- Lab lazy: Lazy allocation
- Lab cow: Copy-on-write fork
- Lab syscall: Uthread & alarm
- Lab lock: Parallelism/locking
- Lab fs: File system
- Lab mmap: Mmap
- Lab net: Network stack