第九章《虚拟内存》

什么是虚拟内存

虚拟内存的出现是为了更有效的管理内存、减少出错。它提供了3个非常重要的能力:

  • 它将主存看做是一个存储在磁盘上的地址空间的高速缓存
  • 它为每个进程提供了一致的地址空间,从而简化了内存管理
  • 它保护了每个进程的地址空间不被其它进程破坏

物理寻址

计算机系统的主存被组织成一个连续字节大小的数组,每个字节都有一个唯一的物理地址,类似于下标通过物理地址来访问内存的方式称为物理寻址

虚拟寻址

计算机CPU通过一个虚拟地址来访问主存,这种方式称为虚拟寻址虚拟地址终将会被转换为物理地址,这个过程被称为地址翻译,由CPU中的内存管理单元完成

虚拟页

VM系统将虚拟内存分割为大小固定的块,称作虚拟页

在任意时刻,虚拟页面的集合都分为三个不相交的子集:

  • 未分配的:VM系统还未分配或创建的页。未分配的块没有任何数据和它们相关联,因此也就不占用任何磁盘空间
  • 缓存的:当前已缓存在物理内存中的已分配页
  • 未缓存的:未缓存在物理内存中的已分配页

内存映射

Linux通过将一个虚拟内存区域与一个磁盘上的对象关联起来,以初始化这个虚拟内存区域的内容,这个过程称为内存映射,虚拟内存区域可以映射到两种类型的对象中的一种:

  • Linux文件系统中的普通文件
  • 匿名文件
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 几个概念 程序存储在磁盘上的文件,在执行的时候加载如内存 内存分为DRAM,和SRAMDRAM:可以就看成我们买的...
    Myth52125阅读 1,100评论 0 1
  • 物理和虚拟寻址物理寻址:内存可以看做是一个字节数组,每个字节都有一个唯一的物理地址。从0开始递增。CPU使用物理地...
    CSU_IceLee阅读 383评论 0 1
  • 本文转载自 https://juejin.im/post/59f8691b51882534af254317 参考:...
    xingdong阅读 2,749评论 0 3
  • 1. 基础知识 1.1、 基本概念、 功能 冯诺伊曼体系结构1、计算机处理的数据和指令一律用二进制数表示2、顺序执...
    yunpiao阅读 5,399评论 1 22
  • 概述 我们都知道一个进程是与其他进程共享CPU和内存资源的。正因如此,操作系统需要有一套完善的内存管理机制才能防止...
    SylvanasSun阅读 3,882评论 0 25