两级页表
1.单级页表存在的问题
1.所有页表项必须连续存放,页表多大时需要很大的连续空间 2.在一段时间内并非所有页面都用得到,因此没必要让整个页表常驻内存 某计算机系统按字节寻址,支持32位的逻辑地址,采用分页存储管理,页面的大小为4kb,页表项长度为48. 4kb=2^12B,因此页内地址要用12位表示,剩余20位表示页号 因此,该系统中用户进程最多有2^20页.相应的,一个进程的页表中,最多会有
2^20=1M=1048576个页表项,所以一个页表最大需要
2^20*4B=
2^22B,共需要
2^22/
2^12=
2^10个页框存储该页表
2.两级页表
1.将长长的页表再分页 2.逻辑地址结构:(一级页表,二级页表,页内偏移量) 3.术语:页目录表/外层页表/顶级页表
3.如何实现地址转换
1.按照地址结构将逻辑地址拆分成三部分 2.从PCB中读出页目录表始址,根据一级页号查页目录表,找到下一级表在内存中的存放位置 3.根据二级页表号查表,找到最终想访问的内存块号 4.结合页内偏移量得到物理地址
4.其他细节
1.多级页表中,各级页表的大小不能超过一个页面,若两级页表不够,可以分更多级 2.多级页表的访问次数(假设没有块表机构)—N级页表访问一个逻辑地址需要N+1次访存。