Linux 操作系统常识

页表

页表是内存管理系统中的数据结构,用于向每个进程提供一致的虚拟地址空间,每个页表项保存的是虚拟地址到物理地址的映射以及一些管理标志。应用进程只能访问虚拟地址,内核必须借助页表这个数据结构和硬件(MMU) 把虚拟地址翻译为对物理地址的访问。

虚拟地址到物理地址的映射过程

在这里插入图片描述
地址翻译过程完全是由硬件完成的。

图中CR3保存着进程页目录PGD的地址,不同的进程有不同的页目录地址。进程切换时,操作系统负责把页目录地址装入CR3寄存器。

页表转化失败

在地址转换过程中,有两种情况会导致失败发生。

  1. 第一 要访问的地址不存在,这通常意味着由于编程错误访问了无效的虚拟地址,操作系统必须采取某种措施来处理这种情况,对于现代操作系统,发送一个段错误给程序;或者要访问的页面还没有被映射进来,此时操作系统要为这个线性地址分配相应的物理页面,并更新页表。

  2. 第二 要查找的页不在物理内存中,比如页已经交换出物理内存。在这种情况下需要把页从磁盘交换回物理内存。

参考链接

https://blog.csdn.net/u011209099/article/details/9248525

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值