操作系统--页表

页表

页表
操作系统会为每一个进程维护一个页表的拷贝,这个拷贝是用来将逻辑地址转换成物理地址的。当一个进程被分配CPU时,CPU调度程序会使用页表来定义一个硬件页表

硬件页表
页表是存放在内存中的,CPU有一个寄存器用来指向页表在内存中的起始地址。在上下文切换时,切换页表只需要修改寄存器中的值即可。

页面大小
在64位系统中,页面大小为4K Bytes,即2的12次方,所以页内位移需要12位表示。那么页号也就是64-12=52位,但实际上只用到52位中的36位。
操作系统--页表_第1张图片

快表

TLB
TLB是一种很小但查找速度很快的缓存,TLB配合页表一起使用:

  • TLB存放了很多进程中的一部分页表条目,这些条目就称为快表。

  • 当CPU转换逻辑地址时,会去TLB中进行查找,如果找到了,那么立刻就能将地址转换完成;如果没有找到,那么需要对内存进行多次访问来将逻辑地址转换成物理地址。

操作系统--页表_第2张图片
TLB命中率
操作系统--页表_第3张图片

基于页的保护和共享

保护
操作系统--页表_第4张图片
共享
操作系统--页表_第5张图片

多级页表

页表大小
操作系统--页表_第6张图片
为了解决页表连续的问题,使用多级页表将页表打散。

操作系统--页表_第7张图片
多级页表
操作系统--页表_第8张图片
采用多级页表并没有使总页面数量增加,只是检索的次数增加了。采用多级页面的目的是不希望页表在内存中是连续存储的。如果前一级页表项数也非常大,那么就应该继续拆分页表。

你可能感兴趣的:(操作系统--页表)