Midterm Study Guide
This is simply a guide of topics that I consider important for the midterm. I don’t promise to ask you about them all, or about any of these in particular; but I may very well ask you about any of these, as well as anything we discussed in class, in discussion section, in the text, or that is in the reading.
- Beginnings and basics
- First generation: open shop
- Second generation: batch, buffering, device independence, interrupts
- Third generation: multiprogramming, basic protection, time sharing, layers of abstraction, virtual machines
- Fourth generation: mini- and microcomputers, networking
- Functions of an operating system: process, memory, secondary storage, user interface, efficiency, reliability, maintainability, small size
- I/O: polling vs. interrupt-driven, DMA
- Proces:s address space state information resources
- Process table entry
- System calls
- interaction with operating system
- File-oriented Linux system calls
- Process-oriented Linux system calls
- Synchronization and Communication
- parbegin, parend
- fork, join, quit
- Bernstein conditions
- Critical section problem
- Evaluating proposed software solutions to the critical section problem
- Software solutions: Peterson’s solution, bakery algorithm
- Hardware solutions: test and set
- Semaphores: wait, signal; solving synchronization problems
- Abstract data types, monitors; wait, signal in monitors; solving synchronization problems
- Different ways to implement signals in monitors
- Eventcounters and sequencers
- Priority waiting in monitors
- Interprocess communication: send, receive
- Explicit vs. implicit naming; blocking (synchronous) vs. non-blocking (asynchronous) send, receive; link capacity
- Scheduling
- Metrics for scheduling: turnaround time, response ratio, waiting time, response time, external factors
- Process scheduling algorithms: FCFS, SPN, PSPN, HRRN, RR and quanta, MLFB
- External priority methods: worst service next, deadline scheduling, fair share scheduling
- Memory management
- Programs and memory
- Memory management with resident monitor
- Fence addresses and registers, base and limits registers, bounds registers
- Swapping
- Fixed size regions (MFT), variable size regions (MVT)
- Memory holes (external fragmentation) and allocation algorithms
- Fragmentation and compaction