虚拟内存的意义
为什么要建立“虚拟“内存来欺骗软件?
有时候在想,现代存储空间越来越大,是不是全部都用物理内存就行了?
基本概念
虚拟地址(VA,Virtual Address):处理器上运行的操作系统、应用程序所能看到的地址空间。虚拟地址并不真实存在于计算机中。
物理地址(PA,Physical Address):实际存储地址空间,如 DDR、Flash、SRAM 等实际存储数据的地方。
在处理器运行的过程中,需要将虚拟地址空间与物理地址空间进行转换,并对内存访问进行保护,即内存管理的主要工作。
虚拟地址通过映射转换为物理地址。虚拟地址和物理地址之间的映射存储在转换表(有时称为页表)。
“虚拟”的主要意义
地址连续性
程序都可以在连续的虚拟内存空间中运行,而实际的物理内存空间可以是不连续的。
地址扩展性
有了虚拟内存,程序在概念上可以使用比物理上可用的更多的内存。例如,即使物理内存只有4GB,虚拟地址宽度也可以超过32位。可以使用整个硬盘扩展存储空间。
安全隔离
由于内存隔离,虚拟内存还增加了安全性。
在地址转换期间可访问性被检查。如果程序试图写入一个仅赋予只读权限的内存地址,则写入访问将被阻止,并发出错误信号。如果程序试图访问不属于它的内存地址,访问也将被阻止。
虚拟内存的意义
https://rongyel.github.io/posts/ada5d828.html