一、定义以及基本思想
- 定义:系统对主存的抽象。
- 基本思想:允许每个数据对象有多个独立的地址,其中每个地址选自不同的地址空间。
二、作用
- 将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在主存和磁盘中来回传递数据,通过这种方式可以高效的使用主存。
- 它为每个进程提供一致的的地址空间,从而简化了内存管理。
- 它保护了每个地址空间不被其他进程所破坏。
三、虚拟内存和主存的区别
- 主存被组织为存放在内存条上的M个连续的字节大小的单元组成的数组,每个字节都有一个唯一的物理地址(Physical Address,PA)
- 虚拟内存被组织为一个由存放在磁盘上的N个连续的字节大小的单元组成的数组。每个字节都有一个唯一的虚拟地址(Virtual Address,VA)。
- 主存中每个字节都有一个来自虚拟地址空间中的虚拟地址和一个选自物理地址空间中的物理地址。
四、地址空间
- 定义:是一个非负整数地址的有序集合。
{0,1,2,……} - CPU从一个N = 2^n个地址的地址空间中生成虚拟地址,这个地址空间被称为虚拟地址空间(Virtual Address Space)。
{0,1,2,3,……,N-1} - 物理地址空间,对应于系统中物理内存M个字节。
{0,1,2,3,……,M-1}
五、虚拟页和物理页
磁盘中的内容缓存到主存中,磁盘中的数据被分割成块,这些块作为磁盘和主存之间的传输单元。
- 将虚拟内存分割成的块被称为虚拟页(Virtual Page,VP),其大小为P = 2^p个字节。
- 将物理内存分割成的块被称为物理页(Physical Page,PP)亦称为页帧,大小也为P个字节。
六、虚拟页三种状态
- 未分配的:VM系统还未分配(创建)的页。未分配的块没有任何数据和他们相关联,因此不占用任何磁盘空间。
- 缓存的:当前已缓存在物理内存中的已分配的页。
- 未缓存的:未缓存在物理内存中的已分配的页。
七、DRAM和SRAM
- SRAM缓存:位于CPU和主存之间的L1、L2和L3的高速缓存。
- DRAM缓存:VM系统的缓存,即:主存。
八、内存管理单元(MMU)
- 英文全称:Memory Management Unit;
- 作用:主要负责CPU内存访问的时候将虚拟地址转换为物理地址的单元。也就是说CPU想要访问内存必须先经过MMU的转换,获得真正的物理地址,才能读写物理内存的数据。
(SAW:Game Over!)