UNIX System V系统为使文件的索引表较小,又能允许组织大文件,采用直接索引与多次间接索引(多级索引)方式,假设每个磁盘块大小为1024个字节,并且每个间接块容纳256个块号,试问 1.直接索引、一次间接、二次间接、三次间接 所能访问的文件大小分别为多少块? 2某进程要访问字节偏移量为9000、18000和 350000处的数据,应该如何找到它所在磁盘块及其块内位移量? 3.画出简单的示意图。
时间: 2024-02-18 19:01:34 浏览: 19
1. 直接索引可以访问的文件大小为10个磁盘块,一次间接可以访问的文件大小为256x1024个字节,即256个磁盘块,二次间接可以访问的文件大小为256x256x1024个字节,即65536个磁盘块,三次间接可以访问的文件大小为256x256x256x1024个字节,即16777216个磁盘块。
2. 假设某文件的起始块号为B,每个磁盘块的大小为1024个字节。字节偏移量为9000的数据所在的磁盘块可以通过直接索引访问,其块号为B+8。字节偏移量为18000的数据所在的磁盘块可以通过一次间接索引访问,其块号为一次间接块的块号加上(18000/1024)-8,即B+264。字节偏移量为350000的数据所在的磁盘块可以通过二次间接索引访问,其块号为二次间接块的块号加上(350000/1024-8-256x(1024/1024))/256,即B+16968。
3. 示意图如下:
```
+-------------------+-------------------+-------------------+-------------------+
| 直接索引块号 0 | 直接索引块号 1 | 直接索引块号 2 | 直接索引块号 3 |
+-------------------+-------------------+-------------------+-------------------+
| 直接索引块号 4 | 直接索引块号 5 | 直接索引块号 6 | 直接索引块号 7 |
+-------------------+-------------------+-------------------+-------------------+
| 直接索引块号 8 | 直接索引块号 9 | 一次间接块号 | 直接索引块号 11 |
+-------------------+-------------------+-------------------+-------------------+
| 直接索引块号 12 | 直接索引块号 13 | 直接索引块号 14 | 直接索引块号 15 |
+-------------------+-------------------+-------------------+-------------------+
| 直接索引块号 16 | 直接索引块号 17 | 直接索引块号 18 | 直接索引块号 19 |
+-------------------+-------------------+-------------------+-------------------+
| 直接索引块号 20 | 直接索引块号 21 | 直接索引块号 22 | 直接索引块号 23 |
+-------------------+-------------------+-------------------+-------------------+
| 二次间接块号 | 一次间接块号 | 直接索引块号 26 | 直接索引块号 27 |
+-------------------+-------------------+-------------------+-------------------+
| 直接索引块号 28 | 直接索引块号 29 | 直接索引块号 30 | 直接索引块号 31 |
+-------------------+-------------------+-------------------+-------------------+
| 直接索引块号 32 | 直接索引块号 33 | 直接索引块号 34 | 直接索引块号 35 |
+-------------------+-------------------+-------------------+-------------------+
| 直接索引块号 36 | 直接索引块号 37 | 直接索引块号 38 | 直接索引块号 39 |
+-------------------+-------------------+-------------------+-------------------+
```