Course Modules & Assignments
Introduction
- Intro to Operating Systems
- C Primer
Processes and Execution
- Processes
- Process API
- Direct Execution
- Summative Assessments
Scheduling
- CPU Scheduling
- Multi-Level Feedback
- Lottery Scheduling
- Summative Assessment
Memory
- Address Spaces
- Memory API
- Address Translation: Base & Bounds
- Summative Assessment
Segmentation
- Segmentation
- Free Space Management
- Implementing Malloc & Free
- Summative Assessment
Paging
- Introduction to Paging
- Translation Lookaside Buffers
- Advanced Page Tables
- Summative Assessment
Swapping
- Swapping: Mechanisms
- Swapping Policies
- Summative Assessment
Virtual Memory
- Complete VM Systems
- Virtual Memory for Linux
- Summative Assessment
Concurrency & Threads
- Concurrency & Threads
- Thread API
- Locks
- Summative Assessment
Data Structures & Variables
- Locked Data Structures
- Condition Variables
- Semaphores
- Summative Assessment
Advanced Concurrency
- Multi-CPU Scheduling
- Concurrency Bugs
- Event Based Concurrency
- Summative Assessment
I/O & Hard Disk Drives
- I/O Devices
- Hard Disk Drives
- Redundant Disk Arrays (RAID)
- Summative Assessment
File Systems
- Files & Directories
- Fast File System (FFS)
- File System Implementation
- Summative Assessment
Data Integrity & Protection
- FSCK and Journaling
- Log-structured File System
- Flash-based SSDs
- Summative Assessment
Distributed Systems
- Distributed Systems
- Data Integrity and Protection
- Network File System (NFS)
- Andrew File System (AFS)
- Summative Assessment