在某个采用混合索引分配的文件系统中, FCB 中有 i_addr[0 ] ~ i_addr[8 ] 共 9 个物理地址项,其中 i_addr[0 ] ~ i_addr[6 ] 是 7 个直接地址项, i_addr[7 ] 是 1 个一次间址项, i_addr[8 ] 是 1 个二次间址项。如果一个盘块的大小是 4KB ,每个盘块号占 4 个字节。请写出将下列文件的字节偏移量转换成物理地址的过程:
( 1 ) 10000 ;( 2 ) 500000 。( 1 ) 10000/4096=2 … 1808
因此字节偏移量 10000 位于逻辑块 2 偏移为 1808 字节的位置。
2<7 ,应采用直接地址来进行地址转换,逻辑块 2 对应的物理块号登记在 i_addr[2] 中。
所以, 10000 对应的物理地址是 i_addr[2] 块的 1808 字节。
( 2 ) 500000/4096=122 … 288
因此字节偏移量 500000 位于逻辑块 122 偏移为 288 字节的位置。
7<=122<7+1K ,应采用一次间址的方式来进行地址转换。
所以,应从 i_addr[7] 中获得一次间址块的物理块号 a ,并将第 a 块读入内存。然后便可在一次间址块 a 的第 115 项中获得逻辑块 122 的物理块号 b 。块内偏移仍然为 288 字节。