嵌入式操作系统内核原理和开发(基于链表节点的内存分配算法).docVIP

  • 5
  • 0
  • 约7万字
  • 约 6页
  • 2017-01-02 发布于贵州
  • 举报

 嵌入式操作系统内核原理和开发(基于链表节点的内存分配算法).doc

嵌入式操作系统内核原理和开发(基于链表节点的内存分配算法) 链接节点的内存分配方法,其实就是一种按需分配的内存分配方法。简单一点说,就是你需要多少内存,我就给你多少内存。当然,为了把分配的内存都连起来,我们还需要对分配节点进行管理记录。就比如下面这个数据结构, [cpp] view plaincopy typedef struct _MNG_NODE { struct _MNG_NODE* next; unsigned int size; }MNG_NODE; 其中,next节点记录了下面一个节点的位置,size表示了当前节点下方的内存大小。在内存初始化的时候,我们默认起始内存块就是一个大节点,其中前面8个字节就是上面的内容。此时,如果需要进行内存拆分,我们就可以把一个节点拆分成两个节点,就比如这样,[cpp] view plaincopy pNew = (MNG_NODE*)((char*)pOld + sizeof(MNG_NODE) + pOld-size - (sizeof(MNG_NODE) + size)); pNew代表了新生成的结点,pOld代表了原来的节点。为了不影响原来的节点,每次分配新节点的时候必须在内存的高端位置进行分配。这样也保证了原来节点结构和数据的连贯性。当然分配结束之后,只需要对节

文档评论(0)

1亿VIP精品文档

相关文档