磁盘复习.docx
- 文档编号:28829985
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:11
- 大小:63.04KB
磁盘复习.docx
《磁盘复习.docx》由会员分享,可在线阅读,更多相关《磁盘复习.docx(11页珍藏版)》请在冰豆网上搜索。
磁盘复习
假定磁盘转速为20ms/r,每个磁道被划分为10个扇区,如图1所示。
现有10条记录存放在同一磁道上(一条记录正好与一个扇区的大小相等),处理程序从磁盘读出一条记录需要4ms,现要求按从1到10的顺序处理这10条记录。
若磁头处于首条记录的起点位置,则:
(1)按逆时针方向依次存放这10条记录(磁盘顺时针方向旋转),处理程序读取这10条记录需要多长时间?
(2)按最优化分布重新安排这10条记录,写出记录的逆时针存放顺序,并计算处理这10条记录需要的时间。
分析:
①数据处理时间=磁盘访问+数据处理;
②磁盘访问时间=磁头寻道+旋转延迟+数据传输。
(1)数据传输需要20/10=2ms,数据处理需要4ms,因此处理记录需要6ms。
到下一条记录的旋转延迟需要2ms*8=16ms
故以此顺序处理这10条记录需要:
6+9*(16+6)=204ms
(2)通过优化数据分布,重新安排这10条记录的顺序为如图所示:
计算处理这10条记录需要的时间:
10*6ms=60ms
某磁盘共有100个柱面,每个柱面有8个磁头,每个盘面分4个扇区。
若逻辑记录与扇区等长,柱面、磁道、扇区均从0起编号。
现用16位的200个字(0-199)来组成位示图来管理盘空间。
现问:
(1)位示图第15个字的第7位为0而准备分配给某一记录,该块的柱面号、磁道号、扇区号是多少?
(2)现回收第56柱面第6磁道第3扇区,这时位示图的第几个字的第几位应清0?
答:
(1)位示图第15个字的第7位对应的块号=15×16(字长)+7=247,而块号247对应的:
柱面号=247/(8×4)=7(从0编号,向下取整)
磁头号=(247MOD32)/4=5
扇区号=247MOD32MOD4=3
(2)块号=柱面号×柱面扇区数+磁道号×盘扇区+盘扇区=56×(8×4)+6×4+3=1819
字号=1819/16=113
位号=1819MOD16=11
所以,回收第56柱面第6磁道第3扇区时,位示图的第113字的第11位应清0。
旋转型设备上信息的优化分布能减少为若干个I/O服务的总时间。
设磁鼓上分为20个区,每区存放一个记录,磁鼓旋转一周需20毫秒,读出每个记录平均需用1毫秒,读出后经2毫秒处理,再继续处理下一个记录。
在不知当前磁鼓位置的情况下:
(1)顺序存放记录1、……,记录20时,试计算读出并处理20个记录的总时间;
(2)给出优先分布20个记录的一种方案,使得所花的总处理时间减少,且计算出这个方案所花的总时间。
答:
定位第1个记录需10ms。
读出第1个记录,处理花2ms,这时已到了第4个记录,再转过18个记录(花18ms)才能找到记录2,所以,读出并处理20个记录的总时间:
10+3+(1+2+18)×19=13+21×19=412ms
如果给出优先分布20个记录的方案为:
1,8,15,2,9,16,3,10,17,4,11,18,5,12,19,6,13,20,7,14。
当读出第1个记录,花2ms处理后,恰好就可以处理记录2,省去了寻找下一个记录的时间,读出并处理20个记录的总时间:
10+3+3×19=13+57=70ms
现有如下请求队列:
8,18,27,129,110,186,78,147,41,10,64,12。
分别按升序和降序移动,电梯调度算法计算处理所有存取请求移动的总柱面数。
答:
升序移动次序为:
100-110-129-147-186-78-64-41-27-18-12-10-8。
移动的总柱面数:
264。
降序移动次序为:
100-78-64-41-27-18-12-10-8-110-129-147-186。
移动的总柱面数:
270。
现有如下请求队列:
8,18,27,129,110,186,78,147,41,10,64,12;试用查找时间最短优先算法计算处理所有请求移动的总柱面数。
假设磁头当前位置下在磁道100。
答:
处理次序为:
100-110-129-147-186-78-64-41-27-18-12-10-8。
移动的总柱面数:
264。
某文件为连接文件,由5个逻辑记录组成,每个逻辑记录的大小与磁盘块大小相等,均为512字节,并依次存放在50、121、75、80、63号磁盘块上。
现要读出文件的1569字节,问访问哪一个磁盘块?
答:
80号磁盘块
有一具有40个磁道的盘面,编号为0~39,当磁头位于第11磁道时,顺序来到如下磁道请求:
磁道号:
1、36、16、34、9、12;试用1)先来先服务算法FCFS、2)最短查找时间优先算法SSTF、3)扫描算法SCAN等三种磁盘驱动调度算法,计算出它们各自要来回穿越多少磁道?
答:
1)FCFS为111。
2)SSTF为61。
3)SCAN为60(先扫地址大的请求),为45(先扫地址小的请求)。
假定磁盘有200个柱面,编号0~199,当前存取臂的位置在143号柱面上,并刚刚完成了125号柱面的服务请求,如果请求队列的先后顺序是:
86,147,91,177,94,150,102,175,130;试问:
为完成上述请求,下列算法存取臂移动的总量是多少?
并算出存取臂移动的顺序。
(1)先来先服务算法FCFS;
(2)最短查找时间优先算法SSTF;(3)扫描算法SCAN。
(4)电梯调度。
答:
(1)先来先服务算法FCFS为565,依次为
143-86-147-91-177-94-150-102-175-130。
(2)最短查找时间优先算法SSTF为162,143-147-150-130-102-94-91-86-175-177。
(3)扫描算法SCAN为169,依次为143-147-150-175-177-199-130-102-94-91-86。
(4)电梯调度为125(先向地址大的方向),为143-147-150-175-177-102-94-91-86
为148(先向地址小的方向)依次为143-130-102-94-91-86-147-150-175-177。
某磁盘共有200个柱面,每个柱面有20个磁道,每个磁道有8个扇区,每个扇区为1024B.如果驱动程序接到访求是读出606块,计算该信息块的物理位置。
答:
l)每个柱面的物理块数为20×8=160块。
2)606/160。
得到商为3,余数为126。
故可知访求的物理位置在:
第3个柱面(0柱面开始编号)的126物理块中。
若磁头的当前位置为100柱面,磁头正向磁道号增加方向移动。
现有一磁盘读写请求队列,柱面号依次为:
23,376,205,132,19,61,190,398,29,4,18,40。
若采用先来先服务、最短寻道时间优先和扫描算法,试计算出各种算法的移臂经过的柱面数?
答:
采用先来先服务处理次序为:
100-23-376-205-132-19-61-190-398-29-4-18-40,
总柱面数为:
1596。
采用SSTF处理次序为:
100-132-190-205-61-40-29-23-19-18-4-376-398,
总柱面数为:
700。
采用SCAN处理次序为:
100-132-190-205-376-398-61-40-29-23-19-18-4,
总柱面数为:
692。
磁盘请求以10、22、20、2、40、6、38柱面的次序到达磁盘驱动器,如果磁头当前位于柱面20。
若查找移过每个柱面要花6ms,用以下算法计算出查找时间:
1)FCFS,2)最短查找优先,3)电梯调度(正向柱面大的方向)。
答:
1)FCFS查找时间次序为:
20、10、22、20、2、40、6、38、、查找时间为876ms。
2)最短查找优先查找次序为:
20、20、22、10、6、2、38、40,查找时间为360ms。
3)电梯调度查找次序为:
20、20、22、38、40、10、6、2,查找时间为:
348ms.
今假定在某移动臂磁盘上,刚刚处理了访问一信息,并且有下述请求序列等待访问磁盘75号柱面的请求,目前正在80号柱面读信息,并且有下请求序列等待访问磁盘:
请求次序
1
2
3
4
5
6
7
8
欲访问的柱面号
160
40
190
188
90
58
32
102
试用:
(l)电梯调度算法
(2)最短寻找时间优先算法
分别列出实际处理上述请求的次序。
答:
(l)电梯调度算法查找次序为:
80、90、102、160、188、190、58、40、32,总柱面数为:
268.
(2)最短查找优先查找次序为:
80、90、102、58、40、32、160、188、190,总柱面数为:
250。
磁盘组共有n个柱面,编号顺序为O、1、2、…、n-1;共有m个磁头,编号顺序为0、1、2、…、m-1。
每个磁道内的k个信息块从1开始编号,依次为1、2、…、k。
现用x表示逻辑磁盘块号,用a,b,c分别表示任一逻辑磁盘块的柱面号、磁头号、磁道内块号,则x与a,b,c可通过如下公式进行转换:
x=k*m*a+k*b+c
a=(x-l)DIV(K*M)
b=((x-l)MOD(K*m))DIVk
c=((x-l)MOD(K*m))MODk+l
若某磁盘组为n=200,m=20,k=10,问:
(1)柱面号为185,磁头号为12,道内块号为5的磁盘块的逻辑磁盘块号为多少?
(2)逻辑磁盘块号为1200,它所对应的柱面号、磁头号及磁道内块号为多少?
(3)若每一磁道内的信息块从。
开始编号,依次为0、1、…、k-1,其余均同题设,试写出x与a、b、c之间的转换公式。
答:
(1)由上述公式可知,逻辑磁盘块号x为:
x=k*m*a+k*b+c=10*20*185+10*12+5=37125
所以,柱面号为185,磁头号为12,道内块号为5的磁盘块的逻辑磁盘块号为:
37125。
(2)由上述公式可知,
a=(X-1)DIV(k*m)=(1200-l)DIV(10*20)=1199DIV200=5
b=((x-1)MOD(k*m))DIVK=((1200-1)MOD(10*20))DIV10
=(1199MOD200)DIV10=199DIV10=10
c=((x-l)MOD(k*m))MODk+l=((1200-1)MOD(10X20))MOD10+1
=(1199MOD200)MOD10+1=199MOD10+l=9+l=10
所以,逻辑磁盘块号为1200,它所对应的柱面号是5、磁头号是19及磁道内块号为10
(3)转换公式为:
x=k*m*a+k*b+c+1
a=(x-1)DIV(k*m)
b=((x-1)MOD(k*m))DIVK
c=((x-1)MOD(k*m)MODk
有一移动臂磁盘,共100个磁道,每个磁道分8个扇区,磁盘转速为500r/s(转/秒),磁头每移动一个磁道需要10ms,有一个用户请求访问第25磁道第3扇区,并立即被系统响应,假设磁头当时处于15道上,磁头到达第25道时正处于1扇区的开始位置,试计算该用户至少需要等待多长时间?
(25-15)×10=100ms,旋转一周时间:
1/500r/s=2ms,磁头经过每个扇区用时:
2/83×(2/8)=0.75ms,t=100.75ms
旋转型磁盘上的信息优化分布能减少若干I/O服务的总时间。
假如有13个记录存放在磁盘的某一磁道上,每个磁道划分成13块,每块存放一个记录,如图下所示。
块号
1
2
3
4
5
6
7
8
9
10
11
12
13
记录
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
如果磁盘旋转速度为30ms(毫秒)转1周,处理程序每读一个记录后花5ms进行处理。
请问
(1)处理完13个记录的总时间是多少?
(2)为缩短处理时间应如何排列这些记录?
计算重新排列记录后的总的处理时间。
(1)处理完13个记录的总时间≈395ms
(2)重新排列记录如下:
块号
1
2
3
4
5
6
7
8
9
10
11
12
13
记录
R1
R11
R8
R5
R2
R12
R9
R6
R3
R13
R10
R7
R4
重新排列记录后的总的处理时间≈118.1ms
假定磁盘转速为6000r/min(转/分),磁盘格式化时每个盘面被分为9个扇区,现有一个文件共有A,B,C,D,E,F,G,H,I九个逻辑记录要存放在同一磁道上供处理程序使用,假设每个记录的大小与扇区的大小相同,处理程序每次从磁盘读出一个记录后要花2.5ms处理时间。
若忽略其他辅助时间,请回答下列问题:
(1)现在假设已经顺序存放好这9个记录,记录逆时针排列,磁盘顺时针旋转。
那么读出该文件需要多少时间?
(2)为了使读出文件需要的时间最短,请重新调整各个记录的存放位置,画出各个记录的存放位置,计算该文件的读出时间。
(1)磁盘转速为6000r/min,即100r/s,则磁盘旋转一周用时:
1/100=10(ms);磁头经过每个扇区用时:
10/9(ms),而读出第一条记录后还需2.5ms的时间进行处理后,此时读/写磁头已经在记录D位置,为了顺序处理B记录,必须等待磁盘把B记录旋转到读/写磁头位置下,即要有(10-2.5)ms=7.5ms的延迟时间。
所以处理这9条记录所要花费的时间为:
9×(10/9+2.5)+8×7.5=92.5ms
(2)将9条逻辑记录在磁道上的位置重新安排,如下图所示:
左图所示为这9条逻辑记录的最优分布。
当读出一条记录后,读/写磁头只需经过5/6ms的时间便可读出下一条记录,无需花
(1)中那么多的延迟时间。
根据上图的安排,处理这9条记录所花的时间为:
9×(10/9+2.5)+8×5/6=39.2ms。
与
(1)中所需的处理时间相比,显然经过优化分布后读/写记录所需的时间要来得少,大大缩短了输入/输出操作时间,提高了系统的效率。
假定磁盘转速为20ms/r,每个磁道被划分为10个扇区。
现有10条记录存放在同一磁道上(一条记录正好与一个扇区的大小相等),处理程序从磁盘读出一条记录需要4ms,现要求按从1到10的顺序处理这10条记录。
若磁头处于首条记录的起点位置,则:
(1)按逆时针方向依次存放这10条记录(磁盘顺时针方向旋转),处理程序读取这10条记录需要多长时间?
(2)按最优化分布重新安排这10条记录,写出记录的逆时针存放顺序,并计算处理这10条记录需要的时间。
分析:
①数据处理时间=磁盘访问+数据处理
②磁盘访问时间=磁头寻道+旋转延迟+数据传输
(1)数据传输需要20/10=2ms,数据传送需要4ms,因此处理记录需要6ms。
到下一条记录的旋转延迟需要2ms*8=16ms
故以此顺序处理这10条记录需要:
6+9*(16+6)=204ms
(2)通过优化数据分布,减少旋转延迟时间10*6ms=60ms
注意:
当未指明磁头位于首条记录起始位置时,首条记录的旋转延迟按照平均旋转延迟来计算!
因此,原题的两个问题:
(1)(10+6)+9*(16+6)=214ms
(2)10+10*6ms=70ms
快表是一个高速、具有并行查询能力的联想存储器,用于存放正运行的进程的当前页号和块号,或者段号和段起始地址。
加入快表后,在地址转换时,首先在快表中查找,若找到就直接进行地址转换;未找到,则在主存页表继续查找,并把查到的页号和块号放入联想存储器中。
快表的命中率很高,有效地提高了地址转换的速度。
假设有8个记录A、B,C、D、E、F、G、H存放在磁盘里,每个磁道有8个扇区,正好可以存放8个记录。
假设磁盘旋转速度为20ms/转,处理程序每读出一个记录后,用2ms的时间进行处理,请问:
a.当记录A、B、C、D、E、F、G、H按顺序放在磁道上时,顺序处理这5个记录花费的总时间是多少?
假设启动时的位置正好在A扇区的起点。
b.如何采取优化方法,使处理这些记录所花费的总时间最短?
求出该最短时间。
a.磁盘旋转速度是20ms/转,共分成8个扇区,因此,每个扇区所花费的读写时间为20ms/8=2.5ms。
若按顺序编号,每读出一个扇区后用2ms的时间进行处理,此时,磁盘仍在转动,处理完A扇区后,磁头己经过了大部分的B扇区,即将到达C扇区,因此,要等磁盘再转一圈后才可读扇区B,见下左图,依此类推,顺序处理8个扇区的时间花费是(其中H是最后一个,因此,处理有别于其他扇区):
A~G扇区读取时间:
2.5ms
A~G扇区处理时间:
2ms
等待下一个扇区到达时间:
20ms–2ms=18ms
H扇区读取时间:
2.5ms
H扇区处理时间:
2ms
总消耗时间为:
(2.5ms+2ms+18ms)*7+2.5ms+2ms=162ms
b)采用的优化方法是扇区交替编号,使得A扇区在处理完以后可以在最短时间内定位B扇区,排列方式如上右图。
花费时间是:
A~D扇区读取时间:
2.5ms
A~D扇区处理时间:
2ms
A~C等待下一个扇区到达时间:
2.5ms–2ms=0.5ms
D等待E扇区到达时间:
0.5ms+2.5ms=3ms
E~H扇区读取时间:
2.5ms
E~H扇区处理时间:
2ms
E~G等待下一个扇区到达时间:
2.5ms–2ms=0.5ms
总消耗时间为:
(2.5ms+2ms)*4+0.5ms*3+3ms+(2.5ms+2ms)*4+0.5ms*3=42ms
如有侵权请联系告知删除,感谢你们的配合!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 磁盘 复习