二、综合应用题

2026 旧版 · 非 2027 主源 · 原书检索 · 文字用于定位,公式与图表请回原页核验 · 本次导入快照

## 二、综合应用题

01. 假定有一个磁盘组共有 100 个柱面,每个柱面有 8 个磁道,每个磁道划分成 8 个扇区。现有一个 5000 条逻辑记录的文件,逻辑记录的大小与扇区大小相等,该文件以顺序结构存放在磁盘组上,柱面、磁道、扇区均从 0 开始编址,逻辑记录的编号从 0 开始,文件信息从 0 柱面、0 磁道、0 扇区开始存放。试问,该文件编号为 3468 的逻辑记录应存放在哪个柱面的第几个磁道的第几个扇区上?

02. 假设磁盘的每个磁道分成 9 个块,现在一个文件有 A, B, …, I 共 9 条记录,每条记录的大小与块的大小相等,设磁盘转速为 27 毫秒/转,每读出一块后需要 2ms 的处理时间。若忽略其他辅助时间,且一开始磁头在即将要读 A 记录的位置,试问:

1)若将这些记录顺序存放在一个磁道上,则顺序读取该文件要多少时间?
2)若要求顺序读取的时间最短,则应该如何安排文件的存放位置?

03. 在一个磁盘上,有 1000 个柱面,编号为 0~999,用下面的算法计算为满足磁盘队列中的所有请求,磁头臂必须移过的磁道的数目。假设最后服务的请求是在磁道 345 上,并且读/写头正在朝磁道 0 移动。在按 FCFS 顺序排列的队列中包含了如下磁道上的请求:123, 874, 692, 475, 105, 376。

1)FCFS;2)SSTF;3)SCAN;4)LOOK;5)C-SCAN;6)C-LOOK。

04. 某软盘有 40 个磁道,磁头从一个磁道移至相邻磁道需要 6ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均距离为 13 磁道,每块的旋转延迟时间及传输时间分别为 100ms 和 25ms,问读取一个 100 块的文件需要多少时间?若系统对磁盘进行了整理,让同一文件的磁盘块尽可能靠拢,从而使逻辑上相邻数据块的平均距离降为 2 磁道,这时读取一个 100 块的文件需要多少时间?

05. 有一个交叉存放信息的磁盘,信息在其上的存放方法如下图所示。每个磁道有 8 个扇区,每个扇区大小为 512B,旋转速度为 3000 转/分,顺时针读扇区。假定磁头已在读取信息的磁道上,0 扇区转到磁头下需要 1/2 转,且设备对应的控制器不能同时进行输入/输出,在数据从控制器传送至内存的这段时间内,从磁头下通过的扇区数为 2,请回答:


1)依次读取一个磁道上的所有扇区需要多少时间?
2)该磁盘的数据传输速率是多少?

06.【2010 统考真题】如下图所示,假设计算机系统采用 C-SCAN(循环扫描)磁盘调度策略,使用 2KB 的内存空间记录 16384 个磁盘块的空闲状态。


<!-- page: 363 -->


1)请说明在上述条件下如何进行磁盘块空闲状态的管理。
2)设菜单面磁盘的旋转速度为6000转/分,每个磁道有100个扇区,相邻磁道间的平均移动时间为 1ms。若在菜时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动(见上图),磁道号请求队列为50,90,30,120,对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这4个扇区点共需要多少时间?要求给出计算过程。
3)若将磁盘替换为随机访问的Flash半导体存储器(如U盘、固态硬盘等),是否有比C-SCAN更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。

07.【2019 统考真题】某计算机系统中的磁盘有 300 个柱面,每个柱面有 10 个磁道,每个磁道有 200 个扇区,扇区大小为 512B。文件系统的每簇包含 2 个扇区。请回答下列问题:

1)磁盘的容量是多少?
2)设磁头在85号柱面上,此时有4个磁盘访问请求,簇号分别为100260, 60005, 101660和110560。采用最短寻道时间优先SSTF调度算法,系统访问簇的先后次序是什么?
3)簇号100530在磁盘上的物理地址是什么?将簇号转换成磁盘物理地址的过程由I/O系统的什么程序完成?

