叙述UNIX系统中空闲文件存储块的管理算法。

admin2016-05-14  28

问题 叙述UNIX系统中空闲文件存储块的管理算法。

选项

答案对空闲文件存储块的直接管理部分采用了与空闲I节点相似的栈方式管理,由s_free[NICBREE]最多直接管理NICBREE个空闲存储块。但由于文件存储块的数量比磁盘节点区的盘块大得多,且是非结构形式的,故不能采用搜索磁盘文件存储块区的方式获得空闲块。为此,系统在初始化时就将所有的空闲文件存储块组织成如图17—1所示的分组链式结构。 [*] 在分组链式管理结构中,filsys中的s_free最多直接管理NICBREE个空闲存储块,并由s—nfree记住当前登记的空闲块数。由s_free[0]指示的最后一个直接管理的空闲块又间接管理了下一组NICBREE个空闲块,以此类推。 实现空闲块分配算法的程序是alloc,其主要过程是:如果s_nfree值不为0,则在栈顶获得一个空闲存储块号;但当这是s_free[0]登记的最后一个空闲块时,由于该空闲块还间接管理了下一组空闲存储块,故在将它分配给文件之前,还要将其中的管理数据复制到超级块中,使间接管理转化为直接管理,这样超级块又登记了NICBREE个直接管理的空闲存储块了。 释放文件存储块时,将释放块号登记在s_nfree所指示的栈顶s_free表项中。但如发现表已满,不能再直接登记释放块时,就要将filsys直接管理的表项内容复制到释放块,使直接管理转变成间接管理,再将释放块号写入s_free[0]中,置s_nfree为1。这样,filsys只直接管理了一个空闲块,但分组链则增加了一个组。

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

最新回复(0)