• ↑↓ pour naviguer
  • pour ouvrir
  • pour sélectionner
  • ⌘ ⌥ ↵ pour ouvrir dans un panneau
  • ←→ pour naviguer
  • esc pour rejeter
⌘ '
raccourcis clavier

The Problem

Disk access is slow (milliseconds) compared to CPU/RAM (nanoseconds). The mechanical seek time (moving the disk arm) dominates. With multiple I/O requests, the order of servicing them greatly affects performance.

Core Idea

Disk scheduling algorithms decide the order to service pending I/O requests to minimize seek time and improve throughput.

How It Works

Common algorithms:

  1. FCFS: Process requests in arrival order (simple, but can be slow)
  2. SSTF: Pick closest request first (minimizes seek, but may starve)
  3. SCAN (Elevator): Move in one direction, service requests, reverse at end
  4. C-SCAN: Like SCAN but only services in one direction, jumps back
  5. LOOK/C-LOOK: Like SCAN/C-SCAN but stops at last request (not end of disk)
disk_sched Queue Request Queue (track numbers) Algo Scheduling Algorithm Queue->Algo Order Service Order (e.g., SSTF) Algo->Order Disk Disk Arm seeks to tracks Order->Disk

Key Properties

  • SSTF reduces average seek but can starve distant requests
  • SCAN gives uniform wait times (like elevator algorithm)
  • C-SCAN provides more uniform wait than SCAN
  • LOOK is more efficient (doesn’t go to disk end unnecessarily)

Connections

Edge Cases & Gotchas

  • SSTF can cause starvation for requests at disk edges
  • Request merging (adjacent sectors) can improve throughput
  • Modern disks do their own scheduling (NCQ) — OS scheduling may be ignored