页表
页表
操作系统会为每一个进程维护一个页表的拷贝,这个拷贝是用来将逻辑地址转换成物理地址的。当一个进程被分配CPU时,CPU调度程序会使用页表来定义一个硬件页表。
硬件页表
页表是存放在内存中的,CPU有一个寄存器用来指向页表在内存中的起始地址。在上下文切换时,切换页表只需要修改寄存器中的值即可。
页面大小
在64位系统中,页面大小为4K Bytes,即2的12次方,所以页内位移需要12位表示。那么页号也就是64-12=52位,但实际上只用到52位中的36位。
快表
TLB
TLB是一种很小但查找速度很快的缓存,TLB配合页表一起使用:
-
TLB存放了很多进程中的一部分页表条目,这些条目就称为快表。
-
当CPU转换逻辑地址时,会去TLB中进行查找,如果找到了,那么立刻就能将地址转换完成;如果没有找到,那么需要对内存进行多次访问来将逻辑地址转换成物理地址。
TLB命中率