问答题 存放在某个磁盘上的文件系统,采用混合索引分配方式。某FCB中共有23个地址项,第0~9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。如果每个盘块的大小为512字节,若盘块号需要用3个字节来描述,而每个盘块最多存放170个盘块地址。
(1)该文件系统允许文件的最大长度是多少?
(2)将文件的字节偏移盘5000,15000,150000转换为物理块号和块内偏移量。
(3)假设某个文件的FCB已在内存,但其他信息均在外存,为了访问该文件中某个位置的内容,最少需要几次访问磁盘?最多需要几次访问磁盘?
【正确答案】
【答案解析】在混合索引分配方式中,FCB的直接地址中登记有分配给文件的前n块(第0到n-i块)的物理块号(n的大小由直接地址项数决定,本题中为10);一次间址中登记有一个一次间址块的块号,而在一次间址块中则登记有分配给文件的第n到n+k-1块的块号(k的大小由盘块大小和盘块号的长度决定,本题中为170);二次间址中登记有一个二次间址块的块号,其中可给出k2个一次间址块的块号,而这些一次间址块则被用来登记分配给文件的第n+k块到第n+k+k2-1块的块号;三次间址中则登记有一个三次间址块的块号,其中可给出k个二次间址块的块号,这些二次间址块又给出k3个一次间址块的块号,而这些一次间址块则被用来登记分配给文件的第n+k+k2块到第n+k+k2+k3-1块的物理块号。
(1)该文件系统中一个文件的最大长度可达:
10+170+170×170+170×170×170=4942080(块)
4942080×512B=2471040KB
(2)5000/512得到商为9,余数为392,即字节偏移量5000对应的逻辑块号为9,块内偏移量为392。由于9<10,故可直接从该文件的。FCB的第9个地址项处得到物理盘块号,块内偏移量为392。
15000/512得到商为29,余数为152,即字节偏移量15000对应的逻辑块号为29,块内偏移量为152。由于10<29<10+170,而29-10=19,故可从FCB的第10个地址项,即一次间址项中得到一次间址块的地址,并从一次间址块的第19项(即该块的第57~59这3个字节)中获得对应的物理盘块号,块内偏移量152。
150000/512得到商为292,余数为496,即字节偏移量150000对应的逻辑块号为292,块内偏移量为496。由于10+170<292<10+170+170×170,而292-(10+170)=112,112/170得到商为0,余数为112,故可从FCB的第11个地址项,即二次间址项中得到二次间址块的地址,并从二次间址块的第112项获得一个一次间址块的地址,再从这一次间址块的第112项中获得对应的物理盘块号,块内偏移量为496。
(3)由于文件的FCB已在内存,为了访问文件中某个位置的内容,最少需要一次访问磁盘(即可通过直接地址直接读文件盘块),最多需要四次访问磁盘(第一次是读三次间址块,第二次是读二次间址块,第三次是读一次间址块,第四次是读文件盘块)。