内存管理

ddatsh

dev #linux

概念

进程内存布局

内核 2.6.7 后 mmap 映射区域和堆相对扩展,直至耗尽虚拟地址空间中的剩余区域

操作系统内存分配函数

进程内存结构 mm_struct

brk() 是一个非常简单的系统调用, 只是简单地改变 mm_struct 结构的成员变量 brk 的值

系统调用通常提供一种最小的功能,库函数相比系统调用,则提供了更复杂的功能

glibc 中malloc 就是调用 sbrk() 将数据段的offset移动以来代表内存的分配和释放

sbrk() 函数在内核的管理下,将虚拟地址空间映射到内存,供 malloc() 函数使用

glibc ptmalloc

概念


https://mp.weixin.qq.com/s/pdv5MMUQ9ACpeCpyGnxb1Q