【计算机组成原理回顾】理解虚拟内存机制

本文回顾了虚拟内存的主要能力,包括为进程提供一致的地址空间、保护进程地址不受干扰以及利用主存作为磁盘缓存。讨论了虚拟地址与物理地址的转换过程,阐述了CPU如何通过MMU将虚拟地址映射到物理地址并利用高速缓存。还介绍了内存映射机制,虚拟内存如何与磁盘文件对象对应,包括普通文件和匿名文件的映射,实现按需加载和高效使用存储资源。

推荐阅读 计算机底层知识拾遗(一)理解虚拟内存机制

虚拟内存主要提供了3个能力:

  1. 给所有进程提供一致的地址空间,每个进程都认为自己是在独占使用单机系统的存储资源

  2. 保护每个进程的地址空间不被其他进程破坏,隔离了进程的地址访问

  3. 根据缓存原理,上层存储是下层存储的缓存,虚拟内存把主存作为磁盘的高速缓存,在主存和磁盘之间根据需要来回传送数据,高效地使用了主存

虚拟地址和物理地址

对于每个进程来说,它使用到的都是虚拟地址,每个进程都看到一样的虚拟地址空间,对于32位计算机系统来说,它的虚拟地址空间是 0 - 232,也就是0 - 4G。对于64位的计算机系统来说,理论的虚拟地址空间是 0 - 264,远高于目前常见的物理内存空间。虚拟地址空间不需要和物理地址空间一样大小。

CPU在执行进程的指令时要取一个实际的物理地址的值的时候主要有几步:

  1. 把进程指令使用的虚拟地址通过MMU转换成物理地址

  2. 把物理地址映射到高速缓存的缓存行

  3. 如果高速缓存命中就返回

  4. 如果不命中,就产生一个缓存缺失中断,从主存相应的物理地址取值,并加载到高速缓存中。CPU从中断中恢复,继续执行中断前的指令

所以高速缓存是和物理地址相映射的,进程指令中使用到的是虚拟地址。

  1. 对于CPU来说,它的目标存储器是物理内存,使用高速缓存做物理内存的缓存

  2. 同样,对于虚拟内存来说,它的目标存储器是磁盘空间,使用物理内存做磁盘的缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值