转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/20661785
操作系统中常用来管理内存的动态分配和回收的方法有边界标识法和伙伴系统。
边界标识法
系统将所有的空闲块链接在一个双重循环链表结构的可利用空间表中。系统的特点在于:在每个内存区的头部和底部两个边界上分别设有标识,以标识该区域是占用块或空闲块,使得在回收用户释放的空闲块时易于判别在物理位置上与其相邻的内存区域是否为空闲块,以便将所有地址连续的空闲块组合成一个更大的可利用的空闲块。
可利用空间表的结构如下图所示:
其中space为一组连续的存储单元,是可以分配给用户使用的内存区域,它的大小由头部的size属性指示,头部的llink域和rlink域分别指向上一个可用空间表和下一个可用空间表,底部的uplink域指向本节点头部,头部和底部都有个tag域,用来表示该当前块是空闲块还是占用块。