操作系统-磁盘的驱动调度

0、磁盘的驱动调度有“移臂调度”和“旋转调度”两部分组成。 常用的移臂调度算法有: 先来先服务算法 最短寻找时间优先算法 电梯调度算法 单向扫描算法。

(要注意题目要求的是哪种算法,求总移动距离还是平均移动距离)

假设柱面的编号从0到199。例如,如果现在读写磁头正在53号柱面上执行输入输出操作,而等待访问者依次要访问的柱面为98,183,37,122,14,124,65,67。

(1).先来先服务调度算法

当53号柱面上的操作结束后,访问柱面的次序为98,183,37,122,14,124,65,67。

读写磁头总共移动了640个柱面的距离。(从53开始,每次移动距离之和,平均移动距离是640/8=80个柱面)

(2).最短寻找时间优先调度算法

现在当53号柱面的操作结束后,访问次序为65、67、37、14,98,122,124,183。 读写磁头总共移动了236个柱面的距离。(从53开始,每次找距离当前最近的进行移动)

(3) 电梯调度算法

由于该算法是与移动臂的方向有关,所以,应分两种情况来讨论。

(i)移动臂先向外移。当前正在53号柱面执行操作的读写磁头是移动臂由里向外(向0号柱面方向)带到53号柱面的位置,因此,当访问53号柱面的操作结束后,依次访问的次序为37、14,65,67,98,122,124,183。读写磁头共移动了208个柱面的距离。

(ii)移动臂先向里移。当前正在53号柱面执行操作的读写磁头是移动臂由外向里(向柱面号增大方向)带到53号柱面的位置,因此,当访问53号柱面的操作结束后,依次访问的次序为65、67,98,122,124,183、37,14柱面的访问者服务。读写磁头共移动了299个柱面的距离。

(总之象电梯一样,移动一个来回完成所有访问)

(4).单向扫描调度算法

方向是从外向里扫描,即从0柱面开始,访问的柱面次序为:65,67,98,122,124,183,14,37 读写磁头一共移动了12+2+31+24+2+59+14+23

1. 一个磁盘组有100个柱面,每柱面8个磁道,每磁道8个扇区,现有一个文件含5000个记录,每记录与扇区大小相等,在磁盘组上顺序存放(从0面0道0扇区开始),问(1)第3468个记录的物理位置 (2)第56个柱面上第7磁道第5扇区对应的块号。

(1) 3468/(8*8)=54余12,12/8=1余4, 物理位置是第54个柱面第1磁道第4块 (2) 56*(8*8)+7*8+5

2. 采用单向扫描(cscan, 也叫循环扫描),每块2KB,共有16384块,(1)说明如何进行磁盘块管理 (2)设某单面磁盘6000转/分钟,每磁道100扇区,相邻磁道移动时间需1ms,某时刻磁头位于100号磁道, 向内移动,磁道请求队列为50,90,30,120,从这4个磁道中都是随机读取1个扇区,问需多少时间。

移动柱面次序:100,120,30 ,50,90共170个柱面, 所以移动磁头时间为170*1=170ms; 6000转/分钟即是10ms/转,平均等待时间为转半圈时间,等4次,因此等待时间10/2*4=20ms; 读一个扇区即是旋转一个扇区,需10/100=0.1ms,共4次,因此读取时间是0.1*4=0.4ms; 所以总时间是三者之和190.4ms

3.设磁盘的每个磁道分成9个扇区,现有一文件共有A、B、C、D、E、F、G、H、I 9条记录,每个记录的大小与块的大小相等,设磁盘转速为27ms/转,每读出一块后需要2ms的处理时间。如忽略其他辅助时间,问:

(1) 如果顺序存放这些记录并顺序读取,处理该文件要用多少时间?

(2) 如果要顺序读取该文件,记录如何存放处理时间最短?需要多少时间?

答:磁盘转速为27ms/转,每个磁道存放9条记录,读取一条记录需要是将=27/9=3ms。 (1) 读出并处理A记录需要5ms,后续8条记录的读取并处理时间相同,等待时间为

27-2=25ms, 于是处理9条记录的总时间为8(27-2)+9(3+2)=245ms.

(2) 读取并处理一条记录的时间需5ms,当读出并处理A记录时,假设A记录放在第0

个块中,读写头移到第1个块的中间,为了能顺序读到B记录,应将它放在第2个块中,即应将记录按如下顺序存放.。

块号 0 1 2 3 4 5 6 7 8 记录 A F B G C H D I E 这样,处理一条记录并将此头移到下一条记录的时间为 3(读出)+2(处理)+1(等待)=6ms

最后一次只需要5ms, 则处理9条记录的总时间为:6*8+5=53ms.

4.一个磁盘组有10个盘面,每个盘面100个磁道,每个磁道16个扇区,用位示图管理空 闲块,问位示图占多大空间?

10*100*16/8=2000(字节)

5.假定某磁盘的旋转速度是每圈20毫秒,格式化时每个盘面被分成个10扇区,现有个10逻辑记录存放同一在磁盘上,安排如图1所示。处理程序要顺序处理这些记录,每读出一条记录后处理程序要花4毫秒的时间进行处理,然后再顺序读下一条记录并进行处理,知道处理完成这些记录,回答

(1) 顺序处理完这10条记录总共花费了多少时间?

(2) 请给一种记录优化分布的方案,使处理程序能在短时间内处理完这10条记录,并计算优化分布时需要花费的时间。

3 2 4 1 起点 5

