CSC 539: Operating Systems Structure and Design
Fall 2002
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
design principle: mechanism vs. policy
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