叙述UNIX文件系统中空闲I节点管理算法。

admin2016-05-14  36

问题 叙述UNIX文件系统中空闲I节点管理算法。

选项

答案I节点区中的空闲I节点由filsys结构中的s_inode[NICINOD]管理。由于空闲I节点的数量是动态变化的,且极其巨大,因此s_inode只能管理其中的一部分。UNIX使filsys采用栈方式管理,最多直接管理NICINOD个空闲inode编号,并以s_ninode作为栈指针,因此s_ninode的值表示了当前filsys直接管理的空闲I节点数。 当需要创建一个文件时,系统就要通过核心函数ialloc为新文件分配一个空闲的inode。如表为空,即s_ninode为0,就要从系统记住的磁盘I节点区编号最小的空闲I节点起,向后搜索I节点区,直至装满空闲I节点索引表s_inode或搜索完了整个I节点区为止。 当删去一个文件时,系统就要将对应的I节点释放,使其成为空闲。实现释放算法的核心函数是ifree。算法的主要过程是:如空闲I节点表未满,把释放I节点的编号送入表中;如表已满,任其散布在磁盘I节点区,但如果其编号值小于I节点区搜索起点的I节点编号值,则重新调整搜索起点的位置值。 在文件的创建和删除相对比较平衡时,I节点的分配和释放可望基本都在直接管理表s_inode中进行。这样,对磁盘I节点区搜索的频度是相当低的。

解析
转载请注明原文地址:https://kaotiyun.com/show/24Nx777K
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)