CSCI 350: Outline for midterm

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)