Operating Systems Book
Notes
- Monolithic vs microkernels, with examples
- Bootstrapping process
- Processes
- Context switching
- Threads and multithreading
- User and kernel threads
- Thread pools and their benefits
- Signals: default and user-defined handlers
- Scheduling: co-operative (Windows 3.x) or pre-emptive
- Dispatcher and dispatch latency
- Scheduling algorithms
- Processor affinity
- Starvation and aging in relation to process scheduling
- Syncronisation and race conditions
- Critical sections
- Locking and deadlocks
- Mutex locks and spinlocks
- Semaphores
- Dining philosophers problem
- Memory management
- Registers
- Logical and physical addresses
- Memory management unit
- Swapping
- Memory protection
- Memory fragmentation - internal and external
- Paging, page tables
- Page Address Extensions
- Virtual memory
- Demand paging and lazy swapping
- Page faults
- Dirty bits
- Page replacement algorithms
- What is an operating system?
- (Brief) history of operating systems
- Page sizes - reasons for small vs large + compromise
- Filesystems
- File blocks and internal fragmentation