CSC 539: Operating Systems Structure and Design
Spring 2006

Test 1 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 system calls: steps in system call, parameter passing kernel: applications programs vs. system programs OS structure: simple vs. layered vs. microkernel 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), ... 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: Solaris, Windows XP, Linux CPU synchronization producer/consumer problems, race conditions critical section problem solution characteristics: mutual exclusion, progress, bounded waiting synchronization hardware semaphores, busy waiting vs. waitless Java tools: synchronized, Semaphore high-level constructs: critical regions, monitors