24、虚拟内存技术全解析

虚拟内存技术全解析

1. 虚拟地址翻译

虚拟内存的主要架构支持是将每个虚拟地址动态且高效地转换为物理地址的硬件。地址转换信息存储在主存中的页表中。

在简单情况下,一个进程的所有地址映射使用一个页表。页表存于主存,每个页表项包含物理页号(或页框号)以及一些状态和访问控制位,一个表项可能是 32 位字。每个活动进程有一个页表,寄存器保存页表基地址(PTBA),它是进程状态的一部分。

虚拟地址(VA)分为虚拟页号(VPN)和页偏移两部分,页偏移在虚拟和物理地址中相同,不参与转换。将虚拟页号乘以 4 后与 PTBA 相加,访问主存获取页表项(PTE),再将物理页号与页偏移拼接得到物理地址(PA)。操作步骤如下:
1. 将虚拟地址拆分为虚拟页号和页偏移。
2. 虚拟页号乘以 4 后与 PTBA 相加,访问主存获取页表项。
3. 将物理页号与页偏移拼接得到物理地址。

2. 内存访问控制

对指令和数据的每次访问都需转换,因此可在每个页表项中添加状态位,以页为粒度控制访问。由于每个页表项是进程私有的,这些状态位仅控制该进程对页的访问。

  • RWX 位 :用于检查访问权限,指示页包含只读数据、读写数据还是代码。
  • S/U 位 :跟踪处理器模式(用户或管理员)。管理员模式下处理器可修改所有资源,用户模式下访问受限。

页表项中的一些状态位用于虚拟内存管理:
- V 位(有效位) :指示页是否在主存中,未设置则触发页错误。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值