问答题
一个文件系统中有一个20MB大文件和一个20KB小文件,当分别采用连续分配、隐式链接分配方案时,每块大小为4096B,每块地址用4B表示,问:
问答题
该文件系统所能管理的最大文件是多少?
【正确答案】
【答案解析】连续分配:文件大小理论上是不受限制的,可大到整个磁盘文件区。
链接分配:由于块地址占4字节,即32位,所以能表示的最多块数为2
32
=4G,而每个盘块中存放文件大小为4092字节,故链接分配可管理的最大文件为:4G*4092B=16368GB。
注意:有同学会觉得最后一块不用放置索引块,可以为4096B,但是一般文件系统块的结构是固定的,为了多这4B的空间会多很多额外的消耗,所以并不会那么做。
问答题
每种方案对大、小两文件各需要多少专用块来记录文件的物理地址(说明各块的用途)?
【正确答案】
【答案解析】连续分配:对大小两个文件都只需在文件控制块FCB中设二项,一是首块物理块块号,另一是文件总块数,不需专用块来记录文件的物理地址。
链接分配:对大小两个文件都只需在文件控制块FCB中设二项,一是首块物理块块号,另一是文件最后一个物理块号;同时在文件的每个物理块中设置存放下一个块号的指针。
问答题
如需要读大文件前面第5.5KB的信息和后面第(16M+5.5KB)的信息,则每个方案各需要多少次盘I/O操作?
【正确答案】
【答案解析】连续分配:为读大文件前面和后面信息都需先计算信息在文件中相对块数,前面信息相对逻辑块号为5.5K/4K=1(从0开始编号),后面信息相对逻辑块号为(16M+5.5K)/4K=4097。再计算物理块号=文件首块号+相对逻辑块号,最后每块分别只需花一次磁盘I/O操作读出该块信息。
链接分配:为读大文件前面5.5KB的信息,只需先读一次文件头块得到信息所在块的块号,再读一次第1号逻辑块得到所需信息,一共需要2次读盘。而读大文件16MB+5.5KB处的信息,逻辑块号为(16M+5.5K)/4092=4101,要先把该信息所在块前面块顺序读出,共花费4101次磁盘I/O操作,才能得到信息所在块的块号,最后再花一次I/O操作读出该块信息。所以总共需要4102次I/O操作才能读取(16MB+5.5KB)处的信息。
[解析] 本题考查文件物理结构的分配方案:连续分配、链接分配和链接索引分配。