Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4960647
  • 博文数量: 1696
  • 博客积分: 10870
  • 博客等级: 上将
  • 技术积分: 18357
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-30 15:16
文章分类
文章存档

2017年(1)

2016年(1)

2015年(1)

2013年(1)

2012年(43)

2011年(17)

2010年(828)

2009年(568)

2008年(185)

2007年(51)

分类:

2010-07-18 22:08:03

现在的计算机系统越来越复杂,从硬件到我们运行的程序(进程),内存管理被分为不同的几个层次,不同的操作系统,其设计各有特色。大致上,可以分为以下几 个层次:

[硬件] --> [虚拟内存系统] --> [系统级的Heap管理] --> [进程级的Heap管理(libc)] --> [我们的进程malloc/free]

对于偏左的几个层次,我们可以暂时不了解, 但看看 libc 中 malloc/free 的实现,还是很有意思的,不过现在的系统(硬件/操作系统)都无比复杂,直接阅读最新的代码,一头扎入最复杂的逻辑中,对我们理解其基本原理,实在没有益 处。

去繁就简,我们看看早期 BSD 的一个实现。参看最早的一个版本 v1.1


实 现很漂亮,代码很少,但可以看到一个 allocator 看得见摸得找的"高效"实现,里面的技巧,SGI STL allocator 也在使用。
阅读(903) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~