Study Guide for Midterm This is simply a guide of topics that I consider fair game 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. 1. Beginnings and basics a. first generation: open shop b. second generation: batch, buffering, device independence, interrupts c. third generation: multiprogramming, basic protection, time sharing, layers of abstraction, virtual machines d. fourth generation: mini- and microcomputers, networking e. functions of an operating system: process, memory, secondary storage, user interface, efficiency, reliability, maintainability, small size f. I/O: polling vs. interrupt-driven, DMA g. types of operating systems: monolithic, kernel, process hierarchy, object oriented, client server h. command interpreters and user environments for invoking programs i. basic parts of kernel: first-level interrupt handler, dispatcher, interprocess communications primitives j. process control block 2. Synchronization and Communication a. parbegin, parend b. Bernstein conditions c. critical section problem d. evaluating proposed software solutions to the critical section problem e. software solutions: Peterson's solution, bakery algorithm f. hardware solutions: test and set g. semaphores: down, up; solving synchronization problems h. abstract data types, monitors; wait, signal; solving synchronization problems i. differences between Hoare's signals, Lampson and Redell's signals, Brinch Hansen's signals j. priority waiting k. interprocess communication: send, receive l. explicit vs. implicit naming m. blocking (synchronous) vs. non-blocking (asynchronous) send, receive n. link capacity o. remote procedure calls 3. Scheduling a. short-term, medium-term, long-term schedulers b. metrics for scheduling: turnaround time, response ratio, waiting time, response time, external factors c. first come first serve algorithm d. Shortest process next, pre-emptive shortest process next (shortest remaining time next) algorithms e. Highest response ratio next algorithm f. Round robin algorithm, quantum g. Multilevel feedback queue algorithm h. External priority methods: worst service next, deadline scheduling, fair share scheduling