假设计算机系统采用CSCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录16384个磁盘块的空闲状态。
(1)请说明在上述条件下如何进行磁盘块空闲状态的管理。
(2)设某单面磁盘旋转速度为每分钟6000转,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动(如下图所示),磁道号请求队列为50,90,30,120,对请求队列中的每一个磁道需读取1个随机分布的扇区,则读完这4个扇区总共需要多少时间给出计算过程。
(3)如果将磁盘替换为随机访问的Flash半导体存储器(如U盘、SSD等),是否有比CSCAN更高效的磁盘调度策略若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。
参考答案:这道题初看上去似乎有些难度,尤其是第(1)和第(3)问,似乎无从下手。对于第(1)问来说,如何进行磁盘闲置空间管理似乎也问得比较模糊。但如果考虑到磁盘空间管理的根本就是磁盘闲置空间管理的策略,而不同的磁盘空闲空间管理需要的内存空间大小不同,我们就可以获得解题的思路:通过分配的内存空间来反推磁盘闲置空间管理策略。而且题意恰恰给出了用来记录磁盘块信息的内存空间大小。对于第(3)问来说,必须知道随机访问的Flash半导体存储器的特点是“随机”,即我们可以随时定位到任何想要访问的地方,无需寻道和旋转,才能合理作答。下面是这道题的详细解析。
(1)用每个磁盘块所占用的空间来反推能够采用的磁盘闲置空间管理策略:2KB/16 384=1个字位(Bit),即一个磁盘块能够用到的空间为1个字位。此时能够使用的空闲空间管理模式只能是位图映射管理,即Bit-Map。用一个字位表示一个磁盘块,0代表空闲,1代表占用。
(2)当前处于磁道号100,向着磁道增大方向移动,按照CSCAN算法,则4个磁道被访问的顺序为120,30,50,90。由于每个磁道上待访问的扇区处于随机位置,磁头移动到每个目的磁道后需要一次旋转延迟,即磁盘旋转半圈的时间。根据题意,这个时间为:(60/6000)/2=0.005s=5ms。读取一个扇区需要的时间为百分之一转的时间,即(60/6000)/100=0.0001s=0.1ms。这样每个磁道读取时间为5.1ms。我们得到访问4个磁道的总时间为:20+5.1+90+5.1+20+5.1+40+5.1=190.4ms。
(3)如果使用随机访问的Flash半导体存储器,则访问磁盘与访问内存类似,可以直接定位到目标上,无需寻道,也没有旋转。此时直接使用先来先服务即可获得最大的效率。如果考生回答不需要采用任何磁盘调度策略,也可以适当认为正确。