理解内存虚拟化过程

内存的一些基本概念

处理器没有MMU的时候,CPU内部执行单元产生的内存地址信号将直接通过地址总线发送到芯片引脚,被内存芯片接收,那么其就是不能支持和我们通用计算机一样在外部存储器之中部署程序,其只能是把应用程序和操作系统混合在一起

MMU,内存管理单元

作用:管理内存的逻辑地址和物理地址的映射表,硬件集成到CPU中,由CPU管理

好处:
1、内存的复用技术,计算机可以使用比实际的物理内存更多的存储空间
2、实际的物理内存进行分割和保护,使得每个软件任务只能访问其分配到的内存空间

在这里插入图片描述
网上找了张图,其实内存在系统里被调用前是被分成了若干的内存最小单元页,页就对应物理块,mmu管理的就是中间的页表的关系

内存的作用

CPU只跟内存进行交互,存放的数据能随时被CPU调用计算,就是一个处于CPU和硬盘间的临时存放区

内存断电后为什么数据丢失

数据被放到内存中去时候是直接以二进制形式表示,因为它的原理是利用存储单元中电荷的多少来代表是1还是0

由于硬盘速度比较慢,CPU如果运行程序的时候,所有数据都直接从硬盘中读写,会非常影响效率。所以CPU会将运行软件时要用的数据一次性从硬盘调用到运行速度很快的内存,然后CPU再与内存进行数据交换。

内存虚拟化

定义:把物理机的真实内存统一管理,包装成多份虚拟内存给虚拟机使用
  • Host physical memory 虚拟机管理程序可用的内存
  • Guest physical memory 运行VM上的虚拟机可用的内存
  • Guest virtual memory Guest os 向应用程序提交的一个连续的逻辑地址空间

在这里插入图片描述
在这里插入图片描述
虚拟环境下就变成了需要映射2次才能到达VMM虚拟监视器上才能找到最终的物理块,这样MMU内存管理单元就做不到了

解决办法

通过软件方式
在这里插入图片描述
通过把2张映射表变成一张,交由MMU来做管理

基于CPU硬件辅助虚拟化

上面由软件完成的部分,现在可以交给CPU来做,这样对于处理速度上就会比软件更快更优势

CPU的硬件虚拟化特性
inter vt-x EPT
AMD-V NPT

发布了37 篇原创文章 · 获赞 14 · 访问量 1302

猜你喜欢

转载自blog.csdn.net/yangshihuz/article/details/104083279