反向页表(基于hash表)

 反向页表:顾名思义,以页帧号为index,页号地址为value,每次访问将value和逻辑地址比对,这样做的原因就是大大节省了内存的开销,全局只需要一张页表,但是当物理内存特别大的时候,这个表也就很大了,访问一个地址可能需要遍历整个表(因为是按照物理地址建立的,所以要挨个访问、判断),那么有什么方法是可以缓减访问速度的压力吗,那就是基于hash表的访问

来看两张图片(引用自网络)

首先是不用hash表的反向页表

很明显,由于访问查找的比对是根据页号,而index是页帧号(ppn),所以只能从第一个页帧号开始,一个一个做比对(PID是当前进程的标识),速度较慢

再来看看用了hash表的反向页表

hash表的作用:

将页号即图中的vpn做一个hash计算(使用硬件加速),结果当然是得到一个页帧号,也就是反向页表的index,但是这样可能会存在hash冲突,因此在传参的时候需要传入当前进程的PID作为标识,以确保找到对应的页帧号,NEXT中存放的是由于hash冲突导致的相同hash值的下一个条目的index(页帧号),这样就不需要一个一个进行比对了。如图,0x1经过计算得到0x0,因此去访问反向页表的index为0x0这个条目,比对之后发现PID不对,因此访问NEXT,找到相同hash值的下一个条目......找到之后,index+offset即为物理访问地址

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值