Appearance
题目
现有一个容量为 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。