【题目】
46.(7分)文件F由200条记录组成,记录从1开始编号。用户打开文件后,欲将内存中的一条记录插入到文件F中,作为其第30条记录。请回答下列问题,并说明理由。
(1)若文件系统采用连续分配方式,每个磁盘块存放一条记录,文件F存储区域前后均有足够的空闲磁盘空间,则完成上述插入操作最少需要访问多少次磁盘块?F的文件控制块内容会发生哪些改变?
(2)若文件系统采用链接分配方式,每个磁盘块存放一条记录和一个链接指针,则完成上述插入操作需要访问多少次磁盘块?若每个磁盘块大小为1 KB,其中4个字节存放链接指针,则该文件系统支持的文件最大长度是多少?
【答案】:
(1)向前移动文件的前29条记录,每条记录读写各1次,腾出一个磁盘块空间,以将该记录插入到此磁盘块作为文件的第30条记录。故需要磁盘访问的次数为:29×2+1=59次。文件控制块中文件的起始地址和文件大小发生了变化。
(2)采用链接分配方式存储文件F,需要读文件的前29块的链接指针(共读29次),在第29块内找到指向原第30块的链接指针。再为该记录分配一个空闲磁盘块,将该记录及第29块内保存的链接指针写入其中,将该块写到磁盘(写1次)。最后修改第29块的链接指针,指向新的插入块,并将第29块写回磁盘(写1次)。故需要磁盘访问的次数:29+2=31次。该文件系统支持的文件最大长度是: