(8分)文件F 由200条记录组成,记录从1开始编号。用户打开文件后,欲将内存中的一条记录插 入文件F 中,作为其第30条记录。请回答下列问题,并说明理由。
(1)若文件系统采用连续分配方式,每个磁盘块存放一条记录,文件F 存储区域前后均有足够的空闲磁盘 空间,则完成上述插入操作最少需要访问多少次磁盘块? F 的文件控制块内容会发生哪些改变?
(2)若文件系统采用链接分配方式,每个磁盘块存放一条记录和一个链接指针,则完成上述插入操作需要 访问多少次磁盘块?若每个存储块大小为1KB, 其中4B存放链接指针,则该文件系统支持的文件最大长 度是多少?
[tag_link]
1)系统采用顺序分配方式时,插入记录需要移动其他的记录块,整个文件共有 200 条记录,要插入新记录作为第 30 条,而存储区前后均有足够的磁盘空间,且要求最少的访问存储块数,则要把文件前 29 条记录前移,若算访盘次数移动一条记录读出和存回磁盘各是一次访盘,29 条记录共访盘 58 次,存回第 30 条记录访盘 1 次,共访盘 59 次。(1 分)
F 的文件控制区的起始块号和文件长度的内容会因此改变。(1 分)
2)文件系统采用链接分配方式时,插入记录并不用移动其他记录,只需找到相应的记录,修改指针即可。插入的记录为其第 30 条记录,那么需要找到文件系统的第 29 块,一共需要访盘 29 次,然后把第 29 块的下块地址部分赋给新块,把新块存回内存会访盘 1 次,然后修改内存中第 29 块的下块地址字段,再存回磁盘(1 分),一共访盘 31 次。(1 分)
4 字节共 32 位,可以寻址 2^32=4G 块存储块,每块的大小为 1KB,即 1024B,其中下块地址部分占 4B,数据部分占 1020B,那么该系统的文件最大长度是 4G×1020B=4080GB。(2 分)
【评分说明】①第 1 小题的第 2 小问,若答案中不包含文件的起始地址和文件大小,则不给分。 ②若按 1024×232B=4096GB 计算最大长度,给 1 分。