虚拟内存 | 青训营笔记

57 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第15天

今天学习了操作系统中虚拟内存相关概率,让我们一起来看看吧

  1. 虚拟内存

    • 概念:

      • 程序所使用的内存地址叫做虚拟内存地址Virtual Memory Address),每个进程都是有自己的虚拟地址空间
      • 实际存在硬件里面的空间地址叫物理内存地址(Physical Memory Address
    • 好处:

      • 虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。

        • 每个进程都有自己的虚拟空间,而物理内存只有一个,所以当启用了大量的进程,物理内存必然会很紧张,于是操作系统会通过内存交换技术,把不常使用的内存暂时存放到硬盘(换出),在需要的时候再装载回物理内存(换入)
      • 多进程环境下,使得进程之间的内存地址不受影响,相互隔离

        • 由于每个进程都有自己的页表,所以每个进程的虚拟内存空间就是相互独立的。进程也没有办法访问其他进程的页表,所以这些页表是私有的,这就解决了多进程之间地址冲突的问题。
      • 页表里的页表项中除了物理地址之外,还有一些标记属性的比特,比如控制一个页的读写权限,标记该页是否存在等。在内存访问方面,操作系统提供了更好的安全性

    • 如何映射:

      操作系统引入了虚拟内存,进程持有的虚拟地址通过 CPU 芯片中的内存管理单元(MMU) 的映射关系,来转换变成物理地址,然后再通过物理地址访问内存,如下图所示: