虚拟地址和物理地址之间的映射关系

1、虚拟地址和物理地址之间的映射是以页(4KB)为单位进行映射的;

2、每一个进程中都有一个进程控制块(PCB),里面包含了一些进程的信息(页目录,状态,句柄表,ID,PID……);

3、映射过程(32位系统下):

首先PCB中有一个指向一级分页表的指针,每一个页表的大小均为4096B(4KB),可以存储1024个地址。其中一级页表中每一个地址对应着一个二级页表的首地址,二级页表中也存储着1024个地址,其中每个地址分别对应着物理内存上面的每一个页的首地址。这样一来,虚拟地址空间所能够访问的地址有1024 * 1024 * 4096B = 2^32B = 4GB;正好是4G。perfect!!!!

 我们知道进程的虚拟地址称为线性地址,每一个线性地址都由第一级页表、第二级页表以及该地址相对于该页首地址的偏移量三部分组成,即10-10-12的形式:如图2