php实现主存分配与回收

源代码获取:发送邮件至[email protected]

程序设计的原理描述:

主存空间分配  

(1)首次适应算法  在该算法中,把主存中所有空闲区按其起始地址递增的次序排列。在为作业分配存储空间时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到第一个能满足要求的空闲区,从中划出与请求的大小相等的存储空间分配给作业,余下的空闲区仍留在空闲区链中。

(2)最佳适应算法  

在该算法中,把主存中所有空闲区按其起始地址递增的次序排列。在为作业分配存储空间时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲区且该空闲区的大小比其他满足要求的空闲区都小,从中划出与请求的大小相等的存储空间分配给作业,余下的空闲区仍留在空闲区链中

(3)最坏适应算法
    在该算法中,把主存中所有空闲区按其起始地址递增的次序排列。在为作业分配存储空间时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲区且该空闲区的大小比其他满足要求的空闲区都大,从中划出与请求的大小相等的存储空间分配给作业,余下的空闲区仍留在空闲区链中。

(4)主存空间回收    

当一个作业执行完成撤离时,作业所占的分区应该归还给系统。归还的分区如果与其它空闲区相邻,则应合成一个较大的空闲区。


内存分布图  

php实现主存分配与回收

展示用最优分配算法申请

初始的分歧状态如下:

 php实现主存分配与回收

申请大小为150的内存空间,为作业C,

 php实现主存分配与回收

分配后如下图

 php实现主存分配与回收

用最差分配算法申请一个100的内存,为作业D

申请后如下图:

 php实现主存分配与回收