深入理解os--虚拟内存

物理和虚拟寻址

在这里插入图片描述
在这里插入图片描述

地址空间

虚拟地址空间:[0, 2 n 2^{n} 2n - 1], n为虚拟地址位数
物理地址空间:[0, M - 1] ,M为物理内存大小

虚拟内存作为缓存的工具

磁盘与虚拟内存以磁盘块为单位进行数据交互.
虚拟页集合中的单个页分别归属于三个类别
- 未分配的
虚拟页与磁盘块没建立关联
- 未缓存的
虚拟页与磁盘块建立了关联,但其关联的磁盘块并未放在内存.
- 缓存的
虚拟页与磁盘块建立了关联,且其关联的磁盘块已经放入内存,此后此虚拟页内的地址访问是CPU与内存的交互.

DRAM缓存的组织结构

虚拟页往往比较大
DRAM是全相联的[只有一组]
写回

页表

在这里插入图片描述

- 标志位为
页表项所含地址指向内存
- 标志位为
1.页表项不含地址
2.页表项含地址,地址指向磁盘

页命中

在这里插入图片描述

缺页

在这里插入图片描述
在这里插入图片描述

分配页面

在这里插入图片描述

局部性

任意时刻,程序趋向于在一个较小的活动页面集合上工作[工作集]

虚拟内存作为内存管理的工具

在这里插入图片描述

- 将一组连续的虚拟页映射到任意文件的任意位置的表示法叫内存映射

虚拟内存作为内存保护的工具

在这里插入图片描述

地址翻译

在这里插入图片描述

- 物理页面和虚拟页面大小一致
- 虚拟地址寻址单位是字节
即地址addr, addr+1两者相差了一个字节的距离[不是一个比特位的距离,注意区分]
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

结合高速缓存和虚拟内存

虚拟内存是对磁盘内容的缓存
SRAM高速缓存是对内存内容的缓存
一般SRAM高速缓存采用物理寻址
地址翻译-->高速缓存查找-->命中/不命中
页面主体在内存,但可缓存在高速缓存
在这里插入图片描述

利用TLB加速地址翻译

许多系统在MMU含一个关于PTE的小缓存:TLB[位于芯片内部,缓存一个PTE集合,利用VPN进行寻址]
在这里插入图片描述

在这里插入图片描述

多级页表

在这里插入图片描述
虚拟页大小4KB,虚拟地址空间4GB
节省页表所占据主存空间
在这里插入图片描述
上图PPNPPO结合可以用来得到内存物理地址或磁盘物理地址.[依赖页表项有效位]

综合:端到端地址翻译

- 一个TLB[缓存页表项集合,加速地址翻译,依据虚拟地址进行命名测试]和L1 d-cache
- 字节寻址/虚拟地址14位/物理地址12位/虚拟页64字节
- TLB采用四路组相联,四组
- L1 d-cache[缓存内存字节集合,加速CPU存取内存数据速度,依据内存物理地址进行命中测试]物理寻址,直接映射,16组,行大小为字节
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

0x03d4处一个字节读取
1.取虚拟地址的VPN
2.依据VPNTLB进行命中测试.这里命中得到PPN
如不命中,则从内存页表取得PPN,并将其放入TLB,再次对TLB访问.
PPN存在但有效位为,则触发缺页异常,从磁盘将PPN对应的磁盘页调入内存,更新页表.
PPN不存在且有效位为,触发段错误.
再次执行此访问.
PPN存在且有效位为但访问权限和页表项中冲突,触发段错误.
3.PPN+VPO得到物理地址
4.将物理地址划分为CT/CI/CO对高速缓存进行命中测试
这里命中,取得此地址处一个字节的数据信息.发到CPU
如不命中,从内存取得一个指定内存地址开始的缓存行大小数据块放入高速缓存,再次对高速缓存进行访问.

案例:Intel Core i7/Linux

在这里插入图片描述

Core i7地址翻译

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux虚拟内存系统

在这里插入图片描述

Linux虚拟内存区域

虚拟内存按区域为单位划分,区域是虚拟页的集合
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

raindayinrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值