algorithm - 磁盘调度算法

标签 algorithm scheduling disk

假设磁盘头从磁道1开始;有 230 个轨道(从 1 到 230);一次查找需要 34 + 0.1*T 毫秒,其中 T 是要移动的磁道数;延迟为 12 毫秒; I/O传输需要3毫秒。以下是所有已在磁盘队列中的请求以及它们到达的时间(从时间 0 开始):

arrival time(ms): 0, 21, 23, 28, 32, 45, 58, 83, 89, 109
for track:        43, 132, 34, 23, 202, 175, 219, 87, 75, 182

计算以下每种磁盘调度算法处理请求的平均时间:SCAN、FCFS、SSTF。还显示每个算法的服务顺序。

扫描的答案:

1>23>34>43>75>87>132>175>182>202>219>230
average time = 10*49 + 0.1*218 = 51.18 ms

我不明白他们是如何计算平均时间的。 以上是他们展示的唯一作品。 他们从哪里得到平均时间公式中的 10 和 218?

FCFS的答案

1>43>132>34>23>202>175>219>87>75>182
average time = 490 + (42+89+98+11+179+27+44+132+12+107)*0.1 = 56.4ms

我知道他们从哪里得到 (42+89+98+11+179+27+44+132+12+107)*0.1,但他们是如何得到 490 的?

最佳答案

对于扫描,移动的轨迹总数只是 1(磁头起始位置)和 219(最远轨迹)之间的差,因此移动过去轨迹所需的时间为 0.1*(219-1)。

寻道开销为 34,延迟为 12,传输开销为 3,总共 34+12+3 = 49。

因此总时间为10*49+0.1*218 = 490+21.8 = 511.8,平均51.18。

FCFS 的非移动时间为 490 毫秒。只是轨道移动时间不同。

关于algorithm - 磁盘调度算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13447974/

相关文章:

algorithm - 为什么分支位移的 "start small"算法不是最优的?

java - 如何通过 key 获得锁

linux - 内核调度程序中的 CFS 和 FIFO

algorithm - 推荐一些类似于 Bresenham 的二维球面映射算法?

python - 我怎样才能提高这个最短路径/捷径(数组图DS)解决方案的速度?

linux-kernel - 在linux内核中,数据结构thread_struct同时包含字段esp0和esp,有什么区别?

linux - linux内核的 'expired'队列中是否存在实时进程?

database - 数据库记录如何存储在磁盘上?

save - 如何将文件从网络应用程序保存到用户磁盘?

linux - 如何在 linux 编程中从/proc 获取磁盘每秒读/写字节数?