08.【2021 统考真题】某计算机用硬盘作为启动盘,硬盘的第一个扇区存放主引导记录,其中包含磁盘引导程序和分区表。磁盘引导程序用于选择引导哪个分区的操作系统,分区表记录硬盘上各分区的位置等描述信息。硬盘被划分成若干分区,每个分区的第一个扇区存放分区引导程序,用于引导该分区中的操作系统。系统采用多阶段引导方式,除了执行磁盘引导程序和分区引导程序,还需要执行ROM中的引导程序。回答下列问题:

1)系统启动过程中操作系统的初始化程序、分区引导程序、ROM中的引导程序、磁盘引导程序的执行顺序是什么?
2)将硬盘制作为启动盘时,需要完成操作系统的安装、磁盘的物理格式化、逻辑格式化、对磁盘进行分区,执行这4个操作的正确顺序是什么?
3)磁盘扇区的划分和文件系统根目录的建立分别是在第2)问的哪个操作中完成的?

## 5.3.7 答案与解析

### 一、单项选择题

#### 01. B

文件系统不一定依赖于磁盘,也可存在于其他存储介质上,如光盘、闪存、网络等。文件系统可以只占用磁盘的一部分空间,而不是整个磁盘:一个磁盘上可以有多个文件系统,也可以没有文件系统的空间。文件系统和磁盘之间的联系密切,文件系统需要用磁盘来存储数据,而磁盘需要用文件系统来组织数据。因此,选项B正确,选项A、C和D错误。


<!-- page: 364 -->

02. D

磁盘是可共享设备(分时共享),是指某段时间内可以有多个用户进行访问。但某一时刻只能有一个作业可以访问。

03. B

顺序访问按从前到后的顺序对数据进行读/写操作,如磁带。直接访问或随机访问,则可以按任意的次序对数据进行读/写操作,如光盘、磁盘、U盘等。

04. A

磁盘调度是对访问磁道次序的调度,若没有合适的磁盘调度,则寻道时间会大大增加。

05. D

SCAN、FCFS、C-LOOK算法都可以是磁盘调度算法,CLOCK算法是页面置换算法。

06. A

文件以块为单位存放于磁盘中,文件的读/写也以块为单位。

07. D

对磁盘读/写时间影响最大的是寻道时间,寻道过程为机械运动,时间较长,影响较大。

08. D

操作系统的引导程序位于磁盘活动分区的引导扇区,因此必然产生在分区之后。分区是将磁盘分为由一个或多个柱面组成的分区(C盘、D盘等形式),每个分区的起始扇区和大小都记录在磁盘主引导记录的分区表中。而对于高级格式化(创建文件系统),操作系统将初始的文件系统数据结构存储到磁盘上,文件系统在磁盘上布局介绍详见第4章。

09. A

低级格式化是磁盘制造商在生产磁盘时进行的操作,它负责创建磁盘的物理结构,包括磁道、扇区的划分,并将一些控制信息(如扇区号、磁道号等)写入每个扇区的头部和尾部。这些信息在低级格式化阶段被写入磁盘,因此磁盘控制器能够理解如何访问各个扇区。

10. D

磁盘调度算法是为了减少寻道时间。扇区数据的处理时间主要影响传输时间。选项B、C均与旋转延迟有关,文件的物理结构与磁盘空间的分配方式相对应,包括连续分配、链接分配和索引分配。连续分配的磁盘中,文件的物理地址连续;而链接分配方式的磁盘中,文件的物理地址不连续,因此与旋转延迟都有关。

11. A

磁盘存取时间由寻道时间、旋转延迟时间、传输时间决定,寻道时间占的比例最大,磁盘的调度算法主要是优化寻道时间,而旋转延迟时间和传输时间难以从操作系统层面优化。

12. C

选项A和D可是进程调度算法。选项B可是页面淘汰算法。只有选项C是磁盘调度算法。

13. B

最短寻道时间优先算法中,当新的距离磁头比较近的磁盘访问请求不断被满足时,可能导致较远的磁盘访问请求被无限延迟,从而导致“饥饿”现象。

14. B

先来先服务算法根据磁盘请求的时间先后进行调度,因此可能随时改变磁头方向。而电梯调度、循环扫描算法均限制磁头的移动方向。

15. B

文件A采用连续存放方式,按照磁盘的地址结构(柱面号,磁头号,扇区号),文件A的下


<!-- page: 365 -->

一块应存放在同一个柱面的同一个磁道的下一个扇区中,7号扇区已基本磁道的最后一个扇区,因此应存放在同一个柱面的下一个磁头的0号扇面,即5号柱面、2号磁头下的0号扇区。由此可见,文件A的数据是连续存储在磁盘的一组或相邻几组同心圆中的。

