经常学习Unix操作系统的一些知识,而且很喜欢Unix操作系统,在这里,我要讲解一下Unix磁盘块分配算法的知识。由于一个Unix磁盘块的大小为1024字节,所以一个位图块可以管理0x400×8=0x2000个磁盘块。
那么,下一个位图块的块号就是0x61d+ 0x2000=0x261d。这与位图索引块中的数据是相符的。那么,位图块0x61d管理着块号为0x61d-0x261c的Unix磁盘块。
由以上数据可见, 在这个位图块中,***个被使用的磁盘块块号是0x61d,即位图块本身。***个空闲块块号由0x187401处字节0x1c的第2位指示,是0x627。 由于该位图块是文件卷中的***个位图块,所以0x627号磁盘块也是文件卷中的***个空闲块。
当我们向系统申请Unix磁盘块时,系统通过超级块、位图索引块、位 图块来寻找那些标志位为1的块,然后将相应的标置位置0。
当释放一个Unix磁盘块时,系统就将相应的标志位置1。现在,我们就可以判断出文 件卷中的每一个Unix磁盘块是否被使用了。但是仅凭这些还不能完全恢复误删的文件,我们还得了解SCO Unix分配磁盘块的算法。
为了使一个文件所占用的Unix磁盘块相对集中,SCO Unix是按照特定的算法来选择空闲块分配给文件的。假设某文件所占用的***一个磁盘块的块号为m,现在要再分配一Unix磁盘块给该文件,若该文件是新文件,则 m=0。
关于Unix磁盘块分配算法,我们就讲解到这里,希望大家能够有所提高。
【编辑推荐】