Midterm Review Notes

You will be allowed 1 8.5" by 11" sheet of notes for the Midterm Exam. You can use the front and back of the sheet for your notes.

On the Midterm, you will be probed on the following topics:

My review notes below are simply my thoughts on what is important in the Midterm material; you are still responsible for all items in Chapter 1-8, even if they are not explicitly mentioned in these notes.

Chapter 1-3 Introduction, Computer System Structures, Operating System Structures

Top five concepts/points:

  1. OS History: batch systems to time sharing systems to multiprogramming systems and so on [Ch 1]
  2. Computer system evolution: mainframe, desktop, multiprocessor, distributed, real-time systems, etc [Ch 1]
  3. Basic computer system organization: CPU, I/O, storage, memory, network [Ch 2]
  4. OS components: process, memory, file, I/O, storage, networking, and protection management [Ch 3]
  5. OS structure: system called, layered vs. not, kernel, virtual machine [Ch 3]

Chapter 4 Processes

Top five concepts/points:

  1. Process states and scheduling: PCB, diagrams on page 97 and 101
  2. Process creation: child processes, fork/execlp paradigm
  3. Process cooperation and communication
  4. Process communication examples: Mach & Windows 2000
  5. Client-server architecture: sockets, remote procedure calls, remote method invocation

Chapter 5 Threads

Top five (or so) concepts/points:

  1. Threads versus processes
  2. User versus kernel threads: threading models
  3. Thread examples: PThreads, Solaris 2, Windows 2000, Linux, Java

Chapter 6 CPU Scheduling

Top five concepts/points:

  1. Different levels of schedulers: short, medium and long-term
  2. Scheduling criteria: CPU utilization, throughput, turnaround time, wait time, response time
  3. Scheduling algorithms: Gantt charts, FCFS, SJF, priority, round robin, multi-level queue, evaluation and Little's formula
  4. Real-time scheduling
  5. Process scheduling examples: Solaris 2, Windows 2000, Linux

Chapter 7 Process Synchronization

Top five (or so) concepts/points:

  1. Synchronization definition: deadlock, race condition, critical section, entry section, exit section
  2. Synchronization requirements: mutual exclusion, progress, bounded waiting
  3. Hardware solutions: TestAndSet(), Swap()
  4. Semaphores
  5. Critical regions and monitors
  6. Deadlock problems: bounded buffer, reader-writer, dining philosopher
  7. Synchronization examples: Solaris 2, Windows 2000

Chapter 8 Deadlocks

Top 5 concepts/points:

  1. Necessary conditions for deadlock: mutual exclusion, hold and wait, no preemption, circular wait
  2. Resource allocation graphs (RAGs)
  3. Deadlock prevention: breaking one of the four conditions
  4. Deadlock avoidance/detection: safe state, safe sequence, RAGs, Banker's algorithm
  5. Recovery