堆区分配方法

来源:互联网 发布:网络棋牌赌博 如何判刑 编辑:程序博客网 时间:2024/03/29 03:35


堆区用于手动进行分配内存,这是如何管理的呢?

      对于堆区,系统设置一个空闲块队列,初始状态时队列中只有一个连续的空闲块。

作业到达后,以某种策略分配空间。作业撤离时,将释放的空间再次加放空间队列中。


分配策略有几种:

首次满足法,从队列中找到最先满分配空间的内存进行分配。

最佳满足法,从队列中进行搜索,找到刚好或稍大于需要的内存大小,进行分配。

最大满足法,从队列中进行搜索,找到最大的一个空闲块进行分配。


由于后面两个都涉及到搜索全部空间队列,所以一般都是用首次满足法。


当作业完成结束时,收回作业所占的空间,将此块链加入到空闲队伍中。

注意:若空间队伍中原来有与此块的相邻块,则把这些块合成成一个大的连续块。



这些都是系统进行分配的,勿须人为进行干扰,程序员只须知道用,即要分配、要释放就行了,

系统就会自动进行管理这些。

原创粉丝点击