问题详情

在UNIX系统中如何将文件的逻辑块号转换为物理盘块号?


时间:2022-01-03 03:08 关键词: 计算机操作系统

答案解析

<p> 寻址方式不同,转换方法也不同。<br> (1)直接寻址,仅当文件的逻辑块号不大于10时采用。如访问对象是字节偏移量9999处的数据。则9999/1024=9余783,则文件逻辑块号9,直接索引地址项i-addr(9)中的块号,其块内偏移地址为783字节处就是文件的9999字节处。<br> (2)一次间址,仅当文件的逻辑块号大于10而不大于10+256时采用。如访问对象是字节偏移量18000处的数据。则18000/1024=17余592,则逻辑块号为10&lt;17&lt;10+256,需要通过一次间接索引方式。先从i-addr(10)中得到一次间址盘块号,再将逻辑盘块号减10,根据一次间址中的逻辑块号得到间址块号地址项的下标,再从中得到最终的物理盘块号。这里的逻辑盘块号17,从i-addr(10)中得到的块号设为428,则17-10=7就是一次间址号,其对应的盘块号就是要找的物理盘块号,块内偏移地址为592处就是文件的18000字节处。<br> (3)多次间址,仅当文件的逻辑块号大于266而不大于64266时采用。如访问对象是字节偏移量420000处的数据。则逻辑块号为266&lt;410&lt;64266,通过二次间址索引。在i-addr(11)中得到一次间址盘块号,再将逻辑盘块号减266,根据一次间址中的逻辑块号得到间址块号地址项的下标,再从中得到二次间址,再找到对应的物理块号,块内偏移地址160处就是文件的420000字节处。</p>