
ECS 150, Operating Systems Fall Quarter 2008
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, or that is in the reading.
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. fork,join,quit
c. Bernstein conditions
d. Critical section problem
e. Evaluating proposed software solutions to the critical section problem
f. Software solutions: Petersons solution, bakery algorithm
g. Hardware solutions: test and set
h. Semaphores: down,up; solving synchronization problems
i. Abstract data types, monitors; wait,signal; solving synchronization problems
j. Different ways to implement signals in monitors
k. Priority waiting in monitors
l. Interprocess communication: send,receive
m. Explicit vs. implicit naming; blocking (synchronous) vs. non-blocking (asynchronous) send, receive; link
capacity
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. Process scheduling algorithms: FCFS, SPN, PSPN, HRRN, RR and quanta, MLFB
d. External priority methods: worst service next, deadline scheduling, fair share scheduling
4. Input and Output
a. Device drivers and transparency
b. Structure of a device driver
c. Character code independence, device independence, uniform treatment of devices
d. Escape characters, bit stuffing
e. Device interfaces
f. Device drivers: lower, upper parts
g. Disk scheduling algorithms: FCFS, pick-up, SSTF, SCAN, LOOK, N-Step SCAN, C-SCAN, C-LOOK
h. File, system calls for I/O
i. Blocking vs. non-blocking I/O
Version of October 28, 2008 at 7:22am Page 1 of 1