1. FCFS 磁盘调度算法:先到先得,顾名思义,该算法按照它们到达磁盘队列的顺序来处理任务。它是最简单易懂的磁盘调度算法。在这种情况下,头部或指针沿任务到达的方向移动,直到所有请求都得到服务。FCFS 提供更多的平均等待时间和响应时间。但是,FCFS 算法在处理即将到来的请求方面具有更公平的策略。
示例:考虑具有 200 个磁道 (0-199) 的磁盘,并且磁盘队列具有以下顺序的 I/O 请求,如下所示:
98, 183, 40, 122, 10, 124, 65
Read/Write
磁头当前磁头位置为53。使用FCFS算法计算Read/Write
磁头的磁道移动总数。
总头部运动,
= (98-53)+(183-98)+(183-40)+(122-40)+(122-10)+(124-10)+(124-65)
= 640
- SSTF:SSTF代表Shortest Seek Time First,顾名思义,它服务于最接近磁头或指针当前位置的请求。在这个算法中,头指针的方向很重要。如果不知何故,我们遇到请求之间的联系,那么头部将在其正在进行的方向上为请求提供服务。与 FCFS 相比,SSTF 算法在寻道时间上非常有效。
示例:考虑具有 200 个磁道 (0-199) 的磁盘,并且磁盘队列具有以下顺序的 I/O 请求,如下所示:
98, 183, 40, 122, 10, 124, 65
Read/Write
磁头的当前磁头位置为 53,并将向右移动。使用 SSTF 算法计算读/写磁头的磁道移动总数。
= (65-53)+(65-40)+(40-10)+(98-10)+(122-98)+(124-122)+(183-124)
= 240
FCFS和SSTF磁盘调度算法的区别:
编号 | FCFS调度算法 | SSTF调度算法 |
---|---|---|
1 | FCFS 在寻道动作中效率不高。 | SSTF 在寻找运动方面非常有效/高效。 |
2 | 导致总寻道时间增加。 | 与 FCFS 相比,它减少了总寻道时间。 |
3 | 提供更多的平均等待时间和响应时间。 | 该算法提供更少的平均响应时间和等待时间。 |
4 | 在这个算法中,头部的方向并不重要,可以在上面的例子中清楚地看到。 | 这里 head 的方向起着重要的作用,为了打破请求之间的联系,上面的例子就是一个证明。 |
5 | 该算法易于理解和实现。 | 找出最近的请求是有开销的。 |
6 | FCFS 不会对任何请求造成饥饿(但可能会受到 Convoy 效应的影响)。 | 在这里,远离头部的请求将遭受饥饿。 |
7 | 在FCFS 算法中,Throughput 是递减的。 | 在 SSTF 中,吞吐量有所增加。 |
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/276121.html