Skip to content

2014年 408 操作系统 第 27 题

操作系统2014年选择题2分

题目

现有一个容量为 10GB 的磁盘分区,磁盘空间以簇 (Cluster) 为单位进行分配,簇的大小为 4KB,若采用位图法管理该分区的空闲空间,即用一位 (bit) 标识一个簇是否被分配,则存放该位图所需簇的个数为( )。

错因

B

把 320KB 这个位图字节数直接当成了"簇数"——漏掉最后一步"位图占多少个簇"。位图的字节数 ≠ 簇数,还得再除以簇大小(4KB):320KB / 4KB = 80 簇。停在中间结果 320 上是这道题最常见的失误。

C

直接把"簇数"想成了"位数"——2.5M 个簇对应 2.5M 位,但 K = 1024 ≠ 1000,且 2.5M 位需要除以 8 得到字节再除以 4KB 得到簇数。把"位数 = 簇数"当结论会得到 80K 这种凑数答案。

D

可能是把 2.5M 位直接当成 320K 字节再当簇数,漏除了最后一步、且单位换算多了一次 K。本质是单位混乱:位、字节、KB、簇没分清各自该除什么。

总解析

位图管理空闲块:每位对应 1 簇,1=已用、0=空闲(或反过来)。问题转化为"位图本身要多少簇来存"。分四步:

第 1 步:算总簇数

(这里 M 表示 ,K 表示

第 2 步:算位图位数

每簇 1 位 → 位图共 2.5M 位

第 3 步:位 → 字节

验算:,乘 8 得 位 =

第 4 步:字节 → 簇数

每簇 4KB:

中间量数值
总簇数2.5M(即 个)
位图位数2.5M bit
位图字节数320KB
位图占簇数80

最终答案是 A

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题