虚拟内存

虚拟内存是一种内存管理技术,虚拟内存技术的核心就是利用了局部性原理,把所要运行的进程中的数据不全部加载到内存中执行,而是加载一部分,当CPU在请求页表时,发现页表中的页表条目中的有效位为0但是被虚拟存储系统分配了的虚拟页时,就会把这个虚拟页从磁盘中调度到内存中。

使用虚拟寻址时(用逻辑地址),CPU会生成一个虚拟地址(逻辑地址),用这个虚拟地址来访问主存时需要经过一个MMU(内存管理单元)来对这个虚拟地址进行翻译,把这个虚拟地址变为真正的物理地址。

虚拟存储器系统把虚拟存储器分割成大小固定的块,这一块一块的存储器中的内容我们称为虚拟页,相对应的实际物理存储分割成物理页。拥有虚拟页地址和物理页地址信息的页表。

页表就是一个存放页表条目的数组

在页面命中时,CPU硬件执行的步骤为: 
第一步:处理器生成一个虚拟地址(VA),并把它传送给MMU(内存管理单元)
第二步:MMU生成页表条目的地址(PTEA),请求内存中的页表,让它给自己返回一个页表条目(PTE) 
第三步:MMU构造物理地址(PA),然后把这这个物理地址传给内存(这时候是真实的物理地址),请求物理内存中的数据 
第四步:内存返回所请求的数据给处理器 

通过操作系统的内存管理和映射技术可建立虚拟内存与实际的物理内存的对应关系,使得程序员或CPU访问的虚拟内存地址会转换为另外一个物理内存地址

你可能感兴趣的:(编程)