Operating Systems
Operating systems are fundamental to computer science and software engineering. A central question is how applications interact with hardware resources efficiently and safely, and which mechanisms enable multiple applications to run simultaneously while sharing resources. This course addresses these questions.
The theory of operating systems comprises three main areas: process management, memory management, and I/O management. The course begins with process management, introducing a simple model of computation called a process, followed by an enhanced model known as threads. In memory management, students learn about virtual memory and its implementation through paging. The final component, I/O management, covers device drivers and file systems.
Throughout the course, theoretical concepts are reinforced through practical examples drawn from the xv6 operating system.
Course Overview
This course is organized into five different modules. It starts with reviewing process management in module-1, covering process abstraction, system calls, and scheduling. In module-2, the course introduces memory management concepts including virtual memory, paging, and memory allocation algorithms. Module-3 covers concurrent programming using threads, locks, and synchronization primitives. Module-4 provides hands-on experience with the xv6 operating system, examining how theoretical concepts are implemented in practice. Finally, in module-5, the students will learn about I/O subsystems focusing on device drivers, filesystems, and networking.
Learning Objectives
Info not available
Learning Outcomes
After completing this course, students should be able to
- Explain the basic operating system concepts including processes, virtual memory, concurrency, and I/O management | Comprehend Outcome
- Design and implement basic operating system components and validate their correctness | Create Outcome
- Find practical applications of operating system concepts in real systems | Evaluate Outcome
- Explain differences between various resource management policies and their tradeoffs | Analyze Outcome
- Demonstrate understanding of operating system internals using examples from xv6 | Apply Outcome
- Explain system-level programming concepts using examples | Comprehend Outcome
Recommended Textbooks
Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (available online)
Additional Readings
Info not available