10 6 图1 逻辑记录的存放次序7 9 8 答:(1)磁盘旋转一个扇区所需时间=20/10=2ms 读出并处理第一条记录所需时间=2+4=6ms 处理完第一条记录磁头旋转到存放第四条逻辑记录所在的扇区了,需等到旋转到存放第二条逻辑记录的扇区时,才能读第二条逻辑记录,读出并处理第二条记录所需时间=8*2+2+4=22。

读出并处理其他几条记录所需与读出并处理第二条记录类似,故顺序处理10条记录所需时间=6+22*9=204ms。

(2)一种记录优化分布的方案如图2所示。

这种记录优化分使处理程序在处理完前一条逻辑记录时磁头正好旋转到下一条逻辑记录所在的扇区,处理所需的时间最短,处理完这10条记录需要花费的时间=10*(2+4)=60ms。

5

8 2

1 起点 9

4 6

3 7 10

图2 逻辑记录优化环分布

1.假定某磁盘的旋转速度是每圈20毫秒,格式化时每个盘面被分成个8扇区,现有个8逻辑记录存放同一在磁盘上,安排如图3所示。处理程序要顺序处理这些记录,每读出一条记录后处理程序要花5毫秒的时间进行处理,然后再顺序读下一条记录并进行处理,知道处理完成这些记录,回答:

(1)顺序处理完这8条记录总共花费了多少时间?

(2)请给一种记录优化分布的方案,使处理程序能在短时间内处理完这8条记录,并计算优化分布时需要花费的时间。

2 3

2 4 1

起点

5 5 8

6 7

图3 顺序存放

读一个扇区的事件20/8=2.5ms 处理一条数据时间2,。5+5=7.5 6*2.5=15

答:8*(2.5+5)+7*15=165ms

2.假定磁带的记录密度为每英寸800个字符,每一记录长度为160个字符,块与块之间的间隙为0.6英寸,现有1000条逻辑记录需要存放在磁带上,分别回答下列问题:

(1)计算不采用成组操作时磁带空间利用率。

(2)计算采用以5条记录为一组的成组操作时磁带空间利用率。 (3)为了使磁带空间的利用率大于50%,采用成组记录时块因子最少为多少?

答:(1)160/800=0.2

磁盘空间利用率=0.2/(0.2+0.6)=25% (2)160*5/800=1

磁盘空间利用率=1/(1+0.6)=62.5%

(3)x*160/800=0.2x

0.2x/(0.6+0.2x)>=0.5 x>=3

7 4 1 6 起点

8 3 图4 优化分布

3、 有一计算机系统,采用如图所示(行号、列号都从0开始编号)来管理空闲盘块,如果盘块从0开始编号,每个盘块的大小为1kB, (1)现要为文件分配两个盘块,试具体说明分配过程。

(2)若要释放磁盘的第300块,应如何处理?

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5

答(1)为某文件分配两个盘块的过程如下:

顺序检索位示图,从中找到第一个值为0的二进制,得到其行号i1=2,列号j1=2;第二个值为0的二进制位,得到其行号i2=3,列号j2=6, 计算出找到的两个空闲块的盘块号分别为: b1=i1*16+j1=2*16+2=34 b2=i2*16+j2=3*16+6=54

修改位示图,将Map[2,2]=Map[3,6]=1,并将对应的块分配出去。 (2)释放磁盘的第300块时,应进行如下处理: 计算出磁盘第300块所对应二进制位的行号i和列号j: i=300/16=18 j=300Mod16=12

修改位示图,令Map[18,12]=0,表示对应块为空闲块

4、系统中磁头停留在磁道号为70的磁道上,这时先后有4个进程提出了磁盘访问请求,要访问磁盘的磁道号按申请到达的先后顺序依次为45,68,28,90.移动臂的运动方向:沿磁道号递减的方向移动。若分别采用FCFS磁盘调度算法、SSTF算法、SCAN算法时,磁头移动的顺序和所需寻道长度分别是多少? FCFS: 70---45---68---28---90

寻道长度=(70-45)+(68-45)+(68-28)+(90-28)=150 SSTF: 70---68---90---45---28

寻道长度=(70-68)+(90-68)+(90-45)+(45-28)=86 SCAN:70---68---45---28---90

寻道长度=(70-68)+(68-45)+(45-28)+(90-28)=104

1. 设某磁盘启动时间为3ms,磁头移动一条磁道所用时间为0.4ms,则磁头移动

100条磁道所化的寻道时间为( )。

A.83ms B.40ms C.430ms D.43ms

1. 按按信息流项,可把文件分为输入文件 、 输出文件 和 输入输出文件 。

5. 已完成对35号柱面的访问,当前磁盘读写头位于30号柱面上,此时等待访问磁盘柱面次序为:12、21、20、4、41、8、37。寻道时移动一个柱面所需时间为3ms,计算按下列两种寻道算法所需的寻道时间。

(1)先来先服务

(2)电梯调度

答:(1)采用先来先服务调度算法时实际访问的柱面次序为:12、21、20、4、41、8、37,磁头移动的柱面数为:18+9+1+16+37+33+29=143,所需的寻道时间为143×3=429ms。

(2)采用电梯调度算法时实际访问的柱面次序为: 21、20、12、8、4、37、41、,磁头移动的柱面数为:63,所需的寻道时间为63×3=189ms。 1. 文件共享方式有绕道法 、 链接法 和 基本文件目录表 。 1.解释记录的成组和分解。

为了提高存储空间的利用率和对外存的操作次数,把若干个逻辑记录合成一组存入一个物理块的工作称“记录的成组”,每块中的逻辑记录个数称“块因子”。

在把记录成组后,为了使用数据,从一组成组的记录中把一个逻辑记录分离出来的操作称“记录的分解”。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4