16. B

每个柱面上有8个磁道(表示有8个磁头),每个磁道有8个扇区,因此每个柱面有 $8 \times 8 = 64$ 个扇区。由题意可知,柱面号、盘面号、扇区号和逻辑记录编号都是从0开始的,因此78号柱面的6号磁道的6号扇区存放的是文件的第 $78 \times 64 + 6 \times 8 + 6 = 5046$ 个逻辑记录。

17. A

将每道的所有扇区组成一个簇,意味着可以将一个磁道的所有存储空间组织成一块数据组,这样有利于提高存储速度。读/写磁盘时,磁头首先找到磁道,称为寻道,然后才可以将信息从磁道里读出或写入。读/写完一个磁道后,磁头会继续寻找下一个磁道,完成剩余的工作,所以在随机寻道的情况下,读/写一个磁道的时间要包括寻道时间和读/写磁道时间,即 $T + r$ 秒。因为总的数据量是 $b$ 字节,它要占用的磁道数为 $b/N$ 个,所以总平均读/写时间为 $(r + T)b/N$ 秒。

18. C

访问每条磁道的时间为 $60 / 3000\mathrm{s} = 0.02\mathrm{s} = 20\mathrm{ms}$,即磁盘旋转一圈的时间为 $20\mathrm{ms}$,每个盘面10个扇区,因此读取一个扇区的时间为 $20\mathrm{ms} / 10 = 2\mathrm{ms}$。

19. C

磁盘的转速为7200转/分 $= 120$ 转/秒,转一圈经过160个扇区,每个扇区为512B,所以数据传输率 $= 120\times 160\times 512 / 1024\mathrm{KB / s} = 9600\mathrm{KB / s}$

20. D

对于SSTF算法,寻道序列应为100,90,58,55,39,38,18,150,160,184;移动磁道次数分别为10,32,3,16,1,20,132,10,24,所以磁头移动总次数为248。另外也可以画出草图来解答,从100寻道到18需要82次,然后加上从18到184需要的 $184 - 18 = 166$ 次,共移动 $166 + 82 = 248$ 次。

21. C

当采用循环扫描算法时,磁头当前位于67号磁道,磁头正在向磁道号增大的方向移动,因此下一次处理的是77号磁道,选项A错误。当采用最短寻道时间优先算法时,77号磁道距离当前67号磁道最近,因此下一次处理的是77号磁道,选项B错误。当采用电梯调度算法时,磁头当前位于67号磁道,磁头正在向磁道号减少的方向移动,因此下一次处理的是55号磁道,选项C正确。当采用先来先服务算法时,根据请求的先后顺序进行调度,下一次处理的是35号磁道,选项D错误。

22. C

采用SCAN算法时,依次访问的磁道是788,845,911,999,700,432,396,165,164,25,磁头移动的距离是 $(999 - 734) + (999 - 25) = 1239$。采用SSTF算法时,依次访问的磁道是700,788,845,911,432,396,165,164,25,磁头移动的距离是 $(734 - 700) + (911 - 700) + (911 - 25) = 1131$。

23. C

一个逻辑记录所占的磁带长度为 $80 / 400 = 0.2$ 英寸,因此存储3000条逻辑记录需要的磁带长度为 $(0.2 + 0.4)\times 3000 = 1800$ 英寸,利用率为 $0.2 / (0.2 + 0.4) = 33.3\%$。

24. D

固态硬盘基于闪存技术,没有机械部件,随机读/写不需要机械操作,因此速度明显高于磁盘,选项A和B正确。选项C已在考点讲解中解释过。SSD的缺点是容易磨损,选项D错误。

25. C


<!-- page: 366 -->

SSD的写速度慢于读速度,但不至于比常规机械硬盘差,选项A错误。SSD基于闪存技术,没有机械部件,随机存取速度很快,传统机械硬盘因为需要寻道和找扇区的时间,所以随机存取速度慢;传统机械硬盘转速很快,连续存取比随机存取快得多,因此SSD的优势主要体现在随机存取的速度上,选项B错误。静态磨损算法在没有写入数据时,SSD监测并自动进行数据分配,因此通常表现更优秀,选项C正确。因为闪存的擦除速度较慢,若每次都选择写入存放有数据的块,会极大地降低写入速度,选项D混淆了静态磨损均衡,静态磨损均衡是指在没有写入数据时,SSD监测并自动进行数据分配,从而使得各块的擦写更加均衡,并不是说写入时每次都选择存放老数据的块。

