Syllabus
Adapted from the standard graduate entrance examination syllabus for operating systems.
- Grasp the basic concepts, principles, and functions of an operating system, and understand how the system runs as a whole.
- Grasp the strategies, algorithms, mechanisms, and interrelationships of operating system process, memory, file, and I/O management.
- Be able to apply the principles, methods, and techniques learned here to analyse and solve problems, and to describe the relevant algorithms in C.
- (a) Concepts, characteristics, functions, and services of an operating system
- (b) Development and classification of operating systems
- (c) The runtime environment of an operating system
- Kernel mode and user mode
- Interrupts and exceptions
- System calls
- (d) Operating system architectures
- (a) Processes and threads
- The concept of a process
- Process states and transitions
- Process control
- Process organisation
- Process communication: shared memory systems; message passing systems; pipes
- The concept of a thread and multithreading models
- (b) Processor scheduling
- Basic scheduling concepts
- Scheduling moments, switches, and the scheduling procedure
- Basic scheduling criteria
- Scheduling approaches
- Typical scheduling algorithms: first-come first-served; shortest job (or shortest process/thread) first; round-robin; priority scheduling; highest response ratio next; multilevel feedback queue.
- (c) Synchronization and mutual exclusion
- Basic concepts of process synchronization
- Basic approaches to mutual exclusion in critical sections: software methods; hardware methods
- Semaphores
- Monitors
- Classical synchronization problems: producer–consumer; readers–writers; dining philosophers.
- (d) Deadlock
- The concept of deadlock
- Deadlock handling strategies
- Deadlock prevention
- Deadlock avoidance: the safe state of the system and the Banker’s algorithm
- Deadlock detection and recovery
- (a) Memory management fundamentals
- Concepts: program loading and linking; logical versus physical address spaces; memory protection
- Contiguous allocation management
- Non-contiguous allocation management: paging; segmentation; segmented paging
- (b) Virtual memory management
- Core concepts of virtual memory
- Demand paging
- Page replacement algorithms: OPT; FIFO; LRU; CLOCK
- Page allocation strategies
- The working set
- Thrashing
- (a) File system fundamentals
- The concept of a file
- Logical file structure: sequential files; indexed files; indexed sequential files
- Directory structure: file control blocks and inodes; single-level and two-level directory structures; tree-structured directories; graph-structured directories
- File sharing
- File protection: access types; access control
- (b) File system implementation
- File system layering
- Directory implementation
- File implementation
- (c) Disk organisation and management
- Disk structure
- Disk scheduling algorithms
- Disk space management
- (a) I/O management overview
- I/O control methods
- The I/O software layering
- (b) The I/O core subsystem
- The concept of I/O scheduling
- Caching and buffering
- Device allocation and reclamation
- Spooling
