5.3.2 磁盘的管理
2026 旧版 · 非 2027 主源 · 原书检索 · 文字用于定位,公式与图表请回原页核验 · 本次导入快照
## 5.3.2 磁盘的管理
**前景频道** ▶ 新磁盘安装操作系统的过程(2021)
### 1. 磁盘初始化
**前景频道** ▶ 物理格式化的内容(2017、2021)
一个新的磁盘只是一个磁性记录材料的空白盘。在磁盘可以存储数据之前,必须将它分成扇区,以便磁盘控制器能够进行读/写操作,这个过程称为低级格式化(也称物理格式化)。每个扇区通常由头部、数据区域和尾部组成。头部和尾部包含了一些磁盘控制器的使用信息,其中利用磁道号、磁头号和扇区号来标志一个扇区,利用CRC字段对扇区进行校验。
大多数磁盘在工厂时作为制造过程的一部分就已低级格式化,这种格式化能够让制造商测试磁盘,并且初始化逻辑块号到无损磁盘扇区的映射。对于许多磁盘,当磁盘控制器低级格式化时,还能指定在头部和尾部之间留下多长的数据区,通常选择256字节或512字节等。
### 2. 分区
**前景频道** ▶ 逻辑格式化的内容(2017、2021)
在可以使用磁盘存储文件之前,还要完成两个步骤。第一步是,将磁盘分区(我们熟悉的C盘、D盘等形式的分区),每个分区由一个或多个柱面组成,每个分区的起始扇区和大小都记录在磁盘主引导记录的分区表中。第二步是,对物理分区进行逻辑格式化(也称高级格式化),将初始的文件系统数据结构存储到磁盘上,这些数据结构包括空闲的空间和已分配的空间,以及一
<!-- page: 353 -->
个初始为空的目录,建立根目录、对保存空闲磁盘块信息的数据结构进行初始化。
因为扇区的单位太小,为了提高效率,操作系统将多个相邻的扇区组合在一起,形成一簇(在Linux中称为块)。为了更高效地管理磁盘,一簇只能存放一个文件的内容,文件所占用的空间只能是簇的整数倍;若文件大小小于一簇(甚至是0字节),则也要占用一簇的空间。
## 3. 引导块
计算机启动时需要运行一个初始化程序(自举程序),它初始化CPU、寄存器、设备控制器和内存等,接着启动操作系统。为此,自举程序找到磁盘上的操作系统内核,将它加载到内存,并转到起始地址,从而开始操作系统的运行。
自举程序通常存放在ROM中,为了避免改变自举代码而需要改变ROM硬件的问题,通常只在ROM中保留很小的自举装入程序,而将完整功能的引导程序保存在磁盘的启动块上,启动块位于磁盘的固定位置。具有启动分区的磁盘称为启动磁盘或系统磁盘。
引导ROM中的代码指示磁盘控制器将引导块读入内存,然后开始执行,它可以从非固定的磁盘位置加载整个操作系统,并且开始运行操作系统。下面以Windows为例来分析引导过程。Windows允许将磁盘分为多个分区,有一个分区为引导分区,它包含操作系统和设备驱动程序。Windows系统将引导代码存储在磁盘的第0号扇区,它称为主引导记录(MBR)。引导首先运行ROM中的代码,这个代码指示系统从MBR中读取引导代码。除了包含引导代码,MBR还包含一个磁盘分区表和一个标志(以指示从哪个分区引导系统),如图5.20所示。当系统找到引导分区时,读取分区的第一个扇区,称为引导扇区,并继续余下的引导过程,包括加载各种系统服务。
图5.20 Windows磁盘的引导
## 4. 坏块
磁盘有移动部件且容错能力弱,因此容易导致一个或多个扇区损坏。部分磁盘甚至在出厂时就有坏块。根据所用的磁盘和控制器,对这些块有多种处理方式。
对于简单磁盘,如采用IDE控制器的磁盘,坏块可手动处理,如MS-DOS的Format命令执行逻辑格式化时会扫描磁盘以检查坏块。坏块在FAT表上会标明,因此程序不会使用它们。
对于复杂的磁盘,控制器维护磁盘内的坏块列表。这个列表在出厂低级格式化时就已初始化,并在磁盘的使用过程中不断更新。低级格式化将一些块保留作为备用,操作系统看不到这些块。控制器可以采用备用块来逻辑地替代坏块,这种方案称为扇区备用。
对坏块的处理实质上就是用某种机制使系统不去使用坏块。
## 5.3.3 磁盘调度算法
### 1. 磁盘的存取时间
一次磁盘读/写操作的时间由寻找(寻道)时间、旋转延迟时间和传输时间决定。
1)寻道时间 $T_{x}$ 。活动头磁盘在读/写信息前,将磁头移动到目的磁道所需的时间。这个时间
<!-- page: 354 -->
除跨越 $n$ 条磁道的时间外,还包括启动磁头臂的时间 $s$,则
$$
T _ {\mathrm {s}} = m n + s
$$
式中,$m$ 是每跨越一个磁道所需的时间,约为 $0.2\mathrm{ms}$;磁头臂的启动时间约为 $2\mathrm{ms}$。
2)旋转延迟时间 $T_{1}$。磁头定位到要读/写扇区所需的时间,设磁盘的旋转速度为 $r$,则
$$
T _ {1} = \frac {1}{2 r}
$$
对于硬盘,典型的旋转速度为5400转/分,相当于一周 $11.1\mathrm{ms}$,则 $T_{1}$ 为 $5.55\mathrm{ms}$;对于软盘,其旋转速度为 $300\sim 600$ 转/分,则 $T_{1}$ 为 $50\sim 100\mathrm{ms}$。
3)传输时间 $T_{1}$。从磁盘读出或向磁盘写入数据所需的时间,这个时间取决于每次所读/写的字节数 $b$ 和磁盘的旋转速度 $r$,则
$$
T _ {1} = \frac {b}{r N}
$$
式中,$r$ 为磁盘每秒的转数,$N$ 为一个磁道上的字节数。总平均存取时间 $T_{0}$ 可以表示为
$$
T _ {0} = T _ {\mathrm {s}} + \frac {1}{2 r} + \frac {b}{r N}
$$
在磁盘的存取时间中,寻道时间占大头,它与磁盘调度算法密切相关;而延迟时间和传输时间都与磁盘旋转速度线性相关,所以转速是磁盘性能的一个非常重要的硬件参数,也很难从操作系统层面进行优化。因此,磁盘调度的主要目标是减少磁盘的平均寻道时间。
## 2. 磁盘调度算法
公众号:小兔网盘免费分享无水印PDF
目前常用的磁盘调度算法有以下几种。
### 南极磁盘
各种磁盘调度算法的比较(2010、2018)
#### (1)先来先服务(First Come First Served,FCFS)算法
FCFS算法根据进程请求访问磁盘的先后顺序进行调度,这是一种最简单的调度算法,如图5.21所示。该算法的优点是具有公平性。若只有少量进程需要访问,且大部分请求都是访问簇聚的文件扇区,则有望达到较好的性能;若有大量进程竞争使用磁盘,则这种算法在性能上往往接近于随机调度。所以,实际磁盘调度中会考虑一些更为复杂的调度算法。
例如,磁盘请求队列中的请求顺序分别为55, 58, 39, 18, 90, 160, 150, 38, 184,磁头的初始位置是磁道100,采用FCFS算法时磁头的运动过程如图5.21所示。磁头共移动了 $(45 + 3 + 19 + 21 + 72 + 70 + 10 + 112 + 146) = 498$ 个磁道,平均寻道长度 $= 498 / 9 = 55.3$。
图5.21 FCFS磁盘调度算法
#### (2)最短寻道时间优先(Shortest Seek Time First, SSTF)算法
### 南极磁盘
磁盘调度SSTF算法的应用(2019、2021)
SSTF算法每次选择调度的是离当前磁头最近的磁道,使每次的寻道时间最短。每次选择最
<!-- page: 355 -->
小寻道时间并不能保证平均寻道时间最小,但能提供比FCFS算法更好的性能。这种算法会产生“饥饿”现象,例如图5.22中,某时刻磁头正在18号磁道,假设在18号磁道附近频繁地出现新的请求,则磁头在18号磁道附近来回移动,使较远的磁道(如184号)长期得不到访问。
图5.22 SSTF磁盘调度算法
例如,磁盘请求队列中的请求顺序分别为55、58、39、18、90、160、150、38、184,磁头初始位置是磁道100,采用SSTF算法时磁头的运动过程如图5.22所示。磁头共移动了 $10 + 32 + 3 + 16 + 1 + 20 + 132 + 10 + 24 = 248$ 个磁道,平均寻道长度 $= 248 / 9 = 27.5$ 。
## (3) 扫描(SCAN)算法
SSTF算法产生饥饿的原因是“磁头可能在一个小范围内来回地移动”。为了防止这个问题,可以规定:只有磁头移动到最外侧磁道时才能向内移动,移动到最内侧磁道时才能向外移动,这就是SCAN算法的思想。它是在SSTF算法的基础上规定了磁头移动的方向,如图5.23所示。磁头移动规律与电梯运行相似,因此也称电梯调度算法。SCAN算法对最近扫描过的区域不公平,因此它在访问局部性方面不如FCFS算法和SSTF算法好。
图5.23 SCAN磁盘调度算法
## 简易调控
磁盘调度 SCAN 算法的应用(2009、2010、2015)
例如,磁盘请求队列中的请求顺序分别为55、58、39、18、90、160、150、38、184,磁头初始位置是磁道100。采用SCAN算法时,不但要知道磁头的当前位置,而且要知道磁头的移动方向,假设磁头沿磁道号增大的顺序移动,则磁头的运动过程如图5.23所示。移动磁道的顺序为100、150、160、184、200、90、58、55、39、38、18。磁头共移动了 $(50 + 10 + 24 + 16 + 110 + 32 + 3 + 16 + 1 + 20) = 282$ 个磁道,平均寻道长度 $= 282 / 9 = 31.33$ 。
## (4)循环扫描(Circular SCAN, C-SCAN)算法
## 简易调控
磁盘调度 C-SCAN 算法的应用(2024)
在SCAN算法的基础上规定磁头单向移动来提供服务,返回时直接快速移动至起始端而不服务任何请求。因为SCAN算法偏向于处理那些接近最里或最外的磁道的访问请求,所以使用改进型的C-SCAN算法来避免这个问题,如图5.24所示。
图5.24 C-SCAN磁盘调度算法
<!-- page: 356 -->
345
例如,磁盘请求队列中的请求顺序分别为 55, 58, 39, 18, 90, 160, 150, 38, 184,磁头初始位置是磁道 100。采用 C-SCAN 算法时,假设磁头沿磁道号增大的顺序移动,则磁头的运动过程如图 5.24 所示。移动磁道的顺序为 100, 150, 160, 184, 200, 0, 18, 38, 39, 55, 58, 90。磁头共移动 $50 + 10 + 24 + 16 + 200 + 18 + 20 + 1 + 16 + 3 + 32 = 390$ 个磁道,平均寻道长度 $= 390 / 9 = 43.33$。
采用 SCAN 算法和 C-SCAN 算法时,磁头总是严格地遵循从盘面的一端到另一端,显然,在实际使用时还可以改进,即磁头只需移动到最远端的一个请求即可返回,不需要到达磁盘端点。这种改进后的 SCAN 算法和 C-SCAN 算法称为 LOOK 调度(见图 5.25)和 C-LOOK 调度(见图 5.26),因为它们在朝一个给定方向移动前会查看是否有请求。
图 5.25 LOOK 磁盘调度算法
图 5.26 C-LOOK 磁盘调度算法
注意,若无特别说明,也可默认 SCAN 算法和 C-SCAN 算法为 LOOK 调度和 C-LOOK 调度。以上四种磁盘调度算法的优缺点见表 5.2。
表 5.2 四种磁盘调度算法的优缺点
[tbl-150.md](tbl-150.md)
## 3. 减少延迟时间的方法
除减少寻道时间外,减少延迟时间也是提高磁盘传输效率的重要因素。
磁盘是连续自转设备,磁头读入一个扇区后,需要经过短暂的处理时间,才能开始读入下一个扇区。若逻辑上相邻的块在物理上也相邻,则读入几个连续的逻辑块可能需要很长的延迟时间。为此,可对一个盘面的扇区进行交替编号[假设盘面有 8 个扇区,见图 5.27(b)],即让逻辑上相邻的块在物理上保持一定的间隔,则读入多个连续块时能够减少延迟时间。
(a)连续编号
(b)交替编号
图 5.27 盘面扇区的交替编号
<!-- page: 357 -->
此外,由于磁盘的所有盘面是同步转动的,逻辑块在相同柱面上也是按盘面号连续存放的,即按0号盘0号扇区、0号盘1号扇区……0号盘7号扇区、1号盘0号扇区……1号盘7号扇区、2号盘0号扇区……的顺序存放。要读入不同盘面上的连续块,如在读完0号盘7号扇区后,还需要一段处理时间,而盘面又在不停地转动,因此当磁头首次划过1号盘0号扇区(下一次要读的块)时并不能读取,只能等磁头再次划过该扇区时才能读取。为此,可对不同的盘面进行错位命名[假设有2个盘面,且已采用交替编号,见图5.28(b)],读完0号盘7号扇区后,还有一段时间处理,当磁头首次划过1号盘0号扇区时能直接读取,从而减少了延迟时间。
0号盘面
(a)普通命名
图5.28 磁盘盘面的错位命名
1号盘面
0号盘面
(b)错位命名
1号盘面
在磁盘的存取时间中,寻道时间和延迟时间属于“找”的时间,凡是“找”的时间都可以通过一定的方法优化,但传输时间是磁盘本身性质所决定的,不能通过一定的措施减少。
## 4. 提高磁盘 I/O 速度的方法
文件的访问速度是衡量文件系统性能最重要的因素,可从以下三个方面来优化:①改进文件的目录结构和检索目录的方法,以减少对目录的查找时间;②选取好的文件存储结构,以提高对文件的访问速度;③提高磁盘 I/O 速度,以实现文件中的数据在磁盘和内存之间快速传送。其中,①和②已在第4章中介绍,这里主要介绍如何提高磁盘 I/O 的速度。
### 创新测试 ▶ 改善磁盘 I/O 性能的方法(2012、2018)
1)采用磁盘高速缓存。上节介绍了磁盘高速缓存的概念。
2)调整磁盘请求顺序。即上面介绍的各种磁盘调度算法。
3)提前读。在读磁盘当前块时,将下一磁盘块也读入内存缓冲区。
4)延迟写。仅在缓冲区首部设置延迟写标志,然后释放此缓冲区并将其链入空闲缓冲区链表的尾部,当其他进程申请到此缓冲区时,才真正将缓冲区信息写入磁盘块。
5)优化物理块的分布。除了上面介绍的扇区编号优化,当文件采用链接方式和索引方式组织时,应尽量将同一个文件的盘块安排在一个磁道或相邻的磁道上,以减少寻道时间。另外,将若干盘块组成簇,按簇对文件进行分配,也可减少磁头的平均移动距离。
6)虚拟盘。是指用内存空间去仿真磁盘,又叫RAM盘。常用于存放临时文件。
7)采用磁盘阵列RAID。因为可以采用并行交叉存取,所以能大幅提高磁盘I/O速度。
## 5.3.4 固态硬盘
### 1. 固态硬盘的特性
固态硬盘(Solid State Disk,SSD)是一种基于闪存技术的存储器。它与U盘并无本质差别,只是容量更大,存取性能更好。一个SSD由一个或多个闪存芯片和闪存翻译层组成,如图5.29所示。闪存芯片替代传统磁盘中的机械驱动器,而闪存翻译层将来自CPU的逻辑块读/写请求翻译成对底层物理设备的读/写控制信号,因此闪存翻译层相当于扮演了磁盘控制器的角色。
<!-- page: 358 -->
图5.29 固态硬盘(SSD)
在图5.29中,一个闪存由 $B$ 块组成,每块由 $P$ 页组成。通常,页的大小是 $512\mathrm{B} \sim 4\mathrm{KB}$,每块由 $32 \sim 128$ 页组成,块的大小为 $16\mathrm{KB} \sim 512\mathrm{KB}$。数据是以页为单位读/写的。以块为单位擦除,只有在一页所属的块整个被擦除后,才能写这一页。一旦一个块被擦除,块中的每个页就都可以直接再写一次。某个块进行了若干重复写后,就会磨损坏,不能再使用。
随机写很慢,有两个原因。首先,擦除块比较慢,通常比访问页高一个数量级。其次,若写操作试图修改一个包含已有数据的页 $P_{t}$,则该块中所有含有用数据的页都必须被复制到一个新(擦除过的)块中,然后才能进行对页 $P_{t}$ 的写操作。
比起传统磁盘,SSD有很多优点,它由半导体存储器构成,没有移动的部件,因此随机访问速度比机械磁盘要快很多,也没有任何机械噪声和震动,能耗更低、抗震性好、安全性高等。
随着技术的不断发展,价格也不断下降,SSD有望逐步取代传统机械硬盘。
## 2. 磨损均衡(Wear Leveling)
固态硬盘也有缺点,闪存的擦写寿命是有限的,一般是几百次到几千次。若直接用普通闪存组装SSD,则实际的寿命表现可能非常令人失望——读/写数据时会集中在SSD的一部分闪存,这部分闪存的寿命会损耗得特别快。一旦这部分闪存损坏,整块SSD也就损坏了。这种磨损不均衡的情况,可能导致一块256GB的SSD只因数兆空间的闪存损坏而整块损坏。
为了弥补SSD的寿命缺陷,引入了磨损均衡。SSD磨损均衡技术大致分为两种:
1)动态磨损均衡。写入数据时,优先选择擦除次数少的新闪存块。老的闪存块先歇一歇。
2)静态磨损均衡。这种技术更为先进,就算没有数据写入,SSD也会监测并自动进行数据分配,让老的闪存块承担以读为主的存储任务。同时让较新的闪存块腾出空间,以承担更多以写为主的存储任务。如此一来,各闪存块的寿命损耗就都差不多。
有了这种算法加持,SSD的寿命就比较可观了。例如,对于一个256GB的SSD,若闪存的擦写寿命是500次,则需要写入125TB数据,才寿终正寝。就算每天写入10GB数据,也要三十多年才能将闪存磨损坏,更何况很少有人每天往SSD中写入10GB数据。
## 5.3.5 本节小结
本节开头提出的问题的参考答案如下。
1)在磁盘上进行一次读/写操作需要哪几部分时间?其中哪部分时间最长?
在磁盘上进行一次读/写操作花费的时间由寻道时间、延迟时间和传输时间决定。其中寻道时间是将磁头移动到指定磁道所需要的时间,延迟时间是磁头定位到某一磁道的扇区(块号)所需要的时间,传输时间是从磁盘读出或向磁盘写入数据所经历的时间。一般来说,寻道时间因为要移动磁头臂,所以占用时间最长。
2)存储一个文件时,当一个磁道存储不下时,剩下部分是存在同一个盘面的不同磁道好。
<!-- page: 359 -->
还是存在同一个柱面上的不同盘面好?
上一问已经说到,寻道时间对于一次磁盘访问的影响是最大的,若存在同一个盘面的不同磁道,则磁头臂势必要移动,这样会大大增加文件的访问时间,而存在同一个柱面上的不同盘面就不需要移动磁道,所以一般情况下存在同一个柱面上的不同盘面更好。
## 5.3.6 本节习题精选
### 一、单项选择题
01. 文件系统和整个磁盘的关系是( )。
A. 没有磁盘就没有文件系统
B. 文件系统的组织信息放在磁盘上,这些信息和代码合在一起形成文件系统
C. 文件系统就是整个磁盘
D. 没有关系
02. 磁盘是可共享设备,但在每个时刻( )作业启动它。
A. 可以由任意多个
B. 能限定多个
C. 至少能由一个
D. 至多能由一个
03. 既可以顺序读/写,又可以按任意次序读/写的存储器有( )。
I. 光盘
II. 磁带
III. U 盘
IV. 磁盘
A. II、III、IV
B. I、III、IV
C. III、IV
D. 仅 IV
04. 磁盘调度的目的是缩短( )时间。
A. 寻道
B. 延迟
C. 传送
D. 启动
05. 下列各种算法中,( )算法和其他算法存在根本的不同。
A. SCAN
B. FCFS
C. C-LOOK
D. CLOCK
06. 磁盘上的文件以( )为单位读/写。
A. 块
B. 记录
C. 柱面
D. 磁道
07. 在磁盘中读取数据的下列时间中,影响最大的是( )。
A. 处理时间
B. 延迟时间
C. 传送时间
D. 寻道时间
08. 硬盘的操作系统引导扇区产生在( )。
A. 对硬盘进行分区时
B. 对硬盘进行低级格式化时
C. 硬盘出厂时自带
D. 对硬盘进行高级格式化时
09. 在磁盘中,每个扇区的头部和尾部都包含一些磁盘控制器的使用信息,如扇区号等,这些磁盘控制器的使用信息是在( )阶段被创建的。
A. 低级格式化
B. 分区
C. 高级格式化
D. 系统引导
10. 在下列有关旋转延迟的叙述中,不正确的是( )。
A. 旋转延迟的大小与磁盘调度算法无关
B. 旋转延迟的大小取决于磁盘空闲空间的分配程序
C. 旋转延迟的大小与文件的物理结构有关
D. 扇区数据的处理时间对旋转延迟的影响较大
11. 当设计针对传统机械式硬盘的磁盘调度算法时,主要考虑下列哪种因素对磁盘 I/O 的性能影响最为显著?( )。
A. 移动磁头的延迟
B. 单个磁盘块的读/写时间
C. 磁盘平均旋转延迟
D. 磁盘最大旋转延迟
12. 下列算法中,用于磁盘调度的是( )。
<!-- page: 360 -->
A. 时间片轮转调度算法
B. LRU 算法
C. 最短寻道时间优先算法
D. 优先级高者优先算法
13. 以下算法中,()可能出现“饥饿”现象。
A. 电梯调度
B. 最短寻道时间优先
C. 循环扫描算法
D. 先来先服务
14. 在以下算法中,()可能随时改变磁头的运动方向。
A. 电梯调度
B. 先来先服务
C. 循环扫描算法
D. 以上答案都不对
15. 假设磁盘有 256 个柱面、4 个磁头(盘面),每个磁道有 8 个扇区(编号均从 0 开始)。文件 A 在磁盘上连续存放。若文件 A 中的一个块存放在 5 号柱面、1 号磁头下的 7 号扇区,则文件 A 的下一块应存放在()。
A. 5 号柱面、2 号磁头下的 7 号扇区
B. 5 号柱面、2 号磁头下的 0 号扇区
C. 6 号柱面、1 号磁头下的 7 号扇区
D. 6 号柱面、1 号磁头下的 0 号扇区
16. 假设磁盘有 100 个柱面,每个柱面上有 8 个磁道,每个磁道有 8 个扇区。文件 A 含有 6400 个逻辑记录,逻辑记录大小与扇区大小一致,该文件以顺序结构的形式存放在磁盘上。文件的第 0 个逻辑记录存放在磁盘地址(0 号柱面、0 号盘面、0 号扇区)中,则磁盘地址(78 号柱面、6 号盘面、6 号扇区)中存放了该文件的第()个逻辑记录。
A. 5045
B. 5046
C. 5047
D. 5048
17. 已知某磁盘的平均转速为 $r$ 秒/转,平均寻道时间为 $T$ 秒,每个磁道可以存储的字节数为 $N$,现向该磁盘读/写 $b$ 字节的数据,采用随机寻道的方法,每道的所有扇区组成一个簇,其平均访问时间是()。
A. $(r + T)b / N$
B. $b / NT$
C. $(b / N + T)r$
D. $bT / N + r$
18. 设磁盘的转速为 3000 转/分,盘面划分为 10 个扇区,则读取一个扇区的时间为()。
A. $20 \mathrm{~ms}$
B. $5 \mathrm{~ms}$
C. $2 \mathrm{~ms}$
D. $1 \mathrm{~ms}$
19. 一个磁盘的转速为 7200 转/分,每个磁道有 160 个扇区,每扇区有 512B,那么理想情况下,其数据传输率为()。
A. $7200 \times 160 \mathrm{KB} / \mathrm{s}$
B. $7200 \mathrm{KB} / \mathrm{s}$
C. $9600 \mathrm{KB} / \mathrm{s}$
D. $19200 \mathrm{KB} / \mathrm{s}$
20. 设一个磁道访问请求序列为 55, 58, 39, 18, 90, 160, 150, 38, 184,磁头的起始位置为 100,若采用 SSTF(最短寻道时间优先)算法,则磁头移动()个磁道。
A. 55
B. 184
C. 200
D. 248
21. 若当前磁头在 67 号磁道,依次有 4 个磁道号请求为 35, 77, 55, 121,则当采用()调度算法时,下一次磁头才可能到达 55 号磁道。
A. 循环扫描(向大磁道号方向移动)
B. 最短寻道时间优先
C. 电梯调度(向小磁道号方向移动)
D. 先来先服务
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
23. 假定磁带的记录密度为 400 字符/英寸($1 \mathrm{in} = 0.0254 \mathrm{~m}$),每条逻辑记录为 80 字符,块间隙(每条逻辑记录之间的间隙)为 0.4 英寸,现有 3000 个逻辑记录需要存储,存储这些记录需要长度为()的磁带,磁带利用率是()。
A. 1500 英寸,33.3%
B. 1500 英寸,43.5%
C. 1800 英寸,33.3%
D. 1800 英寸,43.5%
<!-- page: 361 -->
24. 下列关于固态硬盘(SSD)的说法中,错误的是()。
A. 基于闪存的存储技术
B. 随机读/写性能明显高于磁盘
C. 随机写比较慢
D. 不易磨损
25. 下列关于固态硬盘的说法中,正确的是()。
A. 固态硬盘的写速度比较慢,性能甚至弱于常规硬盘
B. 相比常规硬盘,固态硬盘优势主要体现在连续存取的速度
C. 静态磨损均衡算法通常比动态磨损均衡算法的表现更优秀
D. 写入时,静态磨损均衡算法每次选择使用长期存放数据而很少擦写的存储块
26. 下列关于固态硬盘的说法中,错误的是()。
A. 常规硬盘需要采用磁盘调度算法,而固态硬盘不需要
B. 固态硬盘需要进行磨损均衡,而常规硬盘不需要
C. 反复写同一个块会减少固态硬盘的寿命
D. 磨损均衡机制的目的是加快固态硬盘读/写速度
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
28.【2012 统考真题】下列选项中,不能改善磁盘设备 I/O 性能的是()。
A. 重排 I/O 请求次序
B. 在一个磁盘上设置多个分区
C. 预读和滞后写
D. 优化文件物理块的分布
29.【2015 统考真题】某硬盘有 200 个磁道(最外侧磁道号为 0),磁道访问请求序列为 130,42,180,15,199,当前磁头位于第 58 号磁道并从外侧向内侧移动。按照 SCAN 调度方法处理完上述请求后,磁头移过的磁道数是()。
A. 208
B. 287
C. 325
D. 382
30.【2017 统考真题】下列选项中,磁盘逻辑格式化程序所做的工作是()。
I. 对磁盘进行分区
II. 建立文件系统的根目录
III. 确定磁盘扇区校验码所占位数
IV. 对保存空闲磁盘块信息的数据结构进行初始化
A. 仅 II
B. 仅 II、IV
C. 仅 III、IV
D. 仅 I、II、IV
31.【2018 统考真题】下列优化方法中,可以提高文件访问速度的是()。
I. 提前读
II. 为文件分配连续的簇
III. 延迟写
IV. 采用磁盘高速缓存
A. 仅 I、II
B. 仅 II、III
C. 仅 I、III、IV
D. I、II、III、IV
32.【2018 统考真题】系统总是访问磁盘的某个磁道而不响应对其他磁道的访问请求,这种现象称为磁头臂黏着。下列磁盘调度算法中,不会导致磁头臂黏着的是()。
A. 先来先服务(FCFS)
B. 最短寻道时间优先(SSTF)
C. 扫描算法(SCAN)
D. 循环扫描算法(C-SCAN)
33.【2021 统考真题】某系统中磁盘的磁道数为 200(0~199),磁头当前在 184 号磁道上。用户进程提出的磁盘访问请求对应的磁道号依次为 184, 187, 176, 182, 199。若采用最短
<!-- page: 362 -->
寻道时间优先调度算法(SSTF)完成磁盘访问,则磁头移动的距离(磁道数)是( )。
A. 37
B. 38
C. 41
D. 42
34.【2024 统考真题】某个磁盘的磁道数为 400(磁道号为 0~399),采用循环扫描算法(C-SCAN)进行磁盘调度,完成对 200 号磁道的请求后,磁头向磁道号减小的方向移动。若还有 7 个磁盘请求,对应的磁道号分别为 300, 120, 110, 0, 160, 210, 399,则完成上述磁盘访问请求后磁头移动的距离是( )。
A. 599
B. 619
C. 788
D. 799