2011年和2019年磁盘调度大题

知识回顾

(1)磁盘盘块的物理地址为(柱面号,盘面号/磁头号,盘区号(或块号/簇号)

(2)

【2011题目】

假设计算机系统采用C-SCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录16384个磁盘块的空闲状态。

(1)请说明如何进行磁盘块空闲状态的管理

【解析】

因为2KB=2^11 B=2^14 bit=16384bit(注意),所以可以使用位图法表示磁盘的空闲状态。每位表示一个磁盘块的空闲状态。

(2)设某单面磁盘旋转速度为6000转/分,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道,并沿着磁道增大的方向移动,磁道号请求队列为50、90、30、120,对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这4个扇区点共需要多少时间?

【解析】

采用C-SCAN调度算法,访问磁道的顺序和移动的磁道数如下表:

被访问的下一个磁道号

移动距离(磁道数)

120

20

30

90

50

20

90

40

总的移动磁道时间为20+90+20+40=170ms。

转速为6000转/分,所以转一圈时间为60s/6000=0.01s=10ms,平均读磁盘的延迟时间为转半圈的时间=0.005s=5ms,所以4个扇区点的延迟时间为20ms。

划重点】由于每个磁道有100个扇区,每个磁道是访问一个扇区(注意看题目)

所以4个扇区的传输时间=10ms/100 *4=0.4ms(1个扇区的传输时间即转一个扇区的时间

 

所以读取上述磁道上所有扇区总时间为170+20+0.4=190.4ms。

注意:一般题目中的C-SCAN默认是C-LOOK,即指需要到达最远端的一个请求就可以返回,不需要到达磁盘的端点。

(3)若将磁盘替换为随机访问的Flash半导体存储器(如U盘、固态硬盘等),是否有比C-SCAN更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无也说明理由。

【解析】

采用先来先服务FCFS调度策略更高效,因为Flash半导体存储器的物理结构不需要考虑寻道时间和延迟时间,可公平地按照I/O请求的先后顺序服务。

注意:随机访问的存储在读取数据时不需要定位时间(寻道时间+延迟时间),只需要传输时间。而王道书上学FCFS、SSTF、SCAN、C-SCAN调度算法都是减少磁盘的寻道时间,虽然官方答案给的是FCFS,但是这里强调的是公平性,王道视频里说答案不是太佳。

 

【2019题目】

某计算机系统中的磁盘由300个柱面,每个柱面有10个磁道,每个磁道有200个扇区,扇区大小为512B。文件系统的每个簇包含2个扇区。

(1)磁盘的容量是多少?

【解析】磁盘容量=磁盘的柱面数×每个柱面的磁道数×每个磁道的扇区数×每个扇区的大小=(300×10×200×512/1024)KB=3*10^5KB

(2)假设磁头在85号柱面上,此时有4个磁盘访问请求,簇号分别,为100260,60005和110560.采用最短寻道时间优先(SSTF)调度算法,系统访问簇的先后次序是什么?

【解析】磁头在85号柱面上,对SSTF算法而言,总是访问当前柱面距离最近的地址。注意每个簇包含2个扇区,85号柱面对应的簇号为85000~85999(这里其实和第三问的解题过程有点关系,地址的前2位为相应的柱面号).通过比较得出,系统最先访问离85000~85999最近的100260,随后访问110560,最后访问60005.

(3)第100530簇在磁盘上的物理地址是什么?将簇号转换成磁盘物理地址的过程是由I/O系统的什么程序完成的?

【解析】

第100530簇在磁盘上的物理地址由其所在的柱面号、磁头号、扇区号构成。(OS王道书上说第三个字段也可以是“块号/簇号”,这题给出簇号所以应该第三个字段是 簇号

柱面号=[簇号/每个柱面的簇数]=[100530/(10×200/2)]=100,

磁头号=[(簇号%每个柱面的簇数)/每个磁道的簇数]=[530/(200/2)]=5

扇区号即剩下的30.

将簇号转换成磁盘物理地址的过程由磁盘驱动程序完成。

注意:(3)题中的第×块簇实际上告诉簇号,要利用(柱面号,磁头号,扇区号)求各字段。!:注意给的是簇号而不是扇区号所以比如柱面号=[簇号/每个柱面的簇数]里的被除数是【簇数】,而不是每个柱面的扇区数。

另外不用纠结这里的第100530簇是从0开始还是从1开始(因为最后的答案都一样==)

猜你喜欢

转载自blog.csdn.net/qq_35812205/article/details/107369047