堆与内存管理

2020-08-31  本文已影响0人  wayyyy

malloc 是怎么实现的呢?
有一种做法是直接把进程的内存管理交给操作系统内核去做,直接让程序发起系统调用申请内存。这种做法理论上是可行的,但实际上性能比较差,因为意味着每次申请内存丢需要进行系统调用。

比较好的做法是程序员向操作系统申请了一块适当大小的堆空间,然后有程序自己管理这块空间,而具体来讲,管理堆空间分配的往往就是程序的运行库。运行库相当于向操作系统分配了一块较大的堆空间,然后"零售"给程序员使用。

Linux 下进程堆管理稍微有些复杂,因为它提供了2种堆空间分配方式,即2个系统调用:

上一篇 下一篇

猜你喜欢

热点阅读