磁盘管理
磁盘管理
1. 考点:磁盘的结构

2. 考点:磁盘的存取时间

3. 考点:移臂调度算法
- 磁盘调度分移臂调度和旋转调度两类,先进行移臂调度(找磁道),然后再进行旋转调度(找扇区) 。
- 由于访问磁盘最耗寻道时间,因此磁盘调度目标是使磁盘平均寻道时间最少。
3.1 常见算法:
- 先来先服务(FCFS)
- 最短寻道时间优先(SSTF)
- 扫描算法(SCAN)
- 循环扫描(CSCAN)算法
注意: 先来先服务和最短寻道时间优先随时会改变移动臂的方向。
4. 考点:FCFS算法

5. 考点:SSTF算法

6. 真题实战
6.1 题目一
题目: 某磁盘磁头从一个磁道移至另一个磁道需要 10ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均移动距离为 10 个磁道,每块的旋转延迟时间及传输时间分别为 100ms 和 2ms,则读取一个 100 块的文件需要( D )ms时间。
A、10200 B、11000 C、11200 D、20200
解析:
读取一个 100 块的文件,每一块(包括第一块)都需要经过寻道时间、旋转延迟和传输时间。
单块平均耗时:
- 平均寻道时间 = 平均移动磁道数 每个磁道移动时间 =
- 旋转延迟时间 =
- 传输时间 =
- 读取单个块的总时间 =
总耗时计算:
- 读取 100 个块的总时间 =
正确答案为 D。
6.2 题目二
题目: 假设磁盘臂位于 15号柱面 上,进程的请求序列如下表所示,如果采用最短移臂调度算法(SSTF),那么系统的响应序列应为( B )。
请求序列 柱面号 磁头号 扇区号 ① 12 8 9 ② 19 6 5 ③ 23 9 6 ④ 19 10 5 ⑤ 12 8 4 ⑥ 28 3 10
选项:
- A、① ② ③ ④ ⑤ ⑥
- B、⑤ ① ② ④ ③ ⑥
- C、② ③ ④ ⑤ ① ⑥
- D、④ ② ③ ⑤ ① ⑥
「解析」
初始磁头位置: 号柱面。
当前磁头在 15:
各请求到 15 的距离:
- ①(12):
- ②(19):
- ③(23):
- ④(19):
- ⑤(12):
- ⑥(28):
最小距离为 3,对应请求 ⑤(柱面 12)和 ①(柱面 12)。根据选项特征(以 ⑤ 开头),我们先服务 ⑤。
当前磁头移动到 12(已服务 ⑤):
剩余请求到 12 的距离:
- ①(12):
- ②(19):
- ③(23):
- ④(19):
- ⑥(28):
最小距离为 0,服务 ①(柱面 12)。
当前磁头停留在 12(已服务 ①):
剩余请求到 12 的距离:
- ②(19):
- ③(23):
- ④(19):
- ⑥(28):
最小距离为 7,对应 ② 和 ④。按原请求序列顺序,先服务 ②(柱面 19)。
当前磁头移动到 19(已服务 ②):
剩余请求到 19 的距离:
- ③(23):
- ④(19):
- ⑥(28):
最小距离为 0,服务 ④(柱面 19)。
当前磁头停留在 19(已服务 ④):
剩余请求到 19 的距离:
- ③(23):
- ⑥(28):
最小距离为 4,服务 ③(柱面 23)。
当前磁头移动到 23(已服务 ③):
剩余请求:
- ⑥(28):
最后服务 ⑥(柱面 28)。
正确答案选 B。
6.3 题目三
题目: 在磁盘上存储数据的排列方式会影响 I/O 服务的总时间。假设每个磁道被划分成 10 个物理块,每个物理块存放 1 个逻辑记录。逻辑记录 R1, R2, ..., R10 存放在同一个磁道上,记录的排列顺序如下表所示:
物理块 1 2 3 4 5 6 7 8 9 10 逻辑记录 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 假定磁盘的旋转速度为 10ms/周,磁头当前处在 R1 的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为 2ms,则处理这 10 个记录的最长时间为( )。若对存储数据的排列顺序进行优化,处理 10 个记录的最少时间为( )。
第一组选项:
- A、30ms
- B、60ms
- C、94ms
- D、102ms
第二组选项:
- A、30ms
- B、60ms
- C、94ms
- D、102ms
【解析】
正确答案:第一空选 D,第二空选 A。
解析说明:
磁盘参数:
- 旋转速度:10ms/周。
- 共 10 个物理块,每个物理块的读取时间为 10÷10=1ms。
- 每个记录的处理时间为 2ms。
第一空:最长时间为( D )
【示意图】
对于 R1:磁头位于 R1 开始处,读取 R1 花费 1ms,处理 R1 花费 2ms。处理完 R1 后,磁头已经旋转到 R4 的开始处(经过 3ms)。
接下来需要读取 R2,但 R2 的开始处已经错过,需要等待磁头旋转一周回到 R2 的开始处。从 R4 到 R2 需要经过 8 个物理块,即 8×1=8ms。
因此,处理 R2 需要:等待 8ms + 读取 1ms + 处理 2ms = 11ms。
同理,后续 R3~R10 每个都需要 11ms。
总时间 = R1 的时间(1+2=3ms) + 后续 9 个记录的时间(9×11=99ms) = 102ms。
第二空:最少时间为( A )
【示意图】
优化磁盘排列顺序,使得磁头在处理完当前记录后,正好转到下一个记录的开始处。
优化后的排列顺序(如:R1, R8, R5, R2, R9, R6, R3, R10, R7, R4)。
每个记录的读取和处理共计 3ms,且无需等待磁头移动。
总时间 = 10×3=30ms。
正确答案:第一空 D(102ms),第二空 A(30ms)。


