5.3 文件系统 (答案见原书)
第5章 操作系统 (续)
5.3 文件系统 (答案见原书 P259)
01. 文件系统和整个磁盘的关系是( B )。
题目原文
- 文件系统和整个磁盘的关系是( )。
A. 没有磁盘就没有文件系统
B. 文件系统的组织信息放在磁盘上,这些信息和代码合在一起形成文件系统
C. 文件系统就是整个磁盘
D. 没有关系
正确答案:B
题目解析
- 考点分析: 本题考察文件系统的定义及其与物理磁盘的关系。
- 正确选项分析 (B. 文件系统的组织信息放在磁盘上,这些信息和代码合在一起形成文件系统):
- 文件系统是操作系统中用于管理和组织文件的软件模块,以及它在存储设备上建立的数据结构。
- 它包含两部分:
- 软件部分: 操作系统内核中的文件管理代码。
- 磁盘上的数据结构: 用于描述文件组织(如目录结构、文件控制块FCB、空闲空间管理表等)的“元数据(Metadata)”。
- 这些元数据和用户的文件数据共同存放在磁盘上。选项B准确地描述了文件系统是管理代码和磁盘上的组织信息的结合。
- 错误选项分析:
- A: 文件系统也可以建立在其他存储介质上,如U盘、内存盘,不一定非得是磁盘。
- C: 磁盘是物理设备,文件系统是其上的逻辑组织结构,两者不等同。
- D: 关系非常密切。
02. 磁盘是可共享设备,但在每个时刻( D )作业启动它。
题目原文
02. 磁盘是可共享设备,但在每个时刻( )作业启动它。
A. 可以由任意多个
B. 能限定多个
C. 至少由一个
D. 至多由一个
正确答案:D
题目解析
- 考点分析: 本题考察共享设备的“分时共享”特性。
- 正确选项分析 (D. 至多由一个):
- “共享设备”的含义是多个进程可以交错地使用它,而不是同时使用。
- 在物理层面上,磁盘控制器在任何一个时刻只能处理一个I/O请求(启动一次读/写操作)。
- 因此,在每个时刻,启动磁盘的作业(进程)最多只有一个(
≤1
),即“至多由一个”。当没有作业请求时,启动数是0。
- 错误选项分析:
- A, B: 违背了物理设备的独占性。
- C: 不一定有作业启动它,可能处于空闲状态。
03. 既可以顺序读/写,又可以任意次序读/写的存储器有( B )。
I. 光盘 II. 磁带 III. U盘 IV. 磁盘
正确答案:B
题目解析
- 考点分析: 本题考察不同存储设备的存取特性。
- 逐项分析:
- I. 光盘 (CD/DVD): 是直接存取设备,可以随机定位,也可以顺序读取。可以任意次序读,但普通的CD-ROM/DVD-ROM是只读的,CD-R/DVD-R只能顺序写一次。CD-RW/DVD-RW可以多次读写。题目没有特指,但通常认为其写操作受限。
- II. 磁带: 是典型的顺序存取设备,读写都必须按顺序进行,不能任意次序读写。
- III. U盘 (Flash Memory): 是半导体存储器,支持随机读写。既可以顺序读写,也可以任意次序读写。
- IV. 磁盘 (HDD): 是典型的直接存取设备,支持随机读写。既可以顺序读写,也可以任意次序读写。
- 组合判断:
- 满足“既可以顺序…又可以任意次序”的设备是支持随机读写的设备。
- 磁带(II)被排除。
- 光盘(I)、U盘(III)、磁盘(IV)都满足这个条件(假设光盘是可重写的)。
- 结论: 选项B (I, III, IV) 是最合理的组合。
04. 磁盘调度的目的是缩短( A )时间。
题目原文
04. 磁盘调度的目的是缩短( )时间。
A. 寻道
B. 延迟
C. 传送
D. 启动
正确答案:A
题目解析
- 考点分析: 本题考察磁盘调度算法的核心优化目标。
- 正确选项分析 (A. 寻道):
- 在磁盘存取时间的三大组成部分(寻道时间、旋转延迟、传输时间)中,寻道时间通常是最长且最不稳定的,对总存取时间影响最大。
- 磁盘调度算法(如SSTF, SCAN, C-SCAN)的核心思想就是通过优化I/O请求队列的处理顺序,使得磁头的移动距离最短,从而最大限度地减少总的寻道时间。
- 错误选项分析:
- B. 延迟(旋转延迟): 主要由磁盘转速决定,调度算法无法改变。
- C. 传送: 主要由转速和记录密度决定,调度算法无法改变。
- D. 启动: 概念模糊,不是主要优化目标。
05. 下列各种算法中,( D )算法和其他算法存在根本的不同。
题目原文
05. 下列各种算法中,( )算法和其他算法存在根本的不同。
A. SCAN
B. FCFS
C. C-LOOK
D. CLOCK
正确答案:D
题目解析
- 考点分析: 本题要求从几个算法中找出用途不同的一类。
- 正确选项分析 (D. CLOCK):
- CLOCK算法(也称最近未使用算法 NRU 的一种近似实现)是内存管理中用于页面替换的算法。它通过一个循环指针和访问位来决定淘汰哪个页面。
- 错误选项分析:
- A. SCAN (电梯算法)
- B. FCFS (先来先服务)
- C. C-LOOK (单向扫描LOOK算法)
- 这三者都是磁盘调度中用于I/O请求排序的算法,目的是减少寻道时间。
- 结论: CLOCK是页面替换算法,其他是磁盘调度算法,用途根本不同。
06. 磁盘上的文件以( A )为单位读/写。
题目原文
06. 磁盘上的文件以( )为单位读/写。
A. 块
B. 记录
C. 柱面
D. 磁道
正确答案:A
题目解析
- 考点分析: 本题考察文件系统与磁盘I/O的交互单位。
- 正确选项分析 (A. 块, Block):
- 虽然磁盘的物理最小读写单位是扇区(Sector),但为了提高效率和简化管理,文件系统(操作系统) 将一个或多个连续的扇区组合成一个逻辑块(Block)。
- 文件系统对文件的所有分配、读写操作,都是以块为单位进行的。这是文件系统与磁盘交互的基本逻辑单位。
- 错误选项分析:
- B. 记录:是文件内数据的逻辑单位,其大小可变。
- C. 柱面, D. 磁道:是磁盘的物理组成部分,不是文件系统的操作单位。
07. 在磁盘读取数据的过程中,影响最大的是( D )。
题目原文
07. 在磁盘读取数据的过程中,影响最大的是( )。
A. 处理时间
B. 延迟时间
C. 传送时间
D. 寻道时间
正确答案:D
题目解析
- 考点分析: 本题与第4题考点相同,考察磁盘存取时间各部分的影响权重。
- 正确选项分析 (D. 寻道时间):
- 在一次典型的随机磁盘访问中,存取时间的构成通常是:
- 寻道时间: 几毫秒到十几毫秒 (e.g., 8ms)
- 旋转延迟时间: 几毫秒 (e.g., 7200RPM -> 4.17ms)
- 传输时间: 几十到几百微秒 (e.g., 读4KB -> 0.2ms)
- 可以看出,寻道时间通常是耗时最长的部分,因此对总存取时间的影响最大。
- 在一次典型的随机磁盘访问中,存取时间的构成通常是:
- 错误选项分析:
- A, B, C: 耗时相对较短。
08. 磁盘的操作系统引导扇区产生在( D )。
题目原文
08. 磁盘的操作系统引导扇区产生在( )。
A. 对磁盘进行分区时
B. 对磁盘进行低级格式化时
C. 对磁盘进行出厂时
D. 对磁盘进行高级格式化时
正确答案:D
题目解析
- 考点分析: 本题考察磁盘格式化的不同阶段及其作用。
- 正确选项分析 (D. 对磁盘进行高级格式化时):
- 高级格式化 (High-Level Formatting): 也称逻辑格式化,是由操作系统完成的。这个过程主要是在一个已存在的分区上建立文件系统。
- 建立文件系统的过程中,会向分区的特定位置(通常是第一个扇区)写入关键的引导信息,这个扇区被称为引导扇区(Boot Sector) 或卷引导记录(VBR)。它包含了用于加载该分区上操作系统的代码。
- 错误选项分析:
- A. 分区时:只是在磁盘上划分逻辑区域(如C盘、D盘),并写入分区表(MBR或GPT)。
- B. 低级格式化时:是在物理盘面上划分磁道和扇区,并写入扇区头、校验码等硬件层面的信息。
- C. 出厂时:通常会完成低级格式化。
09. 在磁盘中,每个扇区的头部和尾部都包含一些磁盘控制器的使用信息,如扇区号等,这些磁盘控制器的信息是在( A )阶段被创建的。
题目原文
09. 在磁盘中,每个扇区的头部和尾部都包含一些磁盘控制器的使用信息,如扇区号等,这些磁盘控制器的信息是在( )阶段被创建的。
A. 低级格式化
B. 分区
C. 高级格式化
D. 系统引导
正确答案:A
题目解析
- 考点分析: 本题与上一题形成对比,考察低级格式化的作用。
- 正确选项分析 (A. 低级格式化, Low-Level Formatting):
- 低级格式化是真正地在空白的盘面上创建物理扇区结构的过程。
- 在这个过程中,会在每个扇区写入前导码(同步信息)、扇区标识符(包含柱面号、磁头号、扇区号)、校验码(ECC) 等硬件控制器需要使用的信息。这些信息就是扇区的“头部和尾部”。
- 错误选项分析:
- B, C, D: 都是在低级格式化建立好的物理扇区基础上进行的更高层次的操作。
10. 在下列有关旋转延迟的叙述中,不正确的是( D )。
题目原文
10. 在下列有关旋转延迟的叙述中,不正确的是( )。
A. 旋转延迟的大小与磁盘调度算法无关
B. 旋转延迟的大小取决于磁盘空间间的分配程序
C. 旋转延迟的大小与文件的物理结构有关
D. 扇区数据的处理时间对延迟的影响较大
正确答案:D
题目解析
- 考点分析: 本题深入考察影响旋转延迟的因素。
- 错误选项分析 (D. 扇区数据的处理时间对延迟的影响较大):
- 这是错误的。旋转延迟是指“等待目标扇区转到磁头下”的时间,这个过程不涉及任何数据的处理或传输。
- “扇区数据的处理时间”应该是指数据传输时间,这是在旋转延迟结束之后才发生的事情,它不影响旋转延迟本身。
- 正确选项分析:
- A: 正确。磁盘调度算法优化的是寻道时间,对旋转延迟没有直接影响(虽然有考虑旋转位置的优化算法,但基本调度不考虑)。
- B & C: 正确。文件的物理结构(连续存放还是离散存放)决定了访问下一个数据块是否需要重新寻道和旋转。如果文件是连续存放的,访问完一个扇区后,下一个扇区就在旁边,旋转延迟很小。如果是离散的,就需要等待盘片旋转。文件的物理结构是由文件系统的空间分配程序决定的。
11. 当设计针对传统机械硬盘的磁盘调度算法时,主要考虑下列哪种因素对磁盘I/O性能影响最为显著?( A )。
题目原文
11. 当设计针对传统机械硬盘的磁盘调度算法时,主要考虑下列哪种因素对磁盘I/O性能影响最为显著?( )。
A. 移动磁头的延迟
B. 单个磁盘块的读/写时间
C. 磁盘平均旋转延迟
D. 磁盘最大旋转延迟
正确答案:A
题目解析
- 考点分析: 本题与第4、7题考点一致,再次强调磁盘调度算法的优化目标。
- 正确选项分析 (A. 移动磁头的延迟):
- “移动磁头的延迟”就是寻道时间。
- 如前所述,寻道时间是磁盘访问中耗时最长、最不确定的部分。
- 因此,所有主流的磁盘调度算法(SSTF, SCAN, LOOK, C-SCAN, C-LOOK)都是围绕着如何规划磁头的移动路径,以减少总的寻道距离/时间来设计的。
- 错误选项分析:
- B, C, D: 读写时间(传输时间)和旋转延迟主要由磁盘的物理特性(转速、密度)决定,调度算法无法改变它们。
12. 下列算法中,用于磁盘调度的是( C )。
题目原文
12. 下列算法中,用于磁盘调度的是( )。
A. 时间片轮转算法
B. LRU算法
C. 最短寻道时间优先算法
D. 优先级高者优先算法
正确答案:C
题目解析
- 考点分析: 本题要求从不同领域的调度算法中识别出专门用于磁盘调度的。
- 正确选项分析 (C. 最短寻道时间优先算法, SSTF):
- SSTF (Shortest Seek Time First) 是一种经典的磁盘调度算法。它的策略是:每次处理完一个请求后,选择与当前磁头位置最近(即寻道时间最短) 的那个请求进行服务。
- 错误选项分析:
- A. 时间片轮转算法:用于CPU调度(进程调度)。
- B. LRU算法:用于内存管理(页面替换)。
- D. 优先级高者优先算法:可以用于多种调度(CPU、进程等),但不是磁盘调度的特定算法名称。
13. 以下算法中,( B )可能出现“饥饿”现象。
题目原文
13. 以下算法中,( )可能出现“饥饿”现象。
A. 电梯调度
B. 最短寻道时间优先算法
C. 循环扫描算法
D. 先来先服务
正确答案:B
题目解析
- 考点分析: 本题考察不同磁盘调度算法的公平性问题,特别是“饥饿”现象。
- 正确选项分析 (B. 最短寻道时间优先算法, SSTF):
- 饥饿 (Starvation) 是指某个请求可能长时间得不到服务的现象。
- SSTF算法的策略是每次都选择离当前磁头最近的请求。
- 产生饥饿的原因: 如果磁头正在处理磁盘中间区域的请求,而此时内外两侧不断有新的、离磁头更近的请求到来,那么那些位于磁盘最内侧或最外侧的、较早发出的请求,可能会因为总有“插队”的更近请求,而一直得不到服务,从而产生“饥饿”。
- 错误选项分析:
- A. 电梯调度 (SCAN) 和 C. 循环扫描 (C-SCAN):这两种算法通过强制磁头来回扫描或单向扫描整个磁盘,保证了所有位置的请求最终都会被服务到,可以避免饥饿。
- D. 先来先服务 (FCFS):按请求到达顺序服务,非常公平,不会产生饥饿(但效率很低)。
14. 在下算法中,( B )可能随时改变磁头的运动方向。
题目原文
14. 在下算法中,( )可能随时改变磁头的运动方向。
A. 电梯调度
B. 最短寻道时间优先算法
C. 循环扫描算法
D. 先来先服务
正确答案:B
题目解析
- 考点分析: 本题考察不同磁盘调度算法中磁头移动方向的规律。
- 正确选项分析 (B. 最短寻道时间优先算法, SSTF):
- SSTF算法的决策依据仅仅是下一个请求与当前磁头位置的距离,而不考虑当前磁头的移动方向。
- 例如,磁头刚从磁道50移动到55,处理完请求。如果此时下一个最近的请求在磁道52,磁头就会立刻掉头回去。如果下一个最近的请求在磁道60,磁头就会继续前进。磁头的移动方向是完全机会主义的,可能在每一步都发生改变。
- 错误选项分析:
- A. 电梯调度 (SCAN) 和 C. 循环扫描 (C-SCAN):这两种算法的核心特点就是磁头保持一个固定的移动方向,直到到达磁盘的一端(或最后一个请求处)才会掉头。
- D. 先来先服务 (FCFS):磁头的移动方向完全取决于请求到达的顺序,可能是来回摆动,但不是“随时”根据距离改变。
15. 假设磁盘有256个柱面,4个磁头(盘面),每个磁道有8个扇区(编号均从0开始)。文件A在磁盘上连续存放…则文件A的一块存放在( B )。
题目原文
15. 假设磁盘有256个柱面,4个磁头(盘面),每个磁道有8个扇区(编号均从0开始)。文件A在磁盘上连续存放。若文件A中的一个块存放在5号柱面、2号磁头的7号扇区,则文件A的下一块应存放在( )。
A. 5号柱面、2号磁头的0号扇区
B. 5号柱面、3号磁头的0号扇区
C. 6号柱面、1号磁头的0号扇区
D. 6号柱面、1号磁头的7号扇区
正确答案:B
题目解析
- 考点分析: 本题考察磁盘上数据连续存放的物理地址递增规律。
- 背景知识(CHS地址递增顺序):
- 为了最大限度地减少机械运动,磁盘上连续的逻辑块,其物理地址的分配遵循以下原则:
- 首先,用尽当前磁道上剩余的扇区。
- 然后,切换到同一柱面的下一个磁头(盘面) 的同一磁道。
- 当当前柱面的所有磁头(盘面)都用尽后,才移动磁头到下一个柱面。
- 顺序是:扇区号 -> 磁头号 -> 柱面号。
- 为了最大限度地减少机械运动,磁盘上连续的逻辑块,其物理地址的分配遵循以下原则:
- 分析过程:
- 当前块位置:柱面5, 磁头2, 扇区7。
- 第一步:检查扇区。 当前是7号扇区,是该磁道(0-7)的最后一个扇区。扇区已用尽。
- 第二步:检查磁头。 磁头号需要加1。当前是2号磁头,下一个是3号磁头。磁头总数是4个(0-3),3号磁头是有效的。
- 第三步:确定柱面。 仍然在同一个柱面,即柱面5。
- 新块位置: 切换到新磁道后,扇区号从0开始。
- 所以,下一块的位置是:柱面5, 磁头3, 扇区0。
- 结论: 下一块应存放在5号柱面、3号磁头的0号扇区。
16. 假设磁盘有100个磁道,每个柱面上有8个磁道,每个磁道有8个扇区…则磁道地址(78个柱面、6号盘面、6号扇区)中存放了该文件( B )。
(该题题干存在逻辑矛盾,一个磁道不能在一个柱面上,应为“每个柱面上有8个磁头/盘面,每个磁道有8个扇区”。此处按此修正进行解析)
题目原文(修正后):
16. 假设磁盘有100个磁道(应为柱面),每个柱面上有8个磁头(盘面),每个磁道有8个扇区。文件A含有6400个逻辑记录,逻辑记录大小与扇区大小一致,该文件以顺序结构的形式存放在磁盘上。文件的第0个逻辑记录存放在磁道地址(0号柱面、0号盘面、0号扇区)中,则磁道地址(78号柱面、6号盘面、6号扇区)中存放了该文件的第( )个逻辑记录。
正确答案:B
题目解析
- 考点分析: 本题是上一题的逆向问题,根据CHS物理地址反推其对应的逻辑块(记录)编号。
- 计算公式:
逻辑块号 = 柱面号 * (每柱面磁头数 * 每磁道扇区数) + 磁头号 * (每磁道扇区数) + 扇区号
- 分析过程:
- 代入参数:
- 目标CHS地址:柱面=78, 磁头=6, 扇区=6。
- 每柱面磁头数 = 8。
- 每磁道扇区数 = 8。
- 计算逻辑记录号:
逻辑记录号 = 78 * (8 * 8) + 6 * (8) + 6
= 78 * 64 + 48 + 6
= 4992 + 54
= 5046
- 注意编号从0开始:
- 由于第0个逻辑记录对应编号0,所以计算出的
5046
就是第5046
个逻辑记录(从0开始计数)。
- 由于第0个逻辑记录对应编号0,所以计算出的
- 代入参数:
- 结论: 存放的是第5046个逻辑记录。
17. 已知某磁盘的平均旋转延迟为r秒/转,平均寻道时间为T秒…则平均访问时间是( A )。
题目原文
17. 已知某磁盘的平均旋转延迟为r秒/转,平均寻道时间为T秒,每个磁道可存放的字节数为N,现向该磁盘读/写B字节的信息,采用随机寻址的方式,则平均访问时间是( )。
A. (r + T)b/N + r
B. b/Nt
C. (b/N + T)r
D. b/tN + r
正确答案:A
题目解析
- 考点分析: 本题用符号表示磁盘平均存取时间,需要正确构建公式。
- 【答案校对与分析】 您提供的答案是
A
。但是标准公式T_access = T_seek + T_latency + T_transfer
与选项A(r + T)b/N + r
完全不符。T
= 寻道时间r
= 旋转延迟(这里r的单位是“秒/转”,即旋转一周的时间,不是平均延迟)。平均延迟应为r/2
。N
= 每磁道字节数b
= 要传输的字节数传输时间 = (b/N) * r
标准平均访问时间 = T + r/2 + (b/N)*r
- 我们来尝试理解答案A的公式
(r + T)b/N + r
:b/N
是要传输的数据占整个磁道的比例。r+T
是寻道+旋转一周的时间?- 这个公式在任何标准模型下都是不成立的。
- 结论: 此题的题目、选项或答案存在严重错误,无法从标准理论推导。如果非要选择,我们需要知道出题者的特殊模型假设。
18. 设磁盘的转速为3000转/分,盘面划分为10个扇区…则读取一个扇区的时间为( C )。
题目原文
18. 设磁盘的转速为3000转/分,盘面划分为10个扇区,则读取一个扇区的时间为( )。
A. 20ms
B. 5ms
C. 2ms
D. 1ms
正确答案:C
题目解析
- 考点分析: 本题考察磁盘数据传输时间的计算。
- 计算过程:
- 计算旋转一周所需的时间:
- 转速 = 3000 转/分 =
3000 / 60 = 50
转/秒。 - 旋转一周时间 =
1 / 50 s = 0.02 s = 20 ms
。
- 转速 = 3000 转/分 =
- 计算读取一个扇区的时间(即传输时间):
- 一个磁道被划分为10个扇区。
- 读取一个扇区的时间 = (旋转一周时间) / (每磁道的扇区数)
- 读取一个扇区的时间 =
20 ms / 10 = 2 ms
。
- 计算旋转一周所需的时间:
- 结论: 读取一个扇区的时间为2ms。
19. 一个磁盘的转速为7200转/分…其数据传输率是( C )。
(该题与第7题几乎完全相同)
题目原文
19. 一个磁盘的转速为7200转/分,每个磁道有160个扇区,每个扇区有512B,那么理想情况下,其数据传输率是( )。
A. 7200×160KB
B. 7200KB
C. 9600KB
D. 19200KB
正确答案:C
题目解析
- 考点分析: 磁盘最大数据传输率的计算。
- 计算过程:
- 计算每秒的转数:
- 转速 = 7200 转/分 =
7200 / 60
转/秒 = 120 转/秒。
- 转速 = 7200 转/分 =
- 计算每转的数据量(一个磁道的数据量):
- 每转数据量 =
160 扇区 * 512 B/扇区 = 81920 B
。
- 每转数据量 =
- 计算每秒传输的数据量(传输率):
- 传输率 =
120 转/秒 * 81920 B/转 = 9830400 B/s
。
- 传输率 =
- 将结果转换为KB/s:
- 传输率 =
9830400 / 1024 = 9600
KB/s。
- 传输率 =
- 计算每秒的转数:
- 结论: 数据传输率是9600KB/s。
20. 设一个磁盘访问请求序列为55, 58, 39, 18, 90, 160, 150, 38, 184,磁头的起始位置为100,若采用SSTF(最短寻道时间优先)算法,则磁头移动的下一个磁道是( D )。
正确答案:D
题目解析
- 考点分析: 本题考察SSTF磁盘调度算法的单步决策。
- SSTF算法规则: 从所有未处理的请求中,选择一个与当前磁头位置距离最近的请求进行服务。
- 分析过程:
- 当前磁头位置: 100。
- 未处理的请求队列: {55, 58, 39, 18, 90, 160, 150, 38, 184}。
- 计算每个请求与当前位置的距离:
|100 - 55| = 45
|100 - 58| = 42
|100 - 39| = 61
|100 - 18| = 82
|100 - 90| = 10
|100 - 160| = 60
|100 - 150| = 50
|100 - 38| = 62
|100 - 184| = 84
- 找出距离最小的请求:
- 最小距离是 10,对应的请求磁道是 90。
- 结论: 磁头移动的下一个磁道是90。
- 【答案校对】 您提供的答案是
D(248)
。选项中并没有248,可能是D选项内容有误。假设D选项是90
,那么答案就是正确的。如果D选项是248,则题目、选项或答案存在错误。此处我们按标准SSTF计算结果90进行解析。
21. 当前磁头在67号磁道,依次有4个磁道号请求为35, 77, 55, 121,则当采用( C )调度算法时,下一次磁头才可能到达55号磁道。
题目原文
21. 当前磁头在67号磁道,依次有4个磁道号请求为35, 77, 55, 121,则当采用( )调度算法时,下一次磁头才可能到达55号磁道。
A. 循环扫描(向小磁道号方向移动)
B. 最短寻道时间优先
C. 电梯调度(向大磁道号方向移动)
D. 电梯调度(向小磁道号方向移动)
正确答案:C
题目解析
- 考点分析: 本题要求根据不同磁盘调度算法的规则,判断哪种情况下磁头不会立即服务某个请求。
- 分析过程:
- 当前磁头位置: 67
- 请求队列: {35, 77, 55, 121}
- 目标请求: 55
- 逐项分析算法:
- A. 循环扫描 (C-SCAN),向小移动:
- 磁头会从67向磁道号减小的方向移动。
- 遇到的第一个请求是55。所以,下一次就会到达55。
- B. 最短寻道时间优先 (SSTF):
- 计算距离:
|67-35|=32
,|67-77|=10
,|67-55|=12
,|67-121|=54
。 - 最近的请求是77。所以,下一次会去77,不会去55。
- 【注意】 题目问“才可能到达”。SSTF在服务完77后,下一个最近的是55 (
|77-55|=22
),所以第二步会到55。
- 计算距离:
- C. 电梯调度 (SCAN),向大移动:
- 磁头会从67向磁道号增大的方向移动,服务完该方向所有请求。
- 移动路径:
67 -> 77 -> 121
。 - 到达121(该方向最后一个请求)后,磁头掉头向小磁道号方向移动。
- 掉头后路径:
121 -> 55 -> 35
。 - 在这种情况下,磁头需要先服务完所有比67大的请求,然后才会掉头回来服务55。
- D. 电梯调度 (SCAN),向小移动:
- 磁头会从67向磁道号减小的方向移动。
- 遇到的第一个请求是55。所以,下一次就会到达55。
- A. 循环扫描 (C-SCAN),向小移动:
- 结论: 只有在C选项“电梯调度,向大移动”的情况下,磁头不会立即或很快到达55,而是要完成一个方向的扫描后才会到达。题目问“才可能到达”,暗示了一个延迟的过程。
22. 某磁盘有1000个磁道,…则分别用SCAN算法(非LOOK调度)和SSTF算法完成上述请求后,磁头移过的磁道数分别是( C )。
题目原文
22. 某磁盘有1000个磁道,编号从0到999,当前磁头正在734号磁道,且向磁道号增大的方向移动。磁道请求依次为164, 845, 911, 165, 788, 432, 396, 700, 25,若分别用SCAN算法(非LOOK调度)和SSTF算法完成上述请求后,磁头移过的磁道数分别是( )。
A. 1865, 1543
B. 1688, 1738
C. 1239, 1131
D. 1239, 1738
正确答案:C
题目解析
- 考点分析: 本题是磁盘调度算法(SCAN, SSTF)总寻道距离的计算题。
- 分析SCAN算法 (电梯算法,非LOOK):
- 当前状态: 磁头在734,向大号方向移动。
- 移动路径:
- 向大扫描: 从734开始,依次服务所有比它大的请求,直到磁盘末端。
734 -> 788 -> 845 -> 911 -> 999
(非LOOK,必须到头)- 移动距离1 =
(788-734) + (845-788) + (911-845) + (999-911) = 999 - 734 = 265
- 掉头向小扫描: 从999开始,依次服务所有剩余请求。
999 -> 700 -> 432 -> 396 -> 165 -> 164 -> 25
- 移动距离2 =
(999-700) + (700-432) + ... + (164-25) = 999 - 25 = 974
- 向大扫描: 从734开始,依次服务所有比它大的请求,直到磁盘末端。
- 总移动距离 (SCAN):
265 + 974 = 1239
。
- 分析SSTF算法 (最短寻道时间优先):
- 初始状态: 磁头在734,请求队列 {164, 845, 911, 165, 788, 432, 396, 700, 25}
- 逐步决策与计算距离:
734
->700
(距离34)700
->788
(距离88)788
->845
(距离57)845
->911
(距离66)911
->432
(距离479)432
->396
(距离36)396
->165
(距离231)165
->164
(距离1)164
->25
(距离139)
- 总移动距离 (SSTF):
34 + 88 + 57 + 66 + 479 + 36 + 231 + 1 + 139 = 1131
。
- 结论: SCAN为1239,SSTF为1131。
23. 假定磁带的记录密度为400字符/英寸,…存储这些记录最需要长度为( C )。
题目原文
23. 假定磁带的记录密度为400字符/英寸,每条逻辑记录为80字符,块间隙(每条记录之间的间隙)为0.4英寸,现有3000个逻辑记录需要存储,存储这些记录最需要长度为( )的磁带。
A. 1500英寸,33.3%
B. 1800英寸,43.5%
C. 1800英寸,33.3%
D. 1500英寸,43.5%
正确答案:C
题目解析
- 考点分析: 本题考察磁带存储长度和空间利用率的计算。
- 计算过程:
- 计算存储一个记录所需的数据区长度:
- 记录长度 = 80 字符
- 记录密度 = 400 字符/英寸
- 数据区长度 =
80 / 400 = 0.2
英寸。
- 计算存储一个记录所需的总长度(数据区+间隙):
- 块间隙 = 0.4 英寸
- 总长度/记录 =
0.2 + 0.4 = 0.6
英寸。
- 计算存储3000个记录所需的磁带总长度:
- 磁带总长 =
3000 * 0.6 = 1800
英寸。
- 磁带总长 =
- 计算磁带利用率:
- 利用率 = (总数据区长度) / (磁带总长度)
- 总数据区长度 =
3000 * 0.2 = 600
英寸。 - 利用率 =
600 / 1800 = 1/3 ≈ 33.3%
。
- 计算存储一个记录所需的数据区长度:
- 结论: 需要1800英寸长的磁带,利用率为33.3%。
24. 下列关于固态硬盘(SSD)的说法中,错误的是( D )。
题目原文
24. 下列关于固态硬盘(SSD)的说法中,错误的是( )。
A. 基于闪存的存储技术
B. 随机读/写性能明显高于磁盘
C. 随机写比较慢
D. 不易磨损
正确答案:D
题目解析
- 考点分析: 本题考察SSD的基本特性。
- 错误选项分析 (D. 不易磨损):
- 这是错误的。SSD的核心介质NAND Flash Memory存在写/擦寿命问题。
- 每个存储单元(块)能够承受的编程/擦除(P/E)次数是有限的(例如,MLC为几千次,TLC为几百到一千次)。超过这个次数后,该单元就可能失效。
- 这正是SSD需要磨损均衡(Wear Leveling) 技术的根本原因。
- 正确选项分析:
- A: 正确,基于NAND Flash。
- B: 正确,无机械延迟,随机性能是其最大优势。
- C: 正确,相对于随机读,随机写因为“读-擦-改-写”的机制而较慢。
25. 下列关于固态硬盘的说法中,正确的是( C )。
题目原文
25. 下列关于固态硬盘的说法中,正确的是( )。
A. 固态硬盘的写速度比读速度快,性能甚至高于常规硬盘
B. 相比常规硬盘,固态硬盘优势体现在连续存取的速度
C. 静音磨损均衡算法通常比动态磨损均衡算法的实现更优秀
D. 写入时,静音磨损均衡算法每次选择使用次数最少的擦写数据而很少擦写数据
正确答案:C
题目解析
- 考点分析: 本题深入考察SSD的写特性和磨损均衡算法。
- 正确选项分析 (C. 静音磨损均衡算法通常比动态磨损均衡算法的实现更优秀):
- 【答案校对与分析】 您提供的答案是C。我们来分析磨损均衡算法。
- 动态磨损均衡 (Dynamic Wear Leveling): 只在动态数据(频繁被修改的数据)所在的块之间进行均衡。即,当有新的写请求时,优先写入擦写次数最少的空闲块。它不处理静态数据(长期不变的数据,如操作系统文件)。
- 静态磨损均衡 (Static Wear Leveling): 不仅对动态数据,也对静态数据进行均衡。当某些块的擦写次数远低于平均值时,算法会主动将这些块中的静态数据搬移到擦写次数较多的块中,从而释放出这些“新”块用于新的写入。
- 比较: 静态磨损均衡比动态磨损均衡更复杂,但效果更优秀,能更彻底地均衡所有块的磨损,从而最大化SSD的寿命。
- 选项C中的“静音”应为“静态”。在假设是笔误的情况下,C是正确的。
- 【答案校对与分析】 您提供的答案是C。我们来分析磨损均衡算法。
- 错误选项分析:
- A: 写速度通常比读速度慢。
- B: SSD的优势主要体现在随机存取,而非连续存取(虽然连续存取也很快)。
- D: “静音”应为“静态”。静态磨损均衡算法会主动搬移很少被擦写的静态数据。
26. 下列关于固态硬盘的说法中,错误的是( D )。
题目原文
26. 下列关于固态硬盘的说法中,错误的是( )。
A. 常规硬盘需要采用磁盘调度算法,而固态硬盘不需要
B. 固态硬盘需要进行磨损均衡,而常规硬盘不需要
C. 反复写同一个块会减少固态硬盘的寿命
D. 磨损均衡机制的目的是加快固态硬盘读/写速度
正确答案:D
题目解析
- 考点分析: 本题考察磨损均衡技术的核心目的。
- 错误选项分析 (D. 磨损均衡机制的目的是加快固态硬盘读/写速度):
- 这是错误的。
- 磨损均衡 (Wear Leveling) 的唯一、核心的目的是延长固态硬盘的整体使用寿命。
- 它通过复杂的地址映射和数据搬移,确保所有物理块被均匀地擦写。这个过程本身会带来一些性能开销(写放大),实际上可能会轻微降低瞬时写入速度,而不是加快。
- 正确选项分析:
- A: 正确。磁盘调度是为了优化寻道时间,SSD没有寻道,所以不需要。
- B: 正确。SSD有写/擦寿命限制,需要磨损均衡;HDD是磁介质,没有此问题。
- C: 正确,这正是需要磨损均衡的原因。
27. 【2009统考真题】假设磁盘磁头当前位于第105道…采用SCAN(电梯调度)算法,磁盘的调度序列是( A )。
题目原文
27. 【2009统考真题】假设磁盘磁头当前位于第105道,正在向磁道序号增加的方向移动。现有一个请求队列为35, 45, 12, 68, 110, 180, 170, 195,采用SCAN(电梯调度)算法,磁盘的调度序列是( )。
A. 110, 170, 180, 195, 68, 45, 35, 12
B. 110, 68, 45, 35, 12, 170, 180, 195
C. 110, 170, 180, 195, 12, 35, 45, 68
D. 12, 35, 45, 68, 110, 170, 180, 195
正确答案:A
题目解析
- 考点分析: 本题是SCAN(电梯调度)算法的模拟题。
- SCAN算法规则:
- 磁头沿着当前方向移动。
- 服务沿途遇到的所有请求。
- 到达磁盘的一端(或者最后一个请求,取决于是否是LOOK)后,掉转方向。
- 继续服务,直到另一端。
- 分析过程:
- 当前状态: 磁头在105,向大号方向移动。
- 向大扫描: 从105开始,按磁道号递增的顺序,依次服务所有比105大的请求。
- 遇到的请求有:110, 170, 180, 195。
- 服务序列:110, 170, 180, 195。
- 掉头: 题目未说明是LOOK还是非LOOK,但SCAN通常指会移动到磁盘末端。无论如何,在服务完195(该方向最后一个请求)后,必须掉头。
- 向小扫描: 从当前位置(195或磁盘末端)开始,按磁道号递减的顺序,依次服务所有剩余的请求。
- 剩余请求:{35, 45, 12, 68}
- 服务序列:68, 45, 35, 12。
- 组合成完整序列:
110, 170, 180, 195, 68, 45, 35, 12
- 结论: 调度序列与选项A完全匹配。
28. 【2012统考真题】下列选项中,不能改善磁盘I/O性能的是( B )。
题目原文
28. 【2012统考真题】下列选项中,不能改善磁盘I/O性能的是( )。
A. 在一个磁盘上设置多个分区
B. 优化文件物理块在磁盘上的分布
C. 预读和滞后写
D. 优化文件物理块在磁盘上的分布
正确答案:B
题目解析
- 考点分析: 本题考察改善磁盘I/O性能的各种技术。
- 【答案校对与分析】 您提供的答案是
B
。但是选项B和D是重复的。我们逐一分析。- A. 设置多个分区: 分区本身不能直接改善性能。但它可以通过将相关文件集中在同一个分区(通常是磁盘的物理上连续的区域),来间接减少寻道距离。同时,将操作系统和用户数据分在不同分区,可以优化不同访问模式。这个选项可以改善性能。
- B/D. 优化文件物理块…分布: 可以改善性能。例如,让一个文件的所有块连续存放,可以消除寻道和旋转延迟,大大提高顺序读写性能。
- C. 预读和滞后写: 可以改善性能。
- 预读(Read-ahead): 当系统读取文件的块N时,预测用户很快会需要块N+1,于是提前将其读入内存缓冲区。
- 滞后写(Delayed-write): 当用户请求写文件时,只写入内存缓冲区就立即返回,等到缓冲区满或系统空闲时再批量写入磁盘。
- 这两种技术都利用了磁盘高速缓存来减少I/O等待。
- 结论: A, B, C, D描述的都是改善磁盘性能的有效方法。这道题的选项或答案存在问题。如果非要找一个相对最弱的,可能是A,因为分区带来的性能改善是间接的。但B/D和C是直接的、核心的优化技术。
29. 【2015统考真题】某磁盘有200个磁道…磁头移过的磁道数是( C )。
题目原文
29. 【2015统考真题】某磁盘有200个磁道(最外侧磁道为0,最内侧磁道为199),磁道请求序列为42, 180, 15, 199, 当前磁头位于58号磁道,并刚从内侧向外侧移动。采用SCAN调度方法处理完上述请求后,磁头移过的磁道数是( )。
A. 208
B. 287
C. 325
D. 382
正确答案:C
题目解析
- 考点分析: 本题是SCAN(电梯调度)算法总寻道距离的计算题。
- 分析过程:
- 确定方向: “从内侧向外侧移动”,磁道号0是最外侧,199是最内侧。所以磁头正在向磁道号减小的方向移动。
- 当前状态: 磁头在58,向0号磁道方向移动。
- 请求队列: {42, 180, 15, 199}
- 移动路径 (SCAN,非LOOK):
- 向外扫描 (向0移动): 从58开始,服务沿途请求,直到磁盘始端(0号磁道)。
58 -> 42 -> 15 -> 0
- 移动距离1 =
58 - 0 = 58
- 掉头向内扫描: 从0开始,向199方向移动,服务沿途请求。
0 -> 180 -> 199
- 移动距离2 =
199 - 0 = 199
- 向外扫描 (向0移动): 从58开始,服务沿途请求,直到磁盘始端(0号磁道)。
- 总移动距离:
58 + 199 = 257
。
- 【答案校对与分析】 您提供的答案是
C (325)
。我的计算结果是257
。我们来分析差异。325 = (58-15) + (199-15) = 43 + 184 = 227
? 不对。325 = (199-58) + (199-15) = 141 + 184 = 325
。这个计算意味着磁头先向内走到了199,再从199返回。但这与题目“刚从内侧向外侧移动”的描述完全相反。- 结论: 如果严格按照题目给定的初始方向,总寻道距离是257。答案325对应的是初始方向向内的情况。此题的题目描述和答案存在矛盾。
30. 【2017统考真题】下列选项中,对磁盘进行移臂调度的时机是( B )。
(该题题干不完整,根据选项和逻辑补全)
题目原文(补全后):
30. 【2017统考真题】下列选项中,对磁盘进行移臂调度(磁盘调度)的时机是( )。
A. 创建文件时
B. 启动磁盘读/写时
C. 打开文件时
D. 发出I/O请求时
正确答案:B
题目解析
- 考点分析: 本题考察磁盘调度算法在何时被触发执行。
- 正确选项分析 (B. 启动磁盘读/写时):
- 磁盘调度算法是在设备驱动程序中实现的。
- 当有多个I/O请求在队列中等待时,每当磁盘完成一次读/写操作,变得空闲时,驱动程序就需要决定下一个要服务的请求是哪一个。
- 这个决策过程,即运行调度算法,发生在启动下一次磁盘读/写操作之前。
- 错误选项分析:
- A, C: 创建和打开文件是文件系统层面的逻辑操作,此时可能还未产生具体的物理I/O请求。
- D: 发出I/O请求时,请求只是被放入等待队列,调度算法是在队列中选择一个来执行时才运行。
好的,我们继续完成最后4道题目的详细分析。我将严格按照您提供的正确答案DACC
进行解析。
31. 【2017统考真题】下列优化方法中,可以提高文件系统对磁盘I/O性能的是( D )。
I. 提前读 II. 为文件分配连续的簇
III. 延迟写 IV. 采用磁盘高速缓存
正确答案:D
题目解析
- 考点分析: 本题综合考察提高磁盘I/O性能的各种文件系统层面的优化技术。
- 逐项分析:
- I. 提前读 (Read-ahead): 可以提高性能。这是基于空间局部性的预取策略。当系统检测到对文件进行顺序读取时,它会主动将后续的几个数据块提前读入内存的磁盘高速缓存中。这样,当进程真正需要这些数据时,就可以直接从高速的内存中获取,避免了等待慢速的磁盘I/O。
- II. 为文件分配连续的簇 (连续分配): 可以提高性能。如果一个文件的所有数据块在磁盘上是物理连续存放的,那么在读取整个文件时,磁头只需一次寻道和一次旋转定位,然后就可以连续不断地读取数据,大大减少了寻道时间和旋转延迟,极大地提高了顺序读写性能。
- III. 延迟写 (Delayed-write): 可以提高性能。当进程请求写数据时,系统只将数据写入内存中的磁盘高速缓存就立即返回,告知进程写操作已“完成”。实际的写盘操作则被延迟到系统空闲、缓冲区满或定时器到时才进行。这减少了进程的等待时间,并且可以将多次小的写操作合并为一次大的写操作,提高了磁盘I/O效率。
- IV. 采用磁盘高速缓存 (Disk Cache / Buffer Cache): 可以提高性能。这是上述“提前读”和“延迟写”等技术的基础。通过在内存中开辟一块区域缓存常用的磁盘块,可以用高速的内存访问替代慢速的磁盘访问,是提高文件系统性能最核心的技术。
- 组合判断: I、II、III、IV 描述的所有方法都是提高磁盘I/O性能的有效手段。
32. 【2018统考真题】系统总是为访问磁盘的某个磁道臂黏着,导致磁头臂黏着。现象为总是访问磁盘的某个磁道臂黏着,导致磁头臂黏着。现象为总是访问磁盘的某个磁道臂黏着…下列磁盘调度算法中,不会导致磁头臂黏着的是( A )。
(该题题干文字有大量重复和错误,根据逻辑整理)
题目原文(整理后):
32. 【2018统考真题】系统总是为访问磁盘的某个磁道臂黏着,导致磁头臂“黏着”于某一区域的现象,称为“饥饿”。下列磁盘调度算法中,不会导致磁头臂“黏着”(饥饿)的是( )。
A. 扫描算法 (SCAN)
B. 先来先服务 (FCFS)
C. 最短寻道时间优先 (SSTF)
D. 电梯扫描算法 (C-SCAN)
正确答案:A
题目解析
- 考点分析: 本题与第13题类似,考察不同磁盘调度算法的公平性,即是否会产生“饥饿”现象。
- 正确选项分析 (A. 扫描算法 (SCAN)) & D. 电梯扫描算法 (C-SCAN):
- SCAN (电梯算法) 和 C-SCAN (循环扫描算法) 的核心机制就是强制磁头在磁盘上来回扫描或单向扫描。
- 这种机制保证了磁头迟早会经过磁盘上的每一个磁道,因此队列中的任何请求最终都会被服务到,从而有效地避免了饥饿现象。
- 【答案校对与分析】 您提供的答案是
A
。实际上,A和D都是正确的。在单选题中出现这种情况,通常意味着A和D被视为同一类(扫描类),而题目可能想与SSTF和FCFS对比。
- 错误选项分析:
- B. 先来先服务 (FCFS): 按到达顺序处理,非常公平,不会导致饥饿。
- C. 最短寻道时间优先 (SSTF): 会导致饥arah。如前所述,如果请求集中在某一区域,远离该区域的请求可能会长时间得不到服务。
- 结论:
- 会导致饥饿的只有SSTF。
- 不会导致饥饿的有FCFS, SCAN, C-SCAN。
- 题目问“不会导致…”,有三个正确选项。这表明题目本身存在严重问题。如果必须在A和D中选一个,没有逻辑上的区分依据。如果答案确定是A,那么可能是认为FCFS虽然不饥饿但效率太低不属于“调度”,而SSTF会饥饿。
33. 【2021统考真题】某系统中的磁盘的磁道数为200(0~199),磁头当前在184号磁道上…若采用最短寻道时间优先调度算法(SSTF)完成磁盘访问,则磁头移动的距离(磁道数)是( C )。
题目原文
33. 【2021统考真题】某系统中的磁盘的磁道数为200(0~199),磁头当前在184号磁道上。用户进程提出的磁盘访问请求的磁道号依次为17, 187, 176, 182, 199。若采用最短寻道时间优先调度算法(SSTF)完成磁盘访问,则磁头移动的距离(磁道数)是( )。
A. 37
B. 38
C. 41
D. 42
正确答案:C
题目解析
- 考点分析: 本题是SSTF磁盘调度算法总寻道距离的计算题。
- SSTF算法规则: 每次都选择离当前磁头位置最近的请求进行服务。
- 分析过程:
- 初始状态: 磁头在 184,请求队列 {17, 187, 176, 182, 199}。
- 第1步:
- 计算距离:
|184-17|=167
,|184-187|=3
,|184-176|=8
,|184-182|=2
,|184-199|=15
。 - 最近的是 182。
- 移动:
184 -> 182
,距离 = 2。
- 计算距离:
- 第2步:
- 当前在 182,剩余队列 {17, 187, 176, 199}。
- 计算距离:
|182-17|=165
,|182-187|=5
,|182-176|=6
,|182-199|=17
。 - 最近的是 187。
- 移动:
182 -> 187
,距离 = 5。
- 第3步:
- 当前在 187,剩余队列 {17, 176, 199}。
- 计算距离:
|187-17|=170
,|187-176|=11
,|187-199|=12
。 - 最近的是 176。
- 移动:
187 -> 176
,距离 = 11。
- 第4步:
- 当前在 176,剩余队列 {17, 199}。
- 计算距离:
|176-17|=159
,|176-199|=23
。 - 最近的是 199。
- 移动:
176 -> 199
,距离 = 23。
- 第5步:
- 当前在 199,只剩请求 17。
- 移动:
199 -> 17
,距离 =199 - 17 = 182
。
- 【答案校对与分析】 您提供的答案是
C (41)
。我的计算结果是2 + 5 + 11 + 23 + 182 = 223
。这是一个巨大差异。我们来重新审视SSTF的每一步决策。- 184 -> 182 (dist 2) -> OK
- 182 -> 187 (dist 5) -> OK
- 187 -> 176 (dist 11) -> OK
- 重新审视第4步: 当前在176,
|176-17|=159
,|176-199|=23
。最近的是199。-> OK - 重新审视第5步: 当前在199,只剩17。-> OK
- 我的计算
2+5+11+23+182 = 223
没有问题。 - 答案41是如何得到的?
41 = (184-182) + (182-176) + (176-187) + (187-199) + (199-17)
? 不对41 = (184-182) + (187-182) + (187-176) + (199-187) = 2 + 5 + 11 + 12 = 30
? 不对41 = (184-176) + (176-182) + (182-187) + (187-199) = 8+6+5+12 = 31
? 不对- 让我们尝试不同的服务顺序:
184 -> 182 -> 176 -> 187 -> 199 -> 17
。 - 总距离 =
(184-182) + (182-176) + (187-176) + (199-187) + (199-17)
- =
2 + 6 + 11 + 12 + 182 = 213
。
- 结论: 此题的答案
C (41)
无法通过标准的SSTF算法推导出来,可能题目或答案存在严重错误。
34. 【2024统考真题】某个磁盘的磁道数为400…则完成上述磁盘请求后磁头移动的距离是( C )。
题目原文
34. 【2024统考真题】某个磁盘的磁道数为400(磁道号为0~399),采用循环扫描算法(C-SCAN)进行磁盘调度,完成对200号磁道的请求后,磁头向磁道号减小的方向移动。若还有7个磁盘请求,对应的磁道号分别为300, 120, 110, 0, 160, 210, 399,则完成上述磁盘请求后磁头移动的距离是( )。
A. 599
B. 619
C. 788
D. 799
正确答案:C
题目解析
- 考点分析: 本题是C-SCAN(循环扫描)算法总寻道距离的计算题。
- C-SCAN算法规则:
- 磁头只在一个方向上服务请求(例如,从小到大)。
- 当到达磁盘一端后,立即快速返回到另一端(不服务任何请求)。
- 然后再次开始单向扫描服务。
- 分析过程:
- 初始状态: 完成200号磁道的请求,当前磁头在 200。
- 移动方向: 向磁道号减小的方向移动。
- 请求队列: {300, 120, 110, 0, 160, 210, 399}。
- 移动路径:
- 第一段 (向0扫描): 从200开始,向0方向移动,服务沿途所有请求,直到磁盘始端(0号磁道)。
- 服务序列:
160, 120, 110, 0
。 - 移动路径:
200 -> 160 -> 120 -> 110 -> 0
。 - 移动距离1 =
200 - 0 = 200
。
- 服务序列:
- 第二段 (快速返回): 磁头从0号磁道快速移动到磁盘的另一端,即399号磁道。
- 移动路径:
0 -> 399
。 - 移动距离2 =
399 - 0 = 399
。
- 移动路径:
- 第三段 (再次向0扫描): 从399开始,再次向0方向移动,服务所有剩余的请求。
- 剩余请求: {300, 210}。
- 服务序列:
300, 210
。 - 移动路径:
399 -> 300 -> 210
。 - 移动距离3 =
399 - 210 = 189
。
- 第一段 (向0扫描): 从200开始,向0方向移动,服务沿途所有请求,直到磁盘始端(0号磁道)。
- 计算总移动距离:
- 总距离 =
距离1 + 距离2 + 距离3
- 总距离 =
200 + 399 + 189 = 788
。
- 总距离 =
- 结论: 磁头移动的总距离是788个磁道。
5.3 文件系统 & 磁盘调度 知识体系与考法总结
这一部分内容将操作系统的文件管理与底层存储设备(特别是磁盘)的物理特性紧密结合起来。它不仅考察文件系统的逻辑结构和概念,还重点考察如何通过调度算法来优化磁盘这一典型机械设备的性能。知识点既有抽象的管理策略,也有具体的性能计算,是考试中的一个重要综合应用领域。
知识体系梳理
本节的知识体系可以围绕“文件系统的逻辑视图”、“磁盘的物理现实”和“连接两者的桥梁——磁盘调度”三条主线展开。
一、 文件系统的逻辑视图 (OS如何组织数据)
- 文件与文件系统:
- 文件: 一组相关的、有名字的信息的集合,是OS进行资源分配和保护的基本单位。
- 文件系统: OS中负责管理和组织文件的部分,以及它在存储设备上建立的数据结构(元数据)。
- 文件的逻辑结构:
- 流式文件(无结构): 如UNIX,文件被看作一个字节序列。
- 记录式文件(有结构): 文件由一组固定或可变长度的记录组成。
- 文件的物理结构(文件分配方式):
- 连续分配: 文件占用一组连续的磁盘块。优点: 顺序读写速度快。缺点: 存在外碎片,文件不易扩展。
- 链接分配: 文件块通过指针链接。优点: 无外碎片,文件易扩展。缺点: 只能顺序访问,可靠性差(指针丢失),指针占用额外空间。
- 索引分配: 将指向文件所有数据块的指针集中存放在一个索引块中。优点: 支持直接访问,无外碎片。缺点: 索引块占用空间,对于小文件开销大。
- 目录结构: 单级、两级、树形结构。
二、 磁盘的物理现实 (硬件如何工作)
- 物理结构与寻址: CHS模型(柱面-磁头-扇区)。
- 存取时间 (高频考点):
总时间 = 寻道时间 + 旋转延迟 + 传输时间
。- 寻道时间: 影响最大,是调度算法优化的主要目标。
- 旋转延迟: 与转速成反比。
- 数据存放的连续性: 逻辑上连续的文件块,在物理上按
扇区号 -> 磁头号 -> 柱面号
的顺序递增存放,以最小化机械运动。 - 磁盘格式化:
- 低级格式化: 建立物理扇区结构,写入扇区头/尾等硬件信息。
- 高级格式化: 建立文件系统,写入引导扇区、文件分配表等逻辑结构。
三、 磁盘调度 (连接逻辑与物理的桥梁)
- 目的: 通过重新排列I/O请求队列的顺序,减少总的磁头寻道时间,提高磁盘I/O的吞吐率。
- 常用算法 (必考核心):
- 先来先服务 (FCFS): 公平,但效率低下,磁头臂摆动幅度大。不会产生饥饿。
- 最短寻道时间优先 (SSTF): 优先处理离当前磁头最近的请求。效率高,但可能导致饥饿现象,且磁头移动方向随时可能改变。
- 扫描算法 (SCAN / 电梯算法): 磁头在磁盘上像电梯一样来回移动,服务沿途所有请求。克服了SSTF的饥饿问题。
- 循环扫描算法 (C-SCAN): 只在一个方向上服务请求(例如从外到内),到达一端后立即返回另一端,重新开始扫描。相比SCAN,它提供了更公平的等待时间(特别是对于两端的请求)。
- LOOK / C-LOOK: 是SCAN / C-SCAN的优化,磁头移动到该方向上最远的一个请求处即掉头,不必移动到磁盘的物理端点。
常见考法与例题梳理
-
磁盘性能计算(必考计算题)
- 考法: 给出磁盘物理参数,计算数据传输率或平均存取时间。
- 例题07 & 19: 计算数据传输率。公式:
速率 = (每磁道容量) * (每秒转数)
。 - 例题09 & 11 (真题): 计算平均存取时间。公式:
总时间 = 寻道 + 旋转延迟 + 传输
。关键是平均旋转延迟 = 0.5 * (60/RPM)
。
-
磁盘调度算法模拟与计算(必考核心)
- 考法: 给出初始磁头位置、移动方向和请求队列,要求:
- 写出某种算法的服务序列。
- 计算总的磁头移动距离(寻道道数)。
- 比较不同算法的特性(如是否饥饿、磁头移动方向是否固定)。
- 例题13 & 14: 对比SSTF与SCAN/C-SCAN在“饥饿”和“移动方向”上的根本不同。
- 例题20 & 22 & 27 & 29 & 33 & 34 (大量真题): 集中考察了SSTF, SCAN, C-SCAN算法的模拟和总寻道距离计算。这是本章最稳定、最常见的考题类型,必须熟练掌握。
- 考法: 给出初始磁头位置、移动方向和请求队列,要求:
-
磁盘物理与逻辑概念辨析
- 考法: 区分文件系统的逻辑单位(块、记录)和磁盘的物理单位(扇区、磁道、柱面);理解格式化的不同层次。
- 例题06: 文件系统以“块”为单位读写。
- 例题08 & 09: 清晰地区分了高级格式化(建立文件系统、引导扇区)和低级格式化(建立物理扇区结构)。
- 例题15 & 16: 考察了CHS物理地址与逻辑块号之间的转换,关键是理解
扇区号 -> 磁头号 -> 柱面号
的递增顺序。
-
固态硬盘(SSD)与机械硬盘(HDD)对比
- 考法: 考察SSD的读/写/擦除单位不对称性、无机械延迟带来的随机性能优势、以及写寿命和磨损均衡等核心概念。
- 例题24, 25, 26: 集中考察了SSD的这些特性,特别是“不易磨损”是典型错误说法,磨损均衡的目的是“延长寿命”而非“提高速度”。
刻意练习建议
-
磁盘调度算法专项训练(重中之重):
- 找10-15道磁盘调度算法的计算题,覆盖FCFS, SSTF, SCAN, LOOK, C-SCAN, C-LOOK。
- 建立解题模板:
- 画数轴: 在草稿纸上画一条数轴,标出磁道范围(如0~199)。
- 标注信息: 标出当前磁头位置、初始移动方向和所有请求点。
- 模拟路径: 根据所选算法的规则,用笔在数轴上一步步画出磁头的移动路径,并依次划掉被服务的请求。
- 计算距离: 根据画出的路径,分段计算移动距离,最后求和。
- 对比总结: 做完后,对比不同算法在同一请求序列下的总距离和公平性,加深理解。
-
制作“HDD vs. SSD”对比表:
- 详细对比两者在存储介质、机械部件、读写单位(扇区 vs. 页/块)、随机/顺序性能、功耗、价格、寿命、关键技术(调度 vs. 磨损均衡)等方面的差异。
-
CHS与逻辑块号转换练习:
- 自己设定磁盘参数(C, H, S的数量),然后进行正向(逻辑块号 -> CHS)和逆向(CHS -> 逻辑块号)的转换练习。
- 公式:
LBA = C * (HPC * SPC) + H * (SPC) + S
(LBA:逻辑块地址, HPC:每柱面磁头数, SPC:每磁道扇区数)。
-
性能计算公式化:
- 将磁盘存取时间和传输率的计算公式整理成卡片,反复背诵和应用。特别注意单位换算(RPM -> RPS -> 秒/转;B, KB, MB;ms, s)。
通过以上系统性的梳理和有针对性的刻意练习,您将能够牢固掌握文件系统与磁盘管理这一章节的核心知识,并能准确、快速地解决相关的计算和分析问题。