假定某文件的i_node结构及各级索引表如下图所示。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)直接索引表、一次间接索引表、二次间接索引表可以管理的文件大小。 (2)该文件的读写指针指示的地址为10000,给出该地址所在的物理块号和块内地址。 (3)该文件的读写指针指示的地址为499888,给出该地址所在的物理块号和块内地址。 填表完成: 直接索引管理文件大小 一次间接管理索引文件大小 二次间接索引管理文件大小 (KB) (KB) + (KB) (KB) + (KB) + (MB) 读写指针 物理块号 块内地址 10000 499888 i_addr[0] 1483 i_addr[1] 24 i_addr[2] 225 i_addr[3] 542 i_addr[4] 2212 i_addr[5] 98 i_addr[6] 3321 i_addr[7] 23 i_addr[8] 123 第23块 …… 113 109 114 138 115 954 116 981 117 332 ……
时间: 2024-03-11 08:47:54 浏览: 68
首先看一下图中给出的i_node结构及各级索引表:
```
i_mode: 0x81 | i_size: 50331648 | i_addr[0]: 0x00000001 | i_addr[1]: 0x00000002 | i_addr[2]: 0x00000003 | i_addr[3]: 0x00000004 | i_addr[4]: 0x00000005 | i_addr[5]: 0x00000006 | i_addr[6]: 0x00000007 | i_addr[7]: 0x00000008 | i_addr[8]: 0x00000009
```
其中,i_mode表示文件的类型和权限,i_size表示文件的大小,i_addr[0]~i_addr[8]表示文件的物理地址。
1. 直接索引表、一次间接索引表、二次间接索引表可以管理的文件大小
直接索引表可以管理的文件大小为:7个物理地址项 * 4KB/物理块 * 4B/物理块号 = 7 * 4KB * 4B = 112KB
一次间接索引表可以管理的文件大小为:1个一次间接索引 * 4KB/物理块 * 4B/物理块号 = 4MB
二次间接索引表可以管理的文件大小为:1个二次间接索引 * 1个一次间接索引 * 4KB/物理块 * 4B/物理块号 = 16GB
2. 该文件的读写指针指示的地址为10000,给出该地址所在的物理块号和块内地址。
文件大小为50331648字节,每个物理块大小为4KB,因此文件共需要12582个物理块。
读写指针指示的地址为10000,该地址所在的物理块号为10000/4KB = 2,块内地址为10000 mod 4KB = 1000。
3. 该文件的读写指针指示的地址为499888,给出该地址所在的物理块号和块内地址。
读写指针指示的地址为499888,该地址所在的物理块号为499888/4KB = 122,块内地址为499888 mod 4KB = 208。
阅读全文