linux内存管理

内存分布

linux内存管理_第1张图片

1.代码区(text): 
 可执行指令、字面值常量、具有常属性的全局和静态局部变量。只读。
2.数据区(data): 
 初始化的全局和静态局部变量。
3.BSS区: 
 未初始化的全局和静态局部变量。 
 进程一经加载此区即被清0。 
 数据区和BSS区有时被合称为全局区或静态区。
4.堆区(heap): 
 动态内存分配。从低地址向高地址扩展。
5.栈区(stack): 
 非静态局部变量, 
 包括函数的参数和返回值。 
 从高地址向低地址扩展。 
 堆区和栈区之间存在一块间隙,一方面为堆和栈的增长预留空间,同时共享库、共享内存等亦位于此。
6.命令行参数与环境区: 
 命令行参数和环境变量。

	虚拟内存与实际内存关系:
	1.每个进程都有各自独立的4G虚拟地址
	2.用户程序中使用的都是虚拟地址空间中的地址,永远无法直接访问实际地址
	3.虚拟地址映射到物理地址由操作系统维护

你可能感兴趣的:(c,4g内存)