Figure 5.18:
From left to right: First-in, First-out (FIFO); Shortest Seek Time First; Elevator Algorithm (SCAN); Modified Elevator (Circular SCAN, C-SCAN)
|
- Time required to read or write a disk block determined by 3 factors; Seek time, Rotational delay, Actual transfer time
- Seek time dominates
- For a single disk, there will be a number of I/O requests
- Processing them in random order leads to worst possible performance
- First-in, First-out (FIFO)
- Process requests as they come
- Fair (no starvation)
- Good for a few processes with clustered requests
- Deteriorates to random if there are many processes
- Shortest Seek Time First
- Select request that minimises the seek time
- Generally performs much better than FIFO
- May lead to starvation
- Elevator Algorithm (SCAN)
- Move head in one direction; Services requests in track order until it reaches the last track, then reverses direction
- Better than FIFO, usually worse than SSTF
- Avoids starvation
- Makes poor use of sequential reads (on down-scan)
- Modified Elevator (Circular SCAN, C-SCAN)
- Like elevator, but reads sectors in only one direction; When reaching last track, go back to first track non-stop
- Better locality on sequential reads
- Better use of read ahead cache on controller
- Reduces max delay to read a particular sector
- Selecting a Disk-Scheduling Algorithm
- SSTF common, natural appeal
- SCAN and C-SCAN perform better if heavy load on disk
- Performance depends on number and types of requests
- Requests for disk service influenced by file-allocation method
- Disk-scheduling should be separate module of OS, allowing replacement with different algorithm if necessary
2004-05-25