文档详情

文件系统思考题

凯和****啦
实名认证
店铺
PDF
8.58KB
约2页
文档ID:223625856
文件系统思考题_第1页
1/2

思考题:一个文件系统中有一个20MB 大文件和一个20KB 小文件 ,当分别采用连续、隐式链接、链接索引、二级索引和LINUX 分配方案时,每块大小为4096B,每块地址用4B 表示,问 : (1)各文件系统管理的最大的文件是多少? (2)每种方案对大、 小两文件各需要多少专用块来记录文件的物理地址(说明各块的用途) ? (3)如需要读大文件前面第5.5KB 的信息和后面第(16M 5.5KB)的信息,则每个方案各需要多少次盘I/O 操作 ? 答:(1)连续分配:理论上是不受限制,可大到整个磁盘文件区隐式链接: 由于块的地址为4 字节, 所以能表示的最多块数为232=4G,而每个盘块中存放文件大小为4092 字节链接分配可管理的最大文件为:4G4092B=16368GB ?链接索引: 由于块的地址为4 字节, 所以最多的链接索引块数为232=4G,而每个索引块有 1023个文件块地址的指针, 盘块大小为4KB 假设最多有n个索引块,则 1023n+n=232,算出 n=222,链接索引分配可管理的最大文件为:4M*1023*4KB=16368GB ? 二级索引:由于盘块大小为4KB ,每个地址用4B 表示,一个盘块可存1K 个索引表目。

二级索引可管理的最大文件容量为4KB1K1K 4GB LINUX混合分配: LINUX的直接地址指针有12 个,还有一个一级索引,一个二级索引,一个三级索引因此可管理的最大文件为48KB 4MB+4GB 4TB2) ?连续分配: 对大小两个文件都只需在文件控制块FCB 中设二项, 一是首块物理块块号,另一是文件总块数,不需专用块来记录文件的物理地址 隐式链接:对大小两个文件都只需在文件控制块FCB 中设二项,一是首块物理块块号,另一是末块物理块块号;同时在文件的每个物理块中设置存放下一个块号的指针一级索引:对20KB 小文件只有5 个物理块大小,所以只需一块专用物理块来作索引块,用来保存文件的各个物理块地址对于20MB 大文件共有5K 个物理块,由于链接索引的每个索引块只能保存(1K1) 个文件物理块地址 (另有一个表目存放下一个索引块指针),所以它需要6 块专用物理块来作链接索引块,用于保存文件各个的物理地址 二级索引:对大小文件都固定要用二级索引,对20KB 小文件,用一个物理块作第一级索引,用另一块作二级索引,共用二块专用物理块作索引块,对于20MB大文件,用一块作第一级索引,用5 块作第二级索引,共用六块专用物理块作索引块。

LINUX的混合分配: 对 20KB 小文件只需在文件控制块FCB 的 i_addr15 中使用前5个表目存放文件的物理块号,不需专用物理块对20MB 大文件, FCB 的 i_addr15 中使用前 12 个表目存放大文件前12 块物理块块号(48K) ,用一级索引块一块保存大文件接着的1K 块块号( 4M) ,剩下还有不到16M,还要用二级索引存大文件以后的块号,二级索引使用第一级索引1 块,第二级索引4 块(因为4KB1K4=16 M) 总共也需要6 块专用物理块来存放文件物理地址3) ?连续分配:为读大文件前面和后面信息都需先计算信息在文件中相对块数,前面信息相对逻辑块号为5.5K4K=1(从 0 开始编号), 后面信息相对逻辑块号为(16M 5.5K)/4K=4097 再计算物理块号文件首块号相对逻辑块号,最后化一次盘I/O 操作读出该块信息链接分配:为读大文件前面5.5KB 的信息,只需先读一次文件头块得到信息所在块的块号,再读一次第1 号逻辑块得到所需信息,共 2 次而读大文件16MB 5.5KB 处的信息,逻辑块号为( 16M5.5K )/4092=4107,要先把该信息所在块前面块顺序读出,共化费4107次盘 IO 操作,才能得到信息所在块的块号,最后化一次I/O 操作读出该块信息。

所以总共需要 4108 次盘 IO 才能读取( 16MB+5.5KB )处信息链接索引:为读大文件前面5.5KB 处的信息,只需先读一次第一个索引块得到信息所在块的块号,再读一次第1 号逻辑块得到所需信息,共化费2 次盘 IO 操作为读大文件后面 16MB+5.5KB处的信息, (16MB+5.5KB)/(4KB1023)=4,需要先化5 次盘 IO 操作依次读出各索引块,才能得到信息所在块的块号,再化一次盘I/O 操作读出该块信息共化费6 次盘 IO 操作二级索引:为读大文件前面和后面信息的操作相同,首先进行一次盘IO 读第一级索引块,然后根据它的相对逻辑块号计算应该读第二级索引的那块,第一级索引块表目号=相对逻辑块号1K,对文件前面信息11K0,对文件后面信息40971K4,第二次根据第一级索引块的相应表目内容又化一次盘IO 读第二级索引块,得到信息所在块块号,再化一次盘IO 读出信息所在盘块,这样读取大文件前面或后面处信息都只需要3 次盘 IO 操作LINUX混合分配: 为读大文件前面5.5KB 处信息, 先根据它的相对逻辑块号,在内存文件控制块FCB 的 i_addr 第二个表目中读取信息所在块块号,而只化费一次盘IO 操作即可读出该块信息。

为读大文件后在(16MB 5.5KB )信息,先根据它的相对逻辑块号判断要读的信息是在二级索引管理范围内,先根据i_addr 内容化一次盘IO 操作读出第一级索引块,再计算信息所在块的索引块号在第一级索引块的表目号为(4097-12-1024 ) 10242,根据第一级索引块第3 个表目内容再化费一次盘IO 操作,读出第二级索引块,就可以得到信息所在块块号,最后化一次盘IO 读出信息所在盘块,这样总共需要3 次盘 IO操作才能读出文件后面的信息。

下载提示
相似文档
正为您匹配相似的精品文档