CSC 539: Operating Systems Structure and Design
Fall 2003

Midterm Review


Overview & History reasons for studying OS single-user --> batch --> multiprogramming --> time-sharing --> desktop user interfaces: command line vs. GUI new architectures: multiprocessor, distributed, cluster, real-time, handheld Hardware & OS Background computer system structures I/O: interrupts, I/O structures, device-status table memory: DMA, memory hierarchy (primary vs. secondary), caching hardware protection: dual-mode, privileged instructions, base/limit registers, timer interrupts networking: LAN (e.g., Ethernet) vs. WAN (e.g., Internet) operating system structures OS components process mgmt, memory mgmt, file mgmt, I/O mgmt networking, protection, command interpreter OS services program execution, I/O, file system, communications, error detection system perspective: resource allocation, accounting, protection system calls: steps in system call, parameter passing kernel: applications programs vs. system programs OS structure: simple vs. layered vs. microkernel, virtual machines Processes & Threads process process states: new, running, waiting, ready, terminated PCB, process scheduling queues (ready, waiting, devices) schedulers: short-term (CPU scheduler), long-term (job scheduler) I/O bound vs. CPU-bound jobs, medium-term scheduler CPU context switching operations: creation (e.g., fork), termination (e.g., exit), others (e.g., execvp, wait) process coordination, communications (shared memory vs. message passing) threads lightweight process advantages: responsiveness, resource sharing, economy, concurrency CPU scheduling historical perspective: simple --> complex --> simple --> complex CPU & I/O bursts, burst distribution preemptive vs. nonpreemptive scheduling scheduling criteria CPU utilization, throughput, turnaround, waiting, response time, fairness scheduling algorithms FCFS, SJF (exponential averaging), priority scheduling (starvation, aging), RR (quantum size), multilevel queue, multilevel feedback queue multiple-processor scheduling, real-time scheduling scheduling algorithm evaluation deterministic models, simulation, queuing models, implementation case studies: BSD UNIX, Solaris 2, Linux, Windows 2000/NT CPU synchronization producer/consumer problems, race conditions critical section problem solution characteristics: mutual exclusion, progress, bounded waiting Bakery algorithm, synchronization hardware semaphores, busy waiting vs. waitless high-level constructs: critical regions, monitors