Skip to content

2024年 408 操作系统 第 26 题

操作系统2024年选择题2分

题目

文件系统需要额外的外存空间记录空闲块的位置,占用外存空间大小与当前空闲块数量无关的是( )。

错因

B

没仔细想空闲表的结构。"空闲表"不是"剩多少块"的单一计数器,而是按连续空闲分区逐项登记的表(结构类似分区表,每条 <起始块号, 长度>):碎片越多 → 表项越多 → 占用越大。当磁盘有 100 个零散空闲块(散在不同位置)时,表项数 ≈ 100;100 个连续空闲块时表项 = 1。表大小随空闲分区数量变化,不固定。

C

误以为成组链接"组数固定"或"只用一个链表头"。成组链接每组容量固定(如 100 块号),但总组数 = ⌈空闲块数 / 100⌉——空闲块越多组数越多。OS 主存里只缓存当前组(节省内存),但外存里所有组都要保存,占用空间随空闲块总数线性增长。

D

误以为空闲链表的指针只占"几字节可以忽略"。题目问"占用外存空间大小"——空闲块越多,链上节点越多,记录指针字段(即便借用每个空闲块的前几字节)总数也越多。占用与空闲块数量正相关,不是定值。

总解析

判定思路:四种空闲空间管理方法逐一分析"管理结构本身的大小"和"空闲块数量"的关系。

方法数据结构占用空间随什么变化
位示图(A)一个 bit/块的位图(每个磁盘块对应一位 0/1)取决于磁盘总块数(固定),与当前空闲块数无关
空闲表(B)表项 <起始块号, 长度>,每个连续空闲区一条取决于空闲分区数量(碎片越多表越大)
成组链接(C)每组若干(如 100 个)空闲块号链成一组,组间链接取决于空闲块总数(块多组多)
空闲链表(D)每个空闲块开头存下一块的指针,连成链取决于空闲块总数(块多链长)

核心区分

  • 位示图描述"哪些块空闲"——是一张关于磁盘整体的全局位图,磁盘多大它就多大
  • B/C/D 描述"目前还有哪些块空闲"——动态维护剩余空闲块的索引,剩多少 → 结构多大

位示图大小可量化

  • 设磁盘共 N 个块,位图占用 字节
  • 例:磁盘有 个块,位图占 字节 = 128 KB(固定)
  • 无论 0 个块空闲还是全部空闲,位图大小都是 128 KB——变的是 0/1 位的内容,不是位图大小

速记

类型大小决定者
位示图磁盘总容量
空闲表碎片数
成组链接 / 空闲链表当前空闲块数

只有位示图与空闲块数量无关

最终答案是 A

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数