Shortest seek first (or shortest seek time first) is a secondary storage scheduling algorithm to determine the motion of the disk read-and-write head in servicing read and write requests.
This is an alternative to the first-come first-served (FCFS) algorithm. The drive maintains an incoming buffer of requests, and tied with each request is a cylinder number of the request. Lower cylinder numbers indicate that the cylinder is closer to the spindle, while higher numbers indicate the cylinder is farther away.The shortest seek first algorithm determines which request is closest to the current position of the head, and then services that request next.
The shortest seek first algorithm has the benefit of simplicity, in that overall arm movement is reduced, resulting in a lower average response time.
However, since the buffer is always getting new requests, these can skew the service time of requests that may be farthest away from the disk head's current location, if the new requests are all close to the current location; in fact, starvation may result, with the faraway requests never being able to make progress.[1]
The elevator algorithm is one alternative for reducing arm movement and response time, and ensuring consistent servicing of requests.