Linux中进程内存结构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LZUwujiajun/article/details/82781918

组成(由上至下,由高地址到低地址)

映射到虚拟内存的Kcrnel内核:无法被程序访问

命令行参数和环境变量

栈(用户栈):由上至下伸长,栈帧包括函数实参和局部变量(自动变量)和函数的调用链接信息

未分配的内存

:由下至上伸长,运行时动态分配的空间

未初始化的数据段(BSS):未显式初始化的全局变量和静态变量,不分配存储空间知道运行时

初始化的数据段:显式初始化的全局变量和静态变量,当程序加载到内存时可以直接读取值

文本(程序代码)

虚拟内存管理

每个程序只有部分页存储在物理内存中,需要时调换。

特性:时间局部性和空间局部性

组织:页表

页表:每个条目指出虚拟页面在RAM的位置,或者表明当前驻留在磁盘上,并不是所有内存都在页表上有。

虚拟内存管理的优点

  1. 进程与进程,进程与内核相互隔离,不可读取另一个进程的内存或内核
  2. RAM中能容纳更多进程

猜你喜欢

转载自blog.csdn.net/LZUwujiajun/article/details/82781918