http://blog.sina.com.cn/s/blog_a46817ff0101hjzp.html
概念
每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称作一页或页面。每一页有连续的地址范围。这些页被映射到物理内存,但并不是所有的地址空间必须在内存中才能运行程序。当程序引用一部分在物理内存中的地址空间时,有硬件立刻执行必要的映射。当程序引用的到一部分不在物理内存中的地址空间时,由操作系统负责将缺的部分装入物理内存并重新执行失败的指令。
虚拟存储器的基本思想是程序,数据,堆栈的总的大小可以超过物理存储器的大小,操作系统把当前使用的部分保留在内存中,而把其他未被使用的部分保存在磁盘上。
两个概念:虚拟地址(virtual address,VA)和物理地址(physical address,PA)
分页
大部分虚拟内存中使用一种分页的技术。由程序产生的这些地址称为虚拟地址,他们构成了一个虚拟地址空间,在使用虚拟内存的情况下,虚拟地址不是被直接送到内存的总线上,而是被送到内存管理单元(MMU),MMU把虚拟地址映射为物理内存地址。
MMU的主要作用:实现VA到PA的映射(可以因此实现方便的动态内存管理); 实现不同的访问权限。
虚拟地址空间按照固定大小划分称为页面的若干单元。在物理内存中对应的单元称为页框。页面和页框的大小通常是一样的
TLB
转换检测缓冲区:虚拟地址到物理地址的映射必须非常快,所以采用TLB,将虚拟地址直接映射到物理地址。
多级页表
如果虚拟地址空间很大,页表也会很大。针对这种情况,一是可以采取多级页表,而是可以采取倒排页表。