Course Objectives
- learn basic concepts and principles behind the design of operating systems
- get exposed to the problems operating systems designers face, explore the tradeoffs and solutions to these problems
- see how are these issues solved in practice in real operating systems
- be able to apply these concepts and techniques in relevant circumstances
- get some hands-on experience programming OS type problems (process creation, inter-process-communications, process synchronization, mutual exclusion, deadlock avoidance)
Content
- What Operating Systems Do
- Computer-System Organization
- Computer-System Architecture
- OS Structure
- OS Operations
- Process Management
- Memory management
- Storage and I/O Management
- Protection and Security
- Distributed Systems
- Special-Purpose Systems
- Computing Environments
Detailed List
Operating Systems overview:
- interface
- system calls
- design and implementation issues
- OS structure
Process Management
- Processes and threads
- Inter-process communication
- CPU scheduling - algorithms and criteria
- Process/thread synchronization - problems and solutions
- Deadlocks - prevention, avoidance, detection, recovery
Memory Management
- Basic main memory management
- swapping
- contiguous memory allocation
- paging
- segmentation
- Virtual memory
- demand paging
- copy-on-write
- page replacement
- allocating kernel memory
- File-System interface (files, directories, mounting
file system, file sharing)
- File-System implementation
- Mass-storage structure (disk structure,
scheduling, management)
- Swap space management
- I/O systems (hardware, application I/O interface,
kernel I/O subsystem)