Virtual Memory: Concepts
Address spaces
A System Using Physical Addressing
在使用物理寻址的系统中,以CPU执行一条移动指令为例,生成了一个有效的物理地址,这个地址实际上是主存储器中一个字节的偏移量,如上图,CPU在这里生成的物理地址为4,然后内存从该地址获取其中保存的字,然后将其发送回CPU,实际上,这是非常简单的微控制器工作的方式,但是这并不是大多数系统的工作方式,包括手机,台式机和服务器,这些系统虚拟化这个主存储器,虚拟化这个概念在计算机科学中是非常重要的。
A System Using Virtual Addressing
请求实际上是由一块称为MMU的内存管理单元的硬件来处理的。CPU将该地址发送给MMU,这是一个称为地址转换的过程,在这个例子中,它将虚拟地址4100转换为物理地址4,这实际上对应我们想要的数据对象的地址,MMU将虚拟地址转转为物理地址之后,然后内存将返回存储再该地址中的字。
我们为什么要这么做,事实证明,虚拟化地址空间有各种充分的理由,
Address Spaces
地址空间是一个集合(set),不是数据字节的集合,而是那些字节的地址的集合,并且线性地址空间是连续的非负整数集合,虚拟地址空间是包含N=2^n个虚拟地址的集合,是线性地址空间。物理地址空间是包含M=2^m个物理地址的集合,通常虚拟地址空间比物理地址空间大得多。
物理地址空间对应于系统中实际拥有的DRAM容量,对于在该系统上运行的所有进程,虚拟地址空间是相同的。
Why Virtual Memory (VM)?
第一,虚拟内存使用DRAM作为存储在磁盘上的实际数据的缓存,可以将虚拟内存视为存储再磁盘上的数据的DRAM缓存&#