首页 > 试题广场 >

假设磁盘物理块大小为1KB,并且FAT序号以4bits为单位

[单选题]
文件分配表FAT是管理磁盘空间的一种数据结构,用在以链接方式存储文件的系统中记录磁盘分配和跟踪空白磁盘块。整个磁盘仅设一张FAT表,其结构如下图所示。如果文件块号为2,查找FAT序号为2的内容得知物理块2的后继物理块是5;再查FAT序号为5的内容得知物理块5的后继物理块是7;接着继续查FAT序号为7的内容为“^”,即该文件结束标志,所以该文件由物理块2、5、7组成。

假设磁盘物理块大小为1KB,并且FAT序号以4bits为单位向上扩充空间。请计算下列两块磁盘的FAT最少需要占用多大的存储空间?
1)一块540MB的硬盘
2)一块1.2GB的硬盘
  • 1M 3M
  • 1.2M 3.15M
  • 1.35M   3.6M
  • 1.3M   3.15M
推荐

C
解:(1)由题设条件可知,硬盘大小为540MB且磁盘物理块大小为1KB时,该硬盘共有盘块540MB/1KB = 540K个。
又因为219<540K<220,所以540K个盘块号需要用20位二进制数表示,也即文件分配表FAT的每个表项为20/8=2.5B。所以,540MB磁盘的FAT需占用存储空间容量为:
2.5B×540K=1350KB
(2)当硬盘容量大小为1.2GB时,硬盘共有盘块1.2M个。
又因为220<1.2M <221,所以1.2M个盘块号需要用21位二进制数表示,为了方便FAT的存取,则每个表项用24位(3B)二进制数表示。所以,1.2GB磁盘的FAT需占用存储空间容量为:

3B×1.2M=3.6MB

编辑于 2016-03-25 11:21:32 回复(16)
1B = 8bit
序号只能是4的倍数。
物理块大小1KB,540MB,即540K个分区,计算 2^19 < 540K < 2^20,所以序号是20个bit,且20是4的倍数。每个序号需要20 / 8 = 2.5B的空间存储。
540MB需要540K * 2.5B = 1350KB即1.35M 。

1.2GB,即1200K个分区,2^20 < 1200K < 2^21,也就是需要21个bit才能存储,但是序号只能是4个倍数,所以需要24个bit,也就是3B的空间。
1.2GB需要1200K * 3B = 3600KB即3.6M
发表于 2016-08-12 22:04:15 回复(3)
请问,题都读不懂,还有救吗?
编辑于 2020-04-16 16:38:10 回复(3)
1mb = 1024 kb = 1024*1024 b,所以答案是1.31mb和3.6mb,并不是答案的1.35mb和3.6mb
发表于 2016-12-21 11:43:13 回复(0)
啥头像
先计算序号需要多少位二进制表示,再计算FAT需要的容量

几个注意事项:
        1. FAT序号以4bits为单位向上扩充空间。  是4bit的倍数
        2.KB的B是byte字节,1 byte = 8 bit
发表于 2016-01-06 12:12:41 回复(0)
bit指的位,Byte是存储单位  1B=8bit
1.对于540MB
需要540MB/1KB=540^1000   需要20位对其进行管理20/8=2.5B
2.对于1.2GB  同理需要21位对其进行管理,而题目要求以4bit进行扩展,所以需要扩展到24位
24/8=3B 
发表于 2017-06-12 09:33:57 回复(0)
我觉得主要得理解这一点:bit指的是“位”,Byte是存储单位,1B(Byte)= 8bit;
以4bits向上扩展,要求位数应该是4的倍数, 所以20不用扩展,而21则需要扩展成24位。
20(bit)/8(bit/Byte) = 2.5B(Byte),
24(bit)/8(bit/Byte) = 3B(Byte)
发表于 2016-09-13 15:59:11 回复(0)
A

1)磁盘块大小为1KB,540MB的硬盘可以分成540MB/1KB=5.4*105 个磁盘块,因此FAT至少需要5.4*105 <220 个编号,需要20bit存储空间,即1M

2)同理,1.2G至少需要1.2*106 <221 个编号,为21bit,2M空间,由于FAT序号以4bits为单位向上扩充,因此需要24bit存储空间,

对比选项,A可以满足需求。
发表于 2015-01-12 13:38:46 回复(2)
这个题答案有问题吧,1350K=1.35M?1350/1024=1.31M才对
发表于 2020-03-16 10:16:17 回复(0)
向上扩充空间,不应该是足够的时候不用扩充,不够的时候才要扩充吗?为什么前面很小的序号也要按照20位来计算?
发表于 2019-12-03 15:35:03 回复(1)
540/4=1.35,选C,蒙对了
发表于 2016-10-02 17:20:38 回复(0)
为什么需要4bit向上扩充得到的是一个块1字节呢,不应该是一个块半字节吗
发表于 2025-04-03 15:40:36 回复(0)
(1)总内存对应有多少个内存块
(2)fat存放记录每个磁盘号的需要多少位数(去最大编号的位数)
(3)存放这样一个位数单个需要的空间,存放内存块总数需要的内存空间
发表于 2023-10-19 22:33:20 回复(1)
(当前)磁盘块号 下一磁盘块号
9 13
13 22

我有个疑问,FAT 表中的条目是各有两个字段吗?

每个字段用 20位表示,占 2.5B,那么一个条目不就用 5B 吗?

编辑于 2022-08-03 09:22:26 回复(0)
选项还是有点问题
发表于 2022-03-16 21:17:40 回复(0)
先由磁盘大小和磁盘块大小计算磁盘有多少块,在计算该块数需要多少位的二进制表示,计算出来的位数要是4的整数倍,最后由块数乘以每块的大小。
发表于 2019-03-19 08:14:59 回复(0)