linux进程内存布局及内存管理函数总结
2014-02-17 14:40
274 查看
进程是elf可执行文件加载到内存中的程序。对于一个进程来说,其内存空间包括以下几部分:
代码区:程序的代码存放区,只读区
全局区:存放全局变量和静态变量,main执行之前分配全局变量
bss段:存放未初始化的全局变量,在main执行之前清空bss段
栈区:非静态局部变量,包括函数的参数,栈区的内存管理有系统完成,自动分配,自动回收。
堆区:动态内存分配
一个进程有4G内存空间,应该是虚拟内存空间。0-3G是用户空间,用户可以自由操作。剩下
1G是内核空间,只能通过系统调用访问。
动态内存管理:STL-->C++ new/delete-->c malloc/free-->sys call sbrk()/brk()-->
sys call mmap()/munmap()-->kernel kmalloc/vmalloc-->get_free_page
malloc申请内存空间需要额外的内存空间保存额外的信息。
代码区:程序的代码存放区,只读区
全局区:存放全局变量和静态变量,main执行之前分配全局变量
bss段:存放未初始化的全局变量,在main执行之前清空bss段
栈区:非静态局部变量,包括函数的参数,栈区的内存管理有系统完成,自动分配,自动回收。
堆区:动态内存分配
一个进程有4G内存空间,应该是虚拟内存空间。0-3G是用户空间,用户可以自由操作。剩下
1G是内核空间,只能通过系统调用访问。
动态内存管理:STL-->C++ new/delete-->c malloc/free-->sys call sbrk()/brk()-->
sys call mmap()/munmap()-->kernel kmalloc/vmalloc-->get_free_page
malloc申请内存空间需要额外的内存空间保存额外的信息。
相关文章推荐
- linux进程内存布局
- linux系统进程的内存布局
- linux中进程在内存中的布局
- linux进程内存布局
- LINUX程序(进程)在内存中的布局
- Linux下进程内存的布局
- linux下查询进程占用的内存方法总结
- Linux进程通信总结(三) --共享内存
- 栈溢出攻击系列:shellcode在linux x86 64位攻击获得root权限(四)linux下进程内存布局
- linux进程内存布局(转)
- Linux X86-64 进程内存空间布局
- linux进程内存布局
- Linux 进程地址空间 && 进程内存布局
- linux进程内存布局
- linux进程内存布局(转)
- linux系统进程的内存布局
- linux进程内存布局
- Linux学习总结—内存结构、启动和进程空间
- Linux进程的内存布局
- Linux进程地址空间 && 进程内存布局