Appearance
题目
在系统内存中设置磁盘缓冲区的主要目的是( )。
错因
B
把缓冲区当成磁盘调度算法了。寻道时间是磁头移动到目标磁道所花的时间,由磁盘调度算法(FCFS、SSTF、SCAN 等)决定——和"内存里有没有缓冲区"无关。缓冲区命中时根本不会去磁盘,谈不上"减少寻道";缓冲区未命中时该走磁头还是走,缓冲区改不了寻道路径。
C
可靠性指数据不丢失——缓冲区反而降低可靠性:写入先到缓冲区,没回盘前掉电就丢数据(典型场景:拔 U 盘前要"安全弹出"就是为了刷缓冲)。把缓冲区当成"备份机制"理解反了。
D
设备无关性是指应用程序不用关心具体设备型号、用统一接口操作(OS 用设备驱动屏蔽差异)——这是设备驱动层 + 设备无关 I/O 层的功能,跟磁盘缓冲区没关系。把"内存里的临时存储"和"屏蔽硬件差异的抽象层"混了。
总解析
磁盘缓冲区(disk buffer / page cache)的工作机制:
应用读 → OS 先查缓冲区
命中 → 直接返回,不访问磁盘
未命中 → 从磁盘读一块到缓冲区,再返回数据
应用写 → 先写到缓冲区
后台异步刷盘(延迟写)主要目的:减少访问磁盘的次数——磁盘 I/O 比内存访问慢 5~6 个数量级,命中缓冲区能省掉一次完整磁盘 I/O;多次写合并刷盘也能省掉中间的 I/O。
| 选项 | 是否磁盘缓冲区的主要目的 | 说明 |
|---|---|---|
| A 减少磁盘 I/O 次数 | ✓ | 缓冲区的核心价值就是命中后不访问磁盘 |
| B 减少寻道时间 | ✗ | 寻道时间归磁盘调度算法管,跟缓冲区无关 |
| C 提高可靠性 | ✗ | 缓冲区降低可靠性(缓存数据掉电会丢) |
| D 设备无关性 | ✗ | 设备无关性是 I/O 软件分层的功能,缓冲区是另一回事 |
速记:缓冲区核心是"用内存抹平磁盘慢"——所有效果(应用看到 read 快返回、多次写合并、提前读、延迟写)都围绕"少跑几次磁盘"。
最终答案是 A。