两级页表

mac2025-02-06  15

两级页表

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次访存。

最新回复(0)