由于IO的高成本,操作系统在决定发送给磁盘的I/O顺序方面历来发挥作用,更具体的说,给定一组I/O请求,磁盘调度程序检查请求并决定下一个要调度的请求.
与任务调度不同,每个任务的长度通常是不知道的,对于磁盘调度,我们可以很好的猜测 “任务” 需要多长时间,通过估计请求的查找和可能的旋转延迟,磁盘调度程序可以知道每个请求将花费多长时间,因此选择先服务花费最少时间的请求. 因此,磁盘调度程序将尝试在其操作中遵循SJF的原则.(principle of SJF,shortest job first)
📖1. 最短寻道时间优先(SSTF)

一种早期的磁盘调度方法称为最短寻道时间优先(Shortest-Seek-Time-First, SSTF),SSTF按磁道对I/O请求队列排序,选择在最近磁道上的请求先完成.
例如:假设磁头当前位置在内圈磁道上,并且我们请求扇区21(中间磁道)和2(外圈磁道),那么我们会首先发出对21的请求,等待它完成,然后发出对2的请求.
在这个例子中,SSTF运作良好,首先寻找中间磁道,然后寻找外圈磁道,但SSTF不是万能的,原因如下:
- 主机操作系统无法利用驱动器的几何结构,而是只会看到一系列的块,但这个问题可以解决,操作系统可以简单的实现最近块优先
(Nearest-Block-First),然后用最近的地址块来请求调度. - 第二个问题更根本:饥饿问题. 如果有过多的内圈磁道

最低0.47元/天 解锁文章
2719

被折叠的 条评论
为什么被折叠?



