索引分配允许文件离散的分配在各个磁盘块中,系统会为每个文件建立一张索引表,表中记录了文件的各个逻辑块对应的物理块。索引表存放的磁盘块称为索引快,文件数据存放的磁盘块称为数据块 目录中记录了文件的索引块是几号磁盘块
如果索引表太大,一个索引块装不下,那么可以将多个索引块链接起来存放; 假设有多个索引块,而各个索引块是通过这种链接的方式连起来,所以,为了找到第二个索引块的块号,操作系统需要先将第一个索引块读入内存,然后才能根据这个索引块中的指针找到第二个索引块号,并且把第二个索引块读入内存; 一个磁盘块只能存放256个索引项; 假设文件的大小是64MB,则需要256个这样的块;2562561KB=65536B=64MB;
若采用多层索引结构,各层索引大小最大不能超过一个磁盘块 还是这个假设,那么每层的索引项的大小不能超过256B,同时,在一个索引表项占4B的情况下,一个块最多有1024/4=256个索引项;那么假设是上图中的两极索引表,第一层最多有1024/4=256个索引项,每个索引项指向下一层的一个索引表,第二层最多也有256个索引项,每个索引项指向一个1KB大小的文件记录(每条文件记录也由一个块保存,一个文件占有多个块),那么这种条件下的两级索引最大支持的文件大小是2562561KB=64MB大小; 同理,如果是3级索引,还是这种条件下是256256256=4GB大小
混合索引分配的方式就是将上述两种方式结合起来, 在顶级索引表中有直接地址直接指向数据块的,也有一级间接地址指向下一级索引表(下下层就是数据块了,及一级间接地址可以看做是二级索引表(因为顶级索引表本身可以看做是一层));