目录
一、文件的索引块。
二、索引分配表
三、索引表的链接方案
四、多层索引
五、混合索引分配
一、文件的索引块。
存放在目录中的文件,并非是文件的真实内容。
目录中记录了文件的索引块是几号磁盘块。
文件对应的索引表是存放在指定的磁盘块中的!!!
二、索引分配表
文件数据存放的磁盘块称为数据块。
索引分配表允许文件连续的逻辑数据块,以离散方式分配在不同磁盘块中。
系统会为每个文件建立一张索引表,表中记录了文件的各个逻辑块对应的物理块。
索引表也存放硬盘中,存放的磁盘块称为索引块。
索引表是存放在物理块中的,因此单个的索引表的大小是有空间的限制的!!!
假设物理磁盘块的大小1KB, 一个索引表象占4字节,即可以访问(2^32)个物理块。
一个磁盘块只能存放256个索引表项;
一个磁盘块(256索引表项)支持的最大文件大小为:256 * 1K = 256K大小。
三、索引表的链接方案
如果文件的内容太大,所需要的索引表就很大,需要多个磁盘块存放多个文件索引表!!!
如果索引表太大,硬盘的一个物理索引块装不下所有的索引表的内容,那么可以将多个索引块链接起来存放;
假设有多个索引块,而各个索引块是通过这种链接的方式连起来,所以,为了找到第二个索引块的块号,操作系统需要先将第一个索引块读入内存,然后才能根据这个索引块中的存放的下一个索引块指针找到第二个索引块号,并且把第二个索引块读入内存;
假设文件的大小是64MB,物理块的大小为1K. 则需要64M/1K = 64K个索引项。
则需要64K/256 = 256个索引表!每个索引表占1K的大小。
四、多层索引
若采用多层索引结构,即索引表中存放的并非文件的数据,而是另一个索引表。
如下图所示:
二级索引表的索引项代表1K的文件。
二级索引表,有256项,代表256K文件大小。
一级索引表的一个表项代表一个二级索引表,即代表256K文件大小。
一级索引表一共有256个表项,因此最大代表256 * 256K = 64M文件大小。
五、混合索引分配
混合索引分配的方式就是将上述两种方式结合起来,
在顶级索引表中有直接地址直接指向数据块的,也有一级间接地址指向下一级索引表(下下层就是数据块了,及一级间接地址可以看做是二级索引表(因为顶级索引表本身可以看做是一层));
每个物理块:1K大小。
直接地址索引:8 个块
一级索引:256 个块。
二级索引:256 * 256 =
上表支持的文件块个数 N = 8 + 256 + 256 * 256 = 8 + 256 + 64K
上表支持的文件大小 = N * 1K'