操作系统

您所在的位置:网站首页 管理图法 操作系统

操作系统

2023-10-09 09:50| 来源: 网络整理| 查看: 265

操作系统——成组链接法

成组链接法是结合了空闲表和空闲链表法的,UNIX系统采用的就是成组链接法。成组链接法中保存的是当前可用的存储盘块的地址,具体的我们以一个简单的例子来阐述他的结构和分配回收原理。

前提假设

假设一个空闲的盘块可以存储另外5个盘块的地址和一个当前盘块可以用来存储盘块地址的变量N,结构如下:

成组链接的基本结构

每一个该结构中的盘块存储的都是可用盘块的地址,如下图,盘块25为空闲的盘块,可以用来存储数据,在盘块0中空间0存储的是下一个类似于盘块0结构的盘块1的地址,空间14存储的则是可以用来存储数据的盘块2~盘块5的地址,盘块1中的结构和盘块1中的结构一致,整个结构将所有的可用盘块按照类似的结构全部链接起来。

例子

初始状态假设为上图所示,现在系统要申请5个盘块用来存储数据data,其中data可以分为(data_1,data_2,data_3,data_4,data_5)5个部分存储在5个盘块中

存储data_1

首先查盘块0,N=5,说明还有可以用的盘块,直接选择盘块5存储data_1数据段,将数据data_1写入盘块5中,将盘块0中空间4清空。

存储data_2到data_4

同理,可以将数据段data_2~data_4一次存入盘块4、盘块3、盘块2中

存储data_5

到此时,盘块0中存储的只有盘块1的地址,盘块1不能用来存储数据,此时应该将盘块1的内容复制到盘块0中来:让盘块1可以用来存储数据:

此时将data_5写入盘块1中

到此,一个数据的存储过程就结束了,当然实际情况一个盘块可以存储的地址肯定不止5个,这里只是以5个为例子,展示流程。

回收data_5(盘块1)

讲完分配,现在讲讲回收,现在系统需要回收data_5数据段,释放盘块1,将盘块1放入到可用表中,流程如下:

此时,系统观察到盘块0中已经没有空余的空间可以存储盘块1的地址,此时采取的策略是:

将现在盘块0中的内容复制到盘块1中:

然后将盘块0的内容更新,空间0存储盘块1的地址,其他空间空闲:

回收data_4data_1(盘块2盘块5)

此时盘块中空闲的空间有5-1=4个,现在回收data_4:

将盘块2的地址写入到盘块0的空闲空间1中,然后清空盘块2的内容:

其他盘块按照如此逻辑,一次回收:

到此,有关成组链接的具体分配和回收流程就结束了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3