如果一个文件存放在 100 个数据块中,FCB、FAT、索引块或索引信息等都驻留在内存中。在下面几种情况下,分别需要做几次磁盘 I/O 操作? (1)采用连续分配方式,将最后一个数据块搬到文件头部 ; (2)采用单级索引分配方式,将最后一个数据块搬到文件头部 ; (3)采用显式链接分配方式,将最后一个数据块搬到文件头部 ; (4)采用隐式链接分配方式,将首个数据块搬到文件尾部。
时间: 2024-03-04 16:53:20 浏览: 302
对于每种情况,需要进行的磁盘 I/O 操作次数如下:
(1)连续分配方式将最后一个数据块搬到文件头部需要进行 2 次磁盘 I/O 操作。第一次是更新 FAT 表,将最后一个数据块的下一个数据块的地址改为文件头部;第二次是将最后一个数据块的内容搬移到文件头部。
(2)单级索引分配方式将最后一个数据块搬到文件头部需要进行 3 次磁盘 I/O 操作。第一次是更新 FCB 中的索引块地址,将索引块的地址改为文件头部;第二次是读取索引块,找到最后一个数据块的地址;第三次是更新索引块,将最后一个数据块的地址改为文件头部。
(3)显式链接分配方式将最后一个数据块搬到文件头部需要进行 3 次磁盘 I/O 操作。第一次是读取 FCB 中的索引信息,找到最后一个数据块的地址;第二次是读取最后一个数据块,将它的下一个数据块地址改为文件头部;第三次是更新 FCB 中的索引信息,将最后一个数据块的地址改为文件头部。
(4)隐式链接分配方式将首个数据块搬到文件尾部需要进行 2 次磁盘 I/O 操作。第一次是更新首个数据块的内容,将它的下一个数据块地址改为文件尾部;第二次是更新 FCB 中的文件长度信息,将文件长度加上一个数据块大小。
相关问题
回答下面问题5、某文件系统,(1)未引入索引节点机制时,假如一个FCB为64B,盘块大小为1KB,则每个盘块可存放 个FCB,640个FCB的目录文件,需占 个盘块,平均查找一个文件调入盘块(40+1)/2= 次(保留整数);(2)引入索引节点机制后,假如一个FCB为8B,一个inode节点为64B,则每个盘块可存放 个inode,对于640个FCB的目录文件,需占 个盘块,640个inode节点信息文件,需占 个盘块,平均查找一个文件调入盘块 次(保留整数);
根据题意,我们可以得出以下计算过程和答案:
(1)未引入索引节点机制时:
- 每个盘块可存放 1KB/64B = 16 个 FCB。
- 640 个 FCB 的目录文件,需占 640/16 = 40 个盘块。
- 平均查找一个文件调入盘块 (40+1)/2 = 20.5 次,向下取整得到答案为 20 次。
(2)引入索引节点机制后:
- 每个盘块可存放 1KB/64B = 16 个 inode。
- 对于 640 个 FCB 的目录文件,需占 640/16 = 40 个盘块。
- 640 个 inode 节点信息文件,需占 (640*8B)/1024B = 5 个盘块。
- 平均查找一个文件调入盘块 (5+1)/2 = 3 次。
综上所述,答案为:
- 每个盘块可存放 16 个 FCB,640 个 FCB 的目录文件需占 40 个盘块,平均查找一个文件调入盘块 20 次。
- 每个盘块可存放 16 个 inode,对于 640 个 FCB 的目录文件需占 40 个盘块,640 个 inode 节点信息文件需占 5 个盘块,平均查找一个文件调入盘块 3 次。
存放在某个磁盘上的文件系统,采用混合索引分配方式,其FCB中共有13个地址项,第0~9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。如果每个盘块的大小为512字节,若盘块号需要用3个字节来描述,而每个盘块最多存放170个盘块地址: (1)该文件系统允许文件的最大长度是多少? (2)将文件的字节偏移量5000、15000转换为物理块号和块内偏移量。 (3)假设文件的FCB已在内存,为了访问文件中某个位置的内容,最少需要访问几次磁盘,最多需要访问几次磁盘?
根据题意,我们可以得出以下计算过程和答案:
(1)该文件系统允许文件的最大长度:
- 直接地址可以表示的盘块数为 10 个,每个盘块最多存放 170 个盘块地址,因此直接地址可以表示的最大文件大小为 10 * 170 * 512B = 870400B。
- 一次间接地址可以表示的盘块数为 170 个,每个盘块最多存放 170 个盘块地址,因此一次间接地址可以表示的最大文件大小为 170 * 170 * 512B = 14745600B。
- 二次间接地址可以表示的盘块数为 170 * 170 个,每个盘块最多存放 170 个盘块地址,因此二次间接地址可以表示的最大文件大小为 170 * 170 * 170 * 512B = 2520476160B。
- 三次间接地址可以表示的盘块数为 170 * 170 * 170 个,每个盘块最多存放 170 个盘块地址,因此三次间接地址可以表示的最大文件大小为 170 * 170 * 170 * 170 * 512B = 429483622400B。
- 因此,文件系统允许文件的最大长度为 429483622400B。
(2)将文件的字节偏移量 5000、15000 转换为物理块号和块内偏移量:
- 对于字节偏移量 5000,物理块号为 5000 / 512 = 9,块内偏移量为 5000 % 512 = 232。
- 对于字节偏移量 15000,物理块号为 15000 / 512 = 29,块内偏移量为 15000 % 512 = 208。
(3)为了访问文件中某个位置的内容,最少需要访问几次磁盘,最多需要访问几次磁盘?
- 当文件中的某个位置对应的盘块在内存中时,最少只需要访问 1 次磁盘;最多需要访问直接地址、一次间接地址、二次间接地址和三次间接地址共 4 次磁盘。如果文件中的某个位置对应的盘块不在内存中,则需要先将相应的盘块调入内存,再进行访问,此时需要访问的磁盘次数会更多。
相关推荐
















