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 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
- Types of operating systems: monolithic, kernel, process hierarchy, object oriented, client server
- Command interpreters and user environments for invoking programs
- Basic parts of kernel: first-level interrupt handler, dispatcher, interprocess communications primitives
- Process control block
- 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: down, up; solving synchronization problems
- abstract data types, monitors; wait, signal; solving synchronization problems
- different ways to implement signals in monitors
- priority waiting in monitors
- interprocess communication: send, receive
- explicit vs. implicit naming
- blocking (synchronous) vs. non-blocking (asynchronous) send, receive
- link capacity
- remote procedure calls
- Scheduling
- short-term, medium-term, long-term schedulers
- metrics for scheduling: turnaround time, response ratio, waiting time, response time, external factors
- first come first serve algorithm
- Shortest process next, pre-emptive shortest process next (shortest remaining time next) algorithms
- Highest response ratio next algorithm
- Round robin algorithm, quantum
- Multilevel feedback queue algorithm
- External priority methods: worst service next, deadline scheduling, fair share scheduling