网站首页 Cn029.Com - 西安网吧在线℡

Cn029.Com - 西安网吧在线℡ 西北地区网吧行业门户站点www.cn029.com,本站为您提供网吧维护,每日更新最新网吧技术,政策法规.为您提供各类网管软件,网吧软件,游戏更新软件,承接西部地区网吧维护,希望与您共同讨论网吧经营管理的经验!

投递文章  投稿指南 RSS订阅 西安网吧在线通告:
搜索: 您的位置西安网吧在线Linux-UxLinux精华 → 文章内容

Uclibc中的malloc机制分析(-)

  作者:网络收集   来源:chinaunix.net   更新时间:2008-4-27 5:04:33   【 】  评论:0

Uclibc是嵌入式linux系统里面使用最多的c lib库。最近在学习linux内核内存管理方面的东西,学完之后一直对用户空间的内存管理很迷糊,特找了libc中的malloc部份代码研究了一下,小有心得。特总结成此文。
本文档结构:
一:准备知识
二:堆空间的管理结构
三:堆空间的初始化
四:FA结构的操作
五:malloc的实现
六:free的实现
七:总结
一: 准备知识:
     用户空间中,经常会调用malloc 与 free进行内存管理,它是在进程的堆空间中分配内存。如下图所示:
     
二:堆空间的管理结构:
     堆空间表示的数据结构
     struct heap
{
     //堆空间空闲区的表示结构
          struct heap_free_area *free_areas;
         //用于在多线程环境中加锁保护
#ifdef HEAP_USE_LOCKING
     pthread_mutex_t lock;
#endif
};
heap_free_area结构在代码被代码作者称之为FA结构。它的定义如下:
struct heap_free_area
{
     //空闲区的大小
     size_t size;
     //用于构造循环链表
     struct heap_free_area *next, *prev;
};
注意:在FA结构里并没有定义指向空闲区的指针,这是因为FA结构正好放在空闲区的后面。堆栈区空间结构如下所示:


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/51562/showart_459143.html

Tags: 网吧 硬件 价格 最新  
责任编辑:Cn029.Com
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 验证码: 验证码,看不清楚?请点击刷新验证码

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    评论总数:0条,平均得分:0[ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - 法律声明 - RSS订阅 - 网站地图 - 返回顶部