FCFS磁盘调度算法

FCFS代表先来后到,这种算法按照任务到达磁盘队列的顺序进行处理。这是最简单和容易理解的磁盘调度算法。在这个算法中,头部或指针沿着任务到达的方向移动,直到所有的请求都得到满足。然而,FCFS算法在处理即将到来的请求方面有更公平的政策。

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

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

当前读/写头的位置是53。用FCFS算法计算读/写头的总轨迹移动次数。

总的头部运动 –

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

C-SCAN磁盘调度算法

C-SCAN算法,也被称为循环电梯算法,是SCAN算法的修改版。在这个算法中,磁头指针从磁盘的一端开始,向另一端移动,为中间的所有请求服务。到达另一端后,磁头扭转方向,回到起点。然后,它以与之前相同的方向满足剩余的请求。C-SCAN是最好的磁盘调度算法之一。

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

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

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

= (65-53)+(98-65)+(122-98)+(124-122)+(183-124) +(199-183)+(199-0)+(10-0)+(40-10)
= 395

FCFS和C-SCAN磁盘调度算法之间的区别 :

编号 FCFS磁盘调度算法 C-SCAN磁盘调度算法
1 FCFS在寻道运动中是低效的。 C-SCAN在寻道运动中是非常有效的。
2 FCFS导致更多的平均等待时间和响应时间。 C-SCAN导致较少的平均响应时间和等待时间。
3 在上述FCFS的例子中,头部从53开始,按照请求到达磁盘队列的顺序提供服务。 在上述C-SCAN算法的例子中,磁头从53号开始移动,以正确的方向服务所有的请求,直到到达另一端。然后,它跳到另一端,只按右方向服务剩余的请求。
4 在FCFS算法中,吞吐量是下降的。 在这里,吞吐量是增加的。
5 FCFS不会对任何请求造成饥饿,但请求可能会出现Convoy效应。 在C-SCAN算法中,请求既不遭受饥饿,也不遭受Convoy效应。
6 FCFS算法很容易理解和实现。 C-SCAN算法的性能远远好于FCFS算法。