Course Description
The use and internals of modern operating systems: lectures focus on
internals whereas programming assignments focus on use of the
operating system interface. Major topics include: the process concept;
concurrency and how to program with threads; memory management
techniques, covering virtual memory and shared libraries; file system
data structures; and I/O.
Detailed information about the course can be found in the
syllabus.
Course Material
Mandatory:
Other readings:
- Modern Operating Systems (4th Edition), Andrew S. Tanenbaum, Herbert Bos
- Linux Device Drivers 4th Edition (3rd Edition is also good) (open-source)
- Materials posted on Canvas
Optional:
- Understanding the Linux Kernel, any Edition
Course Schedule and Readings
Introduction
Readings: zyBook Ch.1, MOS Ch.1
Process and Threads
Readings: zyBook Ch.2, MOS Ch.2.1-2.2,6.1
Introduction to Linux
Scheduling
Readings: zyBook Ch.3, MOS Ch.2.4
Concurrency
Readings: zyBook Ch.4, MOS Ch.2.3, 2.5
Memory Management
Readings: zyBook Ch.6, MOS Ch.3.1-3.3, 3.7
Virtual Memory
Readings: zyBook Ch.7, MOS Ch.3.3-3.5
File Systems
Readings: zyBook Ch.8, MOS Ch.4.1-4.3
Input/Output
Readings: zyBook Ch.9, MOS Ch.5.1-5.4, 4.4
Deadlock
Readings: zyBook Ch.5, MOS Ch.6.2, 6.4-6.6
Security
Readings: zyBook Ch.10, MOS Ch.9