26. D

磨损均衡机制的目的是延长固态硬盘的寿命,而不是加快固态硬盘读/写速度。

27. A

SCAN算法的原理类似于电梯。首先,当磁头从105道向序号增加的方向移动时,便会按照从小到大的顺序服务所有大于105的磁道号(110, 170, 180, 195);往回移动时又会按照从大到小的顺序进行服务(68, 45, 35, 12),结果如下图所示。


28. B

对于选项A,重排I/O请求次序也就是进行I/O调度,使进程之间公平地共享磁盘访问,减少I/O完成所需要的平均等待时间。对于选项C,缓冲区结合预读和滞后写技术对于具有重复性及阵发性的I/O进程改善磁盘I/O性能很有帮助。对于选项D,优化文件物理块的分布可以减少寻道时间与延迟时间,从而提高磁盘性能。在一个磁盘上设置多个分区与改善设备I/O性能并无多大联系,相反还会带来处理的复杂性,降低利用率。

29. C

SCAN算法就是电梯调度算法。顾名思义,若开始时磁头向外移动,就一直要到最外侧,然后返回向内侧移动,就像电梯若往下,则一直要下到底层才会再上升一样。当前磁头位于58号并从外侧向内侧移动,先依次访问130、180和199,然后返回向外侧移动,依次访问42和15,因此磁头移过的磁道数是 $(199 - 58) + (199 - 15) = 325$。

30. B

新磁盘是空白盘,必须分成扇区以便磁盘控制器能进行读/写操作,这个过程称为低级格式化(或物理格式化)。低级格式化为每个扇区使用特别的数据结构,选项III错误。为了使用磁盘存储文件,操作系统还需要将自己的数据结构记录在磁盘上。这分为两步。第一步是将磁盘分为由一个或多个柱面组成的分区,每个分区可以作为一个独立的磁盘,选项I错误。在分区之后,第二步是逻辑格式化(创建文件系统)。在这一步,操作系统将初始的文件系统数据结构存储到磁盘上。这些数据结构包括空闲和已分配的空间及一个初始为空的目录,选项II、IV正确。

31. D

选项 II 和 IV 显然均能提高文件访问速度。对于选项 I,提前读是指在读当前盘块时,将下一个盘块提前读入缓冲区,以便需要时直接从缓冲区中读取,提高了文件的访问速度。对于选项 III,延迟写是指先将数据写入缓冲区,并置上“延迟写”标志,以备不久之后访问,当缓冲区需要再次被分配出去时,才将缓冲区数据写入磁盘,减少了访问磁盘的次数,提高了文件的访问速度。


<!-- page: 367 -->

32. A

当系统中总是持续存在某个磁道的访问请求时,均持续满足最短寻道时间优先、扫描算法和循环扫描算法的访问条件,会一直服务该访问请求,尽管系统中还存在其他磁道的访问请求,但却得不到响应。而先来先服务按照请求次序进行调度,比较公平。

33. C

最短寻道时间优先算法总是选择调度与当前磁头所在磁道距离最近的磁道。可以得出访问序列 184, 182, 187, 176, 199,从而求出移动距离之和是 $0 + 2 + 5 + 11 + 23 = 41$。

34. C

采用C-SCAN算法进行磁盘调度,完成200号磁道的请求后,磁头向磁道号减小的方向移动,依次处理160, 120, 110, 0号磁道的请求;然后,磁头向磁道号增大的方向快速移动至399号磁道,在快速移动的过程中不处理任何请求;完成399号磁道的请求后,依次处理300, 210号磁道的请求,所以磁头移动的总距离是 $(200 - 0) + (399 - 0) + (399 - 210) = 788$。调度过程如下图所示。


二、综合应用题

01. 【解答】

该磁盘有8个盘面,一个柱面大小为 $8 \times 8 = 64$ 个扇区,即64条逻辑记录。所有磁头是固定在一起的,因此在存放数据时,先存满扇区,后存满磁道,再存满柱面。

编号为3468的逻辑记录对应的柱面号为 $3468 / 64 = 54$;对应的磁道号为(3468 MOD 64) DIV $8 = 1$;对应的扇区号为(3468 MOD 64) MOD $8 = 4$。

