4.二级页表的转换过程
4.1.正常情况
1.查页目录表需要一次访存,查二级页表需要一次访存,访问最终的物理地址需要一次访存
2.页目录表的存储地址由页表始址寄存器指明;二级页表的存储地址通过根据页目录号查询页目录表得到
3.页目录表常驻内存(需要通过页目录表逐级查询低级页表,跟根目录常驻内存相同原理)
1.将进程中的3号页面转换为物理地址,即00 03H转换为物理地址
2.将00 03H拆分为两个部分:前8bit 00H为页目录号,后8bit 03H为页表号
3.根据页目录号00H查询页目录表 → 对应二级页表00H的页框号为00DH
4.根据页表号03H查询二级页表 → 逻辑地址00 03H对应的物理地址的页框号为012H
4.2.缺页
1.设访问00 07 001H → 页目录号00H,页表号07H,页内偏移量001H
2.根据页目录号00H查询页目录表 → 对应二级页表00H的页框号为00DH
3.根据页表号07H查询二级页表 → 有效位为0,说明此时该页并未调入内存中,需要从外存调入内存
4.将20号物理块调入内存,并修改相应页表项
4.3.结合TLB查询
1.根据虚拟页号00 03H查询TLB → TLB命中,且有效位为1 → 得到物理地址页框号012H
2.根据虚拟页号00 07H查询TLB → TLB命中,但有效位为0 → 查询页目录表 → 查询二级页表
5.进程通信
5.1.页表方式
1.进程A先发出系统调用请求,操作系统将数据(通信内容)放入(复制)操作系统内核区中
2.进程B再发出系统调用请求,操作系统将1中的数据从操作系统内核区中放入(复制)进程B的用户区中
3.原理:每个进程的页表中都有映射到相同物理页框的操作系统内核区,即这些物理页框在所有进程中共享
5.2.共享内存方式
两个进程各自选择一片逻辑地址映射到同一物理页框中,这样每个进程往这片区域写数据之后,另一个进程就能实时的看见