This is my outline of topics we've covered so far this semester. All of them are legitimate topics for questions on the midterm.
The midterm will tend to emphasize the most recent topics (Devices), as you haven't had a quiz on them yet. But I estimate that half of the midterm will come from the first and second sections (Introduction and Processes).
I. Introduction A. purpose of OS B. system calls 1. the Posix system calls 2. implementation using interrupts C. OS architectures - monolithic v. microkernel D. history of Unix, Minix II. Processes A. process table, process switching B. synchronization 1. shared-memory approaches 2. semaphores C. process scheduling techniques D. processes in Minix 1. scheduling technique 2. message passing 3. process switching III. Devices A. definitions 1. block and character devices (154) 2. nonpreemptive devices and deadlock (166-167) 3. memory-mapped I/O and ports (155-156) 4. DMA (157-158) B. disks 1. hardware: cylinders, tracks, sectors, platters, heads (200-203) 2. scheduling arm movement (203-204) C. terminals (235-241)