CSC 539: Operating Systems Structure and Design
Spring 2005
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
high-level constructs: critical regions, monitors