SSTF磁盘调度算法

SSTF是指最短寻道时间优先。顾名思义,这个算法是为最接近磁头或指针当前位置的任务请求服务的。在这里,磁头的方向在决定磁头的总移动中起着重要作用。如果请求之间出现平局,那么头部将为遇到它的请求提供服务,在它的持续方向上。与C-LOOK不同,SSTF算法在总寻址时间上非常有效。

举个例子
考虑一个有200个轨道(0-199)的磁盘,磁盘队列中的I/O请求按以下顺序排列。

98, 183, 40, 122, 10, 124, 65

当前读写头的位置是53,将向右移动。使用SSTF算法计算读/写头的轨道移动总数。
SSTF磁盘调度算法

总的头部运动 –

= (65-53)+(65-40)+(40-10)+(98-10)+(122-98)+(124-122)+(183-124)
= 240

C-LOOK 磁盘调度算法

C-LOOK是LOOK和SCAN算法的修改版。在这个算法中,磁头从一个方向的第一个请求开始,向另一端的最后一个请求移动,为这中间的所有请求服务。在到达一端的最后一个请求后,头部向另一方向跳动,并向剩余的请求移动,然后以相同的方向满足它们。与SSTF不同的是,它不提供离头部或指针当前位置最近的任务请求。

例子
考虑一个有200个轨道(0-199)的磁盘,磁盘队列中的I/O请求按以下顺序排列:

98, 183, 40, 122, 10, 124, 65

读/写头的当前位置是53,将向右移动。用C-LOOK算法计算读/写头的总轨迹移动次数。

总的头部运动 –

= (65-53)+(98-65)+(122-98) +(124-122)+(183-124)+(183-10)+(40-10)
= 333

SSTF和C-LOOK磁盘调度算法的区别 :

编号 SSTF磁盘调度算法 C-LOOK磁盘调度算法
1 SSTF算法可以操纵两个方向的请求。 C-LOOK算法只对一个方向的请求进行处理。
2 在SSTF算法中,有一个寻找最近的请求的负担。 与SSTF相比,这种算法会导致更多的搜索时间。
3 SSTF算法在性能上落后。 C-LOOK的性能远远好于SSTF。
4 在上面的SSTF算法的例子中,头部从53开始,分析离它最近的请求,然后朝那个方向移动。 在上面的C-LOOK算法的例子中,头从53号开始移动,在右边的方向上服务所有的请求,直到它到达一端的最后一个请求。然后,它跳到剩余的请求,并只在右边方向上为它们服务。
5 SSTF算法会导致饿死。 C-LOOK算法不会导致任何请求的饿死。
6 SSTF在平均等待时间和响应时间上有很大的差异。 C-LOOK算法在平均等待时间和响应时间上提供了低差异。