第5章文件管理思考与练习题8.磁盘空闲空间的管理可以采用空闲表和位示图。假设盘块号需要用D位来表示,磁盘有B个块,其中有F个空闲块。在什么条件下,空闲表所占用的磁盘空间少于位示图?解答:根据题意:空闲块占用空间=F*D位示图占用空间=B要使空闲块占用空间位示图占用空间即:F*DBB/FD当磁盘总块数与空闲块数的比值大于盘块号需要的位数D时空闲表所占用的磁盘空间少于位示图。9.在删除文件时,文件占用的磁盘块被系统放入空闲链中,但块中的数据不被清除。你认为操作系统是否应该在释放文件空间前将其中的数据清除?请从安全和性能两方面考虑,并解释各自的影响。解答:从性能看,数据不被清除好,因为这样删除文件的速度快。从安全角度看,数据不被清除不好,因为这样可能给某些蓄意用户窃取别人文件中的数据的机会。10.一种避免磁盘空间浪费的分配方案是,为文件分配的簇的大小随文件的增长而增加。例如,开始时,簇的大小是一块,在以后每次分配时簇的大小翻倍。考虑有n个记录的文件,一个块中期望的记录数为F,文件的物理结构采用索引分配方式。(1)给出索引块中入口数的上限(用关于F与n的函数表示)。(2)任何时候,已分配磁盘空间中未被使用空间的最大量是多少?(红色文字是书中题目有错)解答:(1)设索引块中入口数为X根据题意,开始时,簇的大小是一块,在以后每次分配时簇的大小翻倍,则文件占有空间块数为20+21+22+23+24+……+2X-1=2X-1-1+2X-1=2*2X-1-1=2X-1又根据题意有n个记录的文件,一个块中期望的记录数为F,则该文件需要的空间块数为n/F2X-1=n/FX=log(n/F+1)索引块中入口数的上限为int(log(n/F+1))+1(注:int()为取整)(2)若文件已分配空间为2i-1(i=1,2,3,4,……)则该文件未被使用空间最大为2i-1-111.设有一个包含2000的记录的索引文件,每个记录正好占用一个物理块,一个物理块可以存放10个索引表目,试问:该文件至少应建立几级索引?解答:一级索引可存放10个记录,二级索引可存放10*10=100个记录,三级索引可存放10*100=1000记录,四级索引可存放10*1000=1000个记录,2000的记录需要四级索引。12.磁盘文件的物理结构采用链接分配方式,文件A有5个记录,每个记录的大小与磁盘块的大小相等,均为512,并依此存放在50、12、75、80、63号磁盘块上。若要访问该文件的第1569字节,问:(1)应访问哪个盘块的哪个字节?(2)要访问几次磁盘才能将该字节的内容读出。解答:1569/512=3。。。。。。33(1)应访问盘块80的第33字节。(2)要访问4次磁盘才能将该字节的内容读出。13.假定磁盘块的大小是1KB,对于540MB的磁盘,其文件分配表FAT需要占用多少存储空间?当磁盘的容量为1.2GB时,FAT需要占用多少空间?解答:540MB/1KB=540K,即文件分配表FAT有540K项,而540K个盘块号需要用20位表示,即文件分配表的每个表目大小为2.5字节。FAT要占用的存储空间总数为:2.5B*540K=(约)1.3MB当磁盘的容量为1.2GB时,FAT需要1.2M*3B=3.6MB14.有一磁盘共有10个盘面,每个盘面上有200个磁道,每个磁道有32个扇区,每个扇区512字节。假定文件分配以扇区为单位,若使用位示图来管理磁盘空间,问:(1)磁盘的容量有多大?(2)位示图需要占用多少空间?解答:(1)磁盘的容量为:10*200*32*512B=32000KB(2)位示图需要占用:10*200*32/8B=8000B