🧠

Disk Scheduling

  • Transferring data to/from secondary memory is the worst bottleneck of a general computing system
  • As a computer deals with multiple processes over time, request to access the disk accumulate
  • Operating systems use disk scheduling to determine which requests to complete first
  • Scheduling algorithms primarily try to solve issues with seek time

First-Come, First-Served

  • Similar to the CPU scheduling algorithm
  • One of the easiest to implement but not the most efficient
  • Process requests in order they arrive
    • Disregard the current position of the heads
  • Head often moves over cylinders whose requests are pending

Shortest-Seek-Time-First

  • Moves heads by the minimum amount necessary to satisfy a request
  • Could result in the heads changing directions after each request is satisfied
  • Does not guarantee smallest overall head movement
  • Improvement over performance of FCFS
  • It's possible an early request never gets processed
    • New requests keep getting added close to where the head is
    • New requests are closer --> higher priority
    • Called starvation

SCAN

  • Read/write heads move in toward the spindle then out toward the platter edge
    • Back and forth between spindle and platter edge
  • Satisfy requests along the way
  • No chance of starvation