Appearance
题目
为支持 CD-ROM 中视频文件的快速随机播放,播放性能最好的文件数据块组织方式是( )。
错因
B
链式结构里每块靠指针指向下一块——要访问第 N 块必须从头逐链遍历,不支持随机访问。视频跳到第 30 分钟时如果用链式,要从第 1 块开始顺着链跳 30 分钟的块数才到,明显不行。把"链式连续"和"物理连续"混了:链式只是逻辑上有序,物理上块在磁盘上分散。
C
直接索引(每个 inode 直接保存所有数据块的指针)能做随机访问,但比连续结构慢:访问第 N 块要先读 inode 拿到第 N 个指针,再读数据块——多了一次索引查询的 I/O。CD-ROM 是只读介质且文件大小已知,连续结构既能跳着读又免去索引查询,更快。
D
多级索引(inode 直接 + 一级 + 二级间接)支持大文件,但访问开销最大——每多一级就多一次磁盘读。对于"随机播放"这种要快速跳转的场景,多级索引最不利。把"能存大文件"误以为是"播放快",是把容量优势和速度优势搞混了。
总解析
CD-ROM + 视频文件 + 快速随机播放,三个约束指向连续结构:
| 约束 | 含义 | 哪种结构最合适 |
|---|---|---|
| CD-ROM 只读 | 文件不会增长、不需要动态扩展 | 连续结构没问题(缺点是不能扩,但只读不需要扩) |
| 视频文件 | 大文件,且按时间顺序访问为主 | 连续结构顺序读最快(无寻道) |
| 快速随机播放 | 跳到某个时间点要快速定位 | 连续结构:起址 + 块号偏移 → 直接算出物理位置,0 次索引查询 |
各结构对比:
| 结构 | 顺序访问 | 随机访问 | 是否需额外 I/O |
|---|---|---|---|
| 连续 | 最快 | 最快(直接算偏移) | 0 |
| 链式 | 顺着链走 | 不支持(要遍历) | — |
| 直接索引 | 较快 | 较快 | 1(读 inode) |
| 多级索引 | 较快 | 较慢 | 2~3(多级索引块) |
速记:随机访问的"零额外 I/O"只有连续结构能做到——给出文件起址 + 块大小,第 k 块的位置 = 起址 + k × 块大小,一次寻道就到。
CD-ROM 的只读特性正好规避了连续结构的弱点(不能扩展、需预知大小),让它成为视频文件的最优组织方式。
最终答案是 A。