题目来源于王道论坛
某磁盘文件系统使用链接分配方式组织文件,簇大小为4KB。目录文件的每个目录项包括文件名和文件的第一个簇号,其他簇号存放在文件分配表FAT中。
(1)假定目录树如下图所示,各文件占用的簇号及顺序如下表所示,其中dir、dir1是目录,file1、file2是用户文件。请给出所有目录文件的内容。
(2)若FAT的每个表项仅存放簇号,占2个字节,则FAT的最大长度为多少字节?该文件系统支持的文件长度最大是多少?
(3)系统通过目录文件和FAT实现对文件的按名存取,说明file1的106、108两个簇号分别存放在FAT的哪个表项中。
(4)假设仅FAT和dir目录文件已读入内存,若需将文件dir/dir1/file1的第5000个字节读入内存,则要访问哪几个簇?
解答:
【评分说明】每个目录项的内容正确给1分,共3分。
(2)由于FAT的簇号为2个字节,即16比特,因此在FAT表中最多允许216(65536)个表项,一个FAT文件最多包含216(65536)个簇。FAT的最大长度为216×2B=128KB。(1分)文件的最大长度是216×4B=256MB。(1分)
【评分说明】若考生考虑到文件结束标志、坏块标志等,且答案正确,同样给分。
(3)在FAT的每个表项中存放下一个簇号。file1的簇号106存放在FAT的100号表项中,(1分)簇号108存放在FAT的106号表项中。(1分)
(4)先在dir目录文件里找到dir1的簇号,然后读取48号簇,得到dir1目录文件,接着找到file1的第一个簇号,据此在FAT里查找file1的第5000个字节所在的簇号,最后访问磁盘中的该簇。因此,需要访问目录文件dir1所在的48号簇,(1分)及文件file1的106号簇。(1分)