🏷️ 知识点:磁盘调度算法
某系统中磁盘的磁道数为 200 (0~199), 磁头当前在 184 号磁道上。用户进程提出的磁盘访问请求对应的磁道号依次为 184, 187, 176, 182, 199。若采用最短寻道时间优先调度算法 (SSTF) 完成磁盘访问,则磁头移动的距离(磁道数)是( )。
A. 37 B. 38 C. 41 D. 42
[tag_link]
正确答案:C
最短寻道时间优先算法 总是选择调度与当前磁头所在磁道距离最近的磁道。可以得出访问序列 184,182,187,176,199,从而求出移动距离之和是 0+2+5+11+23=41。
系统总是访问磁盘的某个磁道而不响应对其他磁道的访问请求,这种现象称为磁臂黏着。下列磁盘调度算法中,不会导致磁臂粘着的是( )。
A. 先来先服务 (FCFS) B. 最短寻道时间优先 (SSTF) C. 扫描算法 (SCAN) D. 循环扫描算法 (CSCAN)
[tag_link]
正确答案:A
参考 机械硬盘调度算法 ,当系统总是持续出现某个磁道的访问请求时,均持续满足最短寻道时间优先、扫描算法和循环扫描算法的访问条件,会一直服务该访问请求。因此,先来先服务按照请求次序进行调度,比较公平,故选 A。
某硬盘有 200 个磁道(最外侧磁道号为 0),磁道访问请求序列为:130,42,180,15,199,当前磁头位于第 58 号磁道并从外侧向内侧移动。按照 SCAN 调度方法处理完上述请求后,磁头移过的磁道数是( )。
A. 208 B. 287 C. 325 D. 382
[tag_link] 正确答案:C SCAN 算法就是电梯调度算法。顾名思义,如果开始时磁头向外移动就一直要到最外侧,然后再返回向内侧移动,就像电梯若往下则一直要下到最底层需求才会再上升一样。当期磁头位于 58 号并从外侧向内侧移动,先依次访问 130 和 199, 然后再返回向外侧移动,依次访问 42 和 15, 故磁头移过的磁道数是:(199-58)+(199-15) = 325。
某磁盘的磁道数为 400(磁道号为 0~399),采用循环扫描算法 (CSCAN) 进行磁盘调度,完成对 200 号磁道的请求后,磁头向磁道号减小的方向移动,若还有 7 个请求,对应的磁道号分别为 300, 120, 110, 0, 160, 210, 399,则完成上述磁盘请求后磁头移动的距离是( )。
A. 599 B. 619 C. 788 D. 799
[tag_link]
正确答案:C
在 CSCAN 中,磁头会在一个方向上移动,直到达到磁道的一端,然后立即返回到另一端,再次开始扫描。首先磁头会移动到 160 号磁道,然后依次是 120 号、110 号、0 号,接着磁头移动到开头,然后向磁道号减少的方向移动:依次移动到 399 号、300 号、210 号,完成所有请求后,磁头移动的总距离为:200-160=40;160-110=50;110-0=110;399-0=399;399-300=90;300-210=90;磁头移动的总距离为 40+50+110+399+99+90=788
假设计算机系统采用 CSCAN(循环扫描)磁盘调度策略,使用 2KB 的内存空间记录 16384 个磁盘块的空闲状态。
(1) 请说明在上述条件如何进行磁盘块空闲状态的管理。
(2) 设某单面磁盘的旋转速度为 6000rpm,每个磁道有 100 个扇区,相邻磁道间的平均移动的时间为 1ms。若在某时刻,磁头位于 100 号磁道处,并沿着磁道号增大的方向移动(见下图),磁道号的请求队列为 50, 90, 30, 120,对请求队列中的每个磁道需读取 1 个随机分布的扇区,则读完这个扇区点共需要多少时间?需要给出计算过程。
(3) 如果将磁盘替换为随机访问的 Flash 半导体存储器(如 U 盘、SSD 等),是否有比 CSCAN 更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。
[tag_link]
1)用 位图 表示磁盘的空闲状态。每位表示一个磁盘块的空闲状态,共需要 16384/32 = 512字 = 512×4字节 = 2KB,正好可放在系统提供的内存中。
2)采用 C-SCAN 调度算法,访问磁道的顺序和移动的磁道数见下表。
| 被访问的下一个磁道号 | 移动距离(磁道数) |
|---|---|
| 120 | 20 |
| 30 | 90 |
| 50 | 20 |
| 90 | 40 |
移动的磁道数为 20+90+20+40 = 170,故总的移动磁道时间为 170ms。由于转速为 6000rpm,则平均旋转延迟为 5ms,总的旋转延迟时间 = 20ms。由于转速为 6000rpm,则读取一个磁道上一个扇区的平均读取时间为 0.1ms,总的读取扇区的时间为 0.4ms。综上,读取上述磁道上 所有扇区所花的总时间为 190.4ms。
3)采用 FCFS 调度策略更高效。因为 Flash 半导体存储器的物理结构不需要考虑寻道时间和旋转延迟,可直接按 I/O 请求的先后顺序服务。