02. 【解答】

磁盘转速为27毫秒/转,每个磁道存放9条记录,因此读出1条记录的时间为 $27 / 9 = 3\mathrm{ms}$。

1)读出并处理记录A需要 $5\mathrm{ms}$,此时磁头已转到记录B的中间,因此为了读出记录B,必须再转接近一圈(从记录B的中间到记录B)。后续8条记录的读取及处理与此类似,但最后一条记录的读取与处理只需 $5\mathrm{ms}$。于是,处理9条记录的总时间为

$$
8 \times (27 + 3) + (3 + 2) = 245\mathrm{ms}
$$

【另解】注意,从开始读A到最后读完I一共转了9圈,即处理完前8条记录 + 读第9条记录的时间一共是 $27 \times 9 = 243\mathrm{ms}$,加上最后的 $2\mathrm{ms}$ 处理时间,共 $243 + 2 = 245\mathrm{ms}$。

2)由于每读出一条记录后需要 $2\mathrm{ms}$ 的处理时间,当读出并处理记录 A 时,不妨设记录 A 放在第 1 个盘块中,读/写头已移到第 2 个盘块的中间,为了能顺序读到记录 B,应将它放到第 3 个盘块中,即应将记录按下表顺序存放:

[tbl-151.md](tbl-151.md)

这样,处理一条记录并将磁头移到下一条记录的时间是

$$
3 (\text{读出}) + 2 (\text{处理}) + 1 (\text{等待}) = 6\mathrm{ms}
$$

所以,处理9条记录的总时间为

$$
6 \times 8 + (3 + 2) = 53\mathrm{ms}
$$


<!-- page: 368 -->

# 03. 【解答】

1)FCFS:移动磁道的顺序为 345, 123, 874, 692, 475, 105, 376。磁头臂必须移过的磁道的数目为 $222 + 751 + 182 + 217 + 370 + 271 = 2013$。

2)SSTF:移动磁道的顺序为 345, 376, 475, 692, 874, 123, 105。磁头臂必须移过的磁道的数目为 $31 + 99 + 217 + 182 + 751 + 18 = 1298$。

注意,磁头臂必须移过的磁道的数目之和的计算没有必要像上面一样对 31, 99, 217, 182, 751, 18 求和,仔细的读者会发现:从 345 到 874 是一路递增的,接着从 874 到 105 是一路递减的。所以仅需计算 $(874 - 345) + (874 - 105) = 1298$。这种方法是不是要比上面得出 6 个数后再计算它们的和要快捷一些?若之前未注意到此法,相信聪明的读者会马上回顾刚做完的 1),并会仔细观察以下几问的“规律”,进而总结出自己的思路。

3)SCAN:移动磁道的顺序为 345, 123, 105, 0, 376, 475, 692, 874。磁头臂必须移过的磁道的数目为 $222 + 18 + 105 + 376 + 99 + 217 + 182 = 1219$。

4)LOOK:移动磁道的顺序为 345, 123, 105, 376, 475, 692, 874。磁头臂必须移过的磁道的数目为 $222 + 18 + 271 + 99 + 217 + 182 = 1009$。

5)C-SCAN:移动磁道的顺序为 345, 123, 105, 0, 999, 874, 692, 475, 376。磁头臂必须移过的磁道的数目为 $222 + 18 + 105 + 999 + 125 + 182 + 217 + 99 = 1967$。

6)C-LOOK:移动磁道的顺序为 345, 123, 105, 874, 692, 475, 376。磁头臂必须移过的磁道的数目为 $222 + 18 + 769 + 182 + 217 + 99 = 1507$。

# 04. 【解答】

磁盘整理前,逻辑上相邻数据块的平均距离为 13 磁道,读一块数据需要的时间为

$$
13 \times 6 + 100 + 25 = 203 \mathrm{ms}
$$

因此,读取一个 100 块的文件需要的时间为

$$
203 \times 100 = 20300 \mathrm{ms}
$$

磁盘整理后,逻辑上相邻数据块的平均距离为 2 磁道,读一块数据需要的时间为

$$
2 \times 6 + 100 + 25 = 137 \mathrm{ms}
$$

因此,读取一个 100 块的文件需要的时间为

$$
137 \times 100 = 13700 \mathrm{ms}
$$