【linux】页表的简单理解!!!

在使用的计算机内存(4G)上面用户可以使用的内存只有0~3G,3~4G是系统内核使用的区域。
这里写图片描述

但是在物理内存上面,任何的区域和位置都是可读可写操作的,假如进程直接访问的是物理内存,那么系统就会存在很大的不安全性。

页表
页表的存在很好的协调了物理内存和虚拟内存,从而很好的提高系统的安全性。
在一个进程里面使用的内存可能是很少的一部分,但是存在的实际内存确实很大的,所以在使用页表的时候可能会映射很小的一部分。

这里写图片描述

由于每个进程都存在自己的页表数据结构,那么很有可能在相同的虚拟内存上面看到不一样的数据,那时候因为在用户看到的内存地址都是虚拟地址,而数据存储是在物理内存,物理地址的不同则数据就会不同。

多级页表

假如在系统里面,物理内存和虚拟内存是一一对应的,那么在进程空间里面就会存在很多的页表,同时也会占据很多的空间,那么解决这个问题就出现了多级页表。

liunx里面使用的4级页表:
这里写图片描述

在计算机系统体系结构里面,将页表划分成不同的项,从而不同的项保存地址的不同位。
- cr3里面保存的是进程的PID

地址的翻译过程:
- bit22~bit31作为页目录索引项,在cr3里面找到相应的页目录项
- bit12~bit21作为寻找到的页目录项的页表索引,在页表项里面找到相应的页表
- bit0~bit11作为页表索引项,在页内找到也得偏移量和页得到相应的物理地址

所以在进程进行替换的时候只需要将cr3的指向替换即可

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值