读书人

阅览《C 风格的内存分配程序》有感

发布时间: 2013-01-28 11:49:56 作者: rapoo

阅读《C 风格的内存分配程序》有感

其实说的就是C语言的malloc和free的实现机制,实现算法。在阅读了内存管理内幕(以下文字基于这个链接)这篇文章的前半部分后,深有感觉,这全是重要的思想啊。

关键词:内存控制块MCB

MCB这东西是一个结构体,具体定义如下

current_location_mcb = (struct mem_control_block *)current_location;
得到。

下面的就是判断可不可用啦,长度够不够我要的啦,其中只要有一个不满足,就要找下一个MCB。

一环套一环的能找下去的根本条件就是本次得到的MCB里面的size字段,不断照着它偏移就可以了。

如果可用且长度够,那么就把current_location + MCB长度偏移后的地址返回给用户使用。

如果执行一次就跳出了呢,那么就照着第一次malloc的方式再分配内存。

如此如此.

总结一下:这个分配算法有点像我目前做的网络通讯协议,数据包括报头和数据段。报头定义了一系列有关数据的属性。看来都有通性。

managed_memory_start一直指向第一个地址(暂且这么说),它是一环套一环查找的基础

last_valid_address只要使用了malloc,就得到更新。

现在想想,怎么这么像队列呢,一个head指针永远指向头,一个tail指针永远指向尾。

谢谢观赏。


读书人网 >编程

热点推荐