一、 经典题目实战
题目:
在磁盘调度管理中,应先进行移臂调度,再进行旋转调度。假设磁盘移动臂位于 21 号柱面上,进程的请求序列如下表所示。如果采用最短移臂调度算法(SSTF),那么系统的响应序列应为( )。
| 请求序列 | 柱面号 | 磁头号 | 扇区号 |
|---|---|---|---|
| ① | 17 | 8 | 9 |
| ② | 23 | 6 | 3 |
| ③ | 23 | 9 | 6 |
| ④ | 32 | 10 | 5 |
| ⑤ | 17 | 8 | 4 |
| ⑥ | 32 | 3 | 10 |
| ⑦ | 17 | 7 | 9 |
| ⑧ | 23 | 10 | 4 |
| ⑨ | 38 | 10 | 8 |
选项:
A. ②⑧③④⑤①⑦⑥⑨
B. ②③⑧④⑥⑨①⑤⑦
C. ①②③④⑤⑥⑦⑧⑨
D. ②⑧③⑤⑦①④⑥
二、 核心解析:SSTF 算法逻辑
1. 算法原则
- 移臂调度(SSTF) :磁头始终选择距离当前柱面位置最近的下一个柱面。
- 旋转调度:当磁头到达指定柱面后,由于磁盘在匀速旋转,磁头会按照扇区号从小到大的顺序依次处理请求(因为扇区是排队经过磁头的)。
2. 推导过程
- 初始位置:柱面 21。
- 第一站:柱面 23(距离 21 最近,距离为 2)。该柱面有请求 ②(扇区3)、③(扇区6)、⑧(扇区4)。按扇区顺序处理:② → ⑧ → ③。
- 第二站:柱面 17(当前在 23,距离 17 最近,距离为 6)。该柱面有请求 ①(扇区9)、⑤(扇区4)、⑦(扇区9)。按扇区顺序处理:⑤ → ⑦ → ①。
- 第三站:柱面 32(当前在 17,距离 32 最近,距离为 15)。该柱面有请求 ④(扇区5)、⑥(扇区10)。处理顺序:④ → ⑥。
- 第四站:柱面 38。最后处理请求 ⑨。
最终答案:D
三、 深度问答:拆解磁盘物理结构
为了彻底理解这道题,我们需要理解磁盘的“潜规则”。以下是关于磁盘硬件与调度的逻辑整理:
1. 磁盘的“坐标系”:柱面、磁头、扇区
-
柱面(Cylinder) :磁盘由多层盘片组成,半径相同的磁道叠加在一起形成柱面。它是磁头“横向移动”到达的位置。
-
磁头(Head) :每个盘面对应一个磁头。它决定了你在哪一层盘片上读写。
-
扇区(Sector) :磁道上的最小数据单位。磁盘像传送带一样旋转,扇区就是传送带上的格子。
- 科普:一个扇区通常代表 512 字节 或 4KB 的数据。
2. 调度算法的“潜逻辑”
-
为什么先移臂,再旋转?
移动机械臂(寻道)是机械运动,速度最慢;盘片旋转虽然也慢,但比移臂快。所以先定大位置(柱面),再定小位置(扇区)。
-
为什么扇区按号码排序?
因为磁盘旋转方向固定,扇区 1 过去后紧跟着就是扇区 2。为了效率,磁头会顺着旋转方向“顺手”把路过的扇区都读了。
-
如果两个柱面距离一样近怎么办?
通常会参考磁头的移动方向(电梯算法/SCAN),或者按请求的先后顺序(FCFS)来决定。
3. 物理与逻辑的界限:C 盘、D 盘与真实磁盘
-
电脑里的磁盘:那是硬件实体(HDD 或 SSD)。
-
C 盘/D 盘:这是逻辑分区。就像把一个大仓库(物理磁盘)用围栏隔成了不同的房间。
-
重装系统为什么不丢 D 盘数据?
重装系统通常只清空 C 盘对应的“房间目录”,而磁头在操作时,严格被限制在 C 盘对应的柱面范围内,不会跨界影响到 D 盘。
四、 总结:从机械时代到固态时代
虽然现代电脑多使用 SSD(固态硬盘) ,它内部没有旋转盘片和机械臂,因此像 SSTF 这样的算法在 SSD 上已经不再适用(因为 SSD 访问任何地址的速度都几乎一样快)。
但是,学习 SSTF 依然重要,因为它代表了资源调度优化的核心思想:如何以最低的代价(移动距离最小)完成最多的任务。
博主结语: 每一个比特(Bit)的读取,背后都是一场微秒级的机械与电力的交响乐。