algorithm - C-SCAN算法如何计算?

标签 algorithm io operating-system scheduling disk

我正在学习操作系统磁盘管理算法。有一种称为 C-SCAN 的特定算法,它是 SCAN (or elevator) disk scheduling algorithm 的变体。 。现在在example section of Wikipedia ,有一个计算SCAN vs C-SCAN方法的例子。

在 C-SCAN 的情况下,当磁头从 100 移动到 0 时,我们正在计算 100 的整个寻道时间。但我认为,如果 C-SCAN 被想象为扫描圆柱体,那么为什么我们会将跳跃视为寻求时间?

enter image description here

有一个 another article其中跳跃未计算。那么该怎么办?如果有人用适当的例子回答我的问题,我会很高兴。

最佳答案

算法并不是将“100”视为时间,而是将头部移动的距离。它们引用的数字也是磁道号(逻辑上,从磁盘上方观察时,柱面是彼此上方和下方的所有磁道)。因此,对于给定的示例,轨道 20 和 21 是相邻轨道。

电梯技术非常简单,一旦你开始朝一个方向前进,就继续前进,直到该方向不再有任何请求,然后改变方向并一直向另一个方向前进。把它想象成一本书,你现在在第 20 页(轨道),所以继续前进,直到最后,然后向后阅读这本书。

C-SCAN 类似,只是它不是在最后反转方向,而是回到最低点并重新开始。

这两种变体在高负载下的 I/O 延迟存在细微差别,尽管它们看起来非常接近。

关于algorithm - C-SCAN算法如何计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20447294/

相关文章:

haskell - 如何在IO代码中与纯算法交互

c++ - 将文件链接到内核时出错

java - 通讯录的高效搜索

algorithm - 这个 "Valid mathematical expression"是问题P,还是NP?

ruby - 在大多数情况下都可以尝试模糊图像

php - 排序数据和自动排序的插入 - 算法

java - 现有文件减慢 java 程序速度

c - 如何实现 IF 来检测文件读取时的最后一个字节?

c - 如何更精确地衡量上下文切换的成本

检查文件更改