46. 文件 F 由 200 条记录组成,记录从 1 开始编号。用户打开文件后,欲将内存中的一 条记录插入到文件 F 中,作为其第 30 条记录。请回答下列问题,并说明理由。 1)若文件系统采用连续分配方式,每个磁盘块存放一条记录,文件 F 存储区域前后均 有足够的空闲磁盘空间,则完成上述插入操作最少需要访问多少次磁盘块?F 的文件控制块 内容会发生哪些改变? 2)若文件系统采用链接分配方式,每个磁盘块存放一条记录和一个链接指针,则完成 上述插入操作需要访问多少次磁盘块?
时间: 2024-04-02 07:31:19 浏览: 203
1)若文件系统采用连续分配方式,每个磁盘块存放一条记录,文件 F 存储区域前后均有足够的空闲磁盘空间,则完成上述插入操作最少需要访问以下磁盘块:
- 访问第 30 个记录所在的磁盘块,读入该磁盘块的内容到内存中。
- 如果该磁盘块未满,则将该记录插入到该磁盘块中,然后将该磁盘块的内容写回磁盘。
- 如果该磁盘块已经满了,则需要将该磁盘块中的一条记录移到下一个磁盘块中。如果下一个磁盘块未满,则将该记录移到下一个磁盘块中,并将该磁盘块和下一个磁盘块的内容写回磁盘。如果下一个磁盘块也已经满了,则需要继续移动记录,直到找到一个未满的磁盘块为止。
因此,完成上述插入操作最少需要访问 2 到若干个磁盘块。F 的文件控制块内容会发生改变,需要更新文件长度和文件的空闲空间信息。
2)若文件系统采用链接分配方式,每个磁盘块存放一条记录和一个链接指针,则完成上述插入操作需要访问以下磁盘块:
- 访问文件 F 的文件控制块,获取文件 F 的第 30 个记录所在的磁盘块的地址。
- 访问该磁盘块,读入该磁盘块的内容和链接指针到内存中。
- 如果该磁盘块未满,则将该记录插入到该磁盘块中,然后将该磁盘块的内容和链接指针写回磁盘。
- 如果该磁盘块已经满了,则需要分配一个新的磁盘块,并将该记录插入到新的磁盘块中,然后将原来磁盘块的链接指针指向新的磁盘块。最后将新的磁盘块的内容和链接指针写回磁盘。
- 如果需要分配多个新的磁盘块,则需要将新的磁盘块的链接指针指向下一个新的磁盘块,直到分配完所有需要的磁盘块。
因此,完成上述插入操作最少需要访问 1 到若干个磁盘块。F 的文件控制块内容会发生改变,需要更新文件长度和文件的空闲空间信息。
阅读全文