虚拟存储器

来源:互联网 发布:淘宝上货软件哪个好用 编辑:程序博客网 时间:2024/05/14 22:10

虚拟存储器

每个进程看到的是一致的存储器,称为虚拟地址空间。在linux系统中,地址空间最上面的的区域是为操作系统中的代码和数据保留的,这对进程来说都一样。地址空间的地步区域存放用户进程定义的代码和数据。下图中的地址是从下往上增大的。

                内存虚拟存储器          -> 用户代码不可见的存储器                    |             用户栈(运行时创建的)                     |            共享库的存储器映射区域       -> printf函数                    |         运行时堆(在运行时由malloc创建的)                    |                 读/写数据             -> 从hello可执行文件               只读的代码和数据             加载进来                    |                ->0x08048000(32) / 0x00400000(64)                    |                ->0
  • 程序代码和数据。对于所有进程来说,代码是从同一固定地址开始,紧接着的是和C全局变量相对应的数据位置。
  • 堆。当调用如malloc何free这样的C标准库函数时,堆可以在运行时动态地扩张和收缩。
  • 共享库。存放像C标准库和数学库这样共享库的代码和数据的区域。
  • 栈。编译器用它来实现函数调用。
  • 内核虚拟存储器。内核总是驻留在内存中,是操作系统的一部分。

虚拟存储器 与 虚拟内存详解

0 0