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