b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

CPU纯软件完全虚拟化技术

电脑杂谈  发布时间:2020-08-08 18:09:35  来源:网络整理

虚拟与现实技术_cpu 虚拟化技术_支持虚拟化的cpu

在上一篇文章中,我们提到了虚拟化技术的一般分类,分为三类: 完全虚拟化,半虚拟化和硬件辅助虚拟化. 虚拟化技术的主要虚拟主题是硬件CPU,内存和IO,那么我们的CPU如何在完全虚拟化模式下工作,如何在半虚拟化模式下工作,如何在硬件辅助虚拟化模式下工作? ?或者要细分,我们可以分为:

这一次我们将讨论CPU的完全虚拟化技术,半虚拟化技术和硬件辅助虚拟化技术.

不支持硬件辅助虚拟化技术的X86架构下的CPU具有4个特权级别(ring0〜ring3),操作系统处于ring0的最高级别,而应用程序处于ring3的最低级别

wKioL1afFnSRpxlQAABjQiFvejo026.png

在这种架构下,要实现CPU的完全虚拟化是极其困难的. 为什么很难?

原始操作系统在ring0层上运行,并具有所有硬件的所有特权级别;虚拟化后,操作系统在ring1层上运行,并且该操作系统无权执行某些特权指令. 如何确保这些特权指令的执行;确保操作系统执行虚拟机的特权指令时,可以保证其他正在运行的操作系统虚拟机的安全性; 1.仿真技术

此CPU完全虚拟化技术的第一个实现是陷阱和仿真技术,即陷阱模式和仿真技术. 通过VMM自动捕获方法运行操作系统要求的特权指令,该技术可以返回到操作系统. 当操作系统生成特权指令时,VMM将自动捕获它,截取操作系统请求的特权指令,然后在通过VMM运行后将结果返回到OS层. VMM将使用仿真来执行特权指令仿真.

wKiom1afFk-T2kDjAACQyVyCch0212.png

在虚拟化模式下,有两个特殊指令: 特权指令和敏感指令. 那么什么是特权指令?什么是敏感指示?

cpu 虚拟化技术_虚拟与现实技术_支持虚拟化的cpu

特权说明: 存在一些用于操作和管理系统中关键系统资源的说明. 这些说明只能以最高特权级别正确运行. 如果它以非最高特权级别运行,则特权指令将引发异常,并且处理器将进入最高特权级别,并由系统软件进行处理.

敏感指令: 用于操作特权资源的指令,包括修改虚拟机的操作模式或下面的物理机的状态;读写时钟,中断和其他寄存器;访问存储保护系统,地址重定位系统和所有I / O指令.

根据Popek和Goldberg的定义,支持虚拟化的指令集的前提是所有敏感指令都是特权指令. 很遗憾,x86指令集不能满足此要求.

在虚拟化方案中,需要将GuestOS内核的特权从原始的0提升为1或3. 当特权指令的这一部分在Guest OS中发生时,将生成陷阱,并由陷阱捕获. VMM,并由VMM完成. 这是虚拟化,特权特权/诱捕和仿真的基本方法. VMM必须捕获并完成虚拟化方案中的敏感指令. 对于MIPS,PowerPC和SPARC等常规RISC处理器,敏感指令必须是特权指令,但是x86除外,x86的大多数敏感指令都是特权指令,但是由于某些敏感指令不是特权指令,因此它们不是陷阱将由VMM自动捕获.

2. 二进制翻译技术

使用模拟方法对x86架构CPU进行仿真和虚拟化,但是由于并非x86架构CPU中的所有敏感指令都是特权指令,因此它无法完全解决不是特权指令的敏感指令. 模拟模拟问题. 例如SGDT,SLDT,SIDT…

由于仿真技术的固有缺陷,CPU的虚拟化不完整. 因此,基于x86的虚拟化很难像其他CPU架构一样实现虚拟化. 例如,IBM的Power CPU架构很早就配备了虚拟化技术,并已在实践中使用.

这种现象在1999年得到了改善,VMware通过二进制转换技术完成了x86 CPU架构的完全虚拟化.

虚拟与现实技术_支持虚拟化的cpu_cpu 虚拟化技术

它主要使用优先级压缩技术(Ring Compression)和二进制代码转换技术(Binary Translation). 优先级压缩技术允许VMM和Guest以不同的特权级别运行. 对于x86体系结构,VMM在最高特权级别Ring 0下运行,Guest OS在Ring 1下运行,而用户应用程序在Ring 3下运行. 因此,Guest OS的核心指令无法直接传递给计算机系统硬件以用于执行,但需要由VMM捕获和模拟(一些难以虚拟化的指令需要通过二进制翻译技术进行转换). 如下所示.

wKioL1afFsDjjbbTAAAl_Q4fU1I877.png

特权级别,我认为我不需要在这里谈论更多. 每个人都对二进制代码转换技术很清楚,这可能并不是每个人都了解的. 二进制翻译技术缩写为BT,这是一种直接翻译可执行二进制程序的技术,该程序可以将一个处理器上的二进制程序转换为另一个处理器以执行. 二进制翻译技术将机器代码从源机器平台映射(翻译)到目标机器平台,包括指令语义和硬件资源的映射,以便源机器平台上的代码“适合”目标平台. 因此,翻译后的代码更适合目标机器,并具有更高的运行时效率. 二进制翻译系统是位于应用程序和计算机硬件之间的软件层. 它减少了应用程序和底层硬件之间的耦合,因此两者可以相对独立地开发和更改. 二进制翻译也是一种编译技术. 它与传统编译之间的区别在于其不同的编译处理对象. 传统编译处理的对象是某种高级语言,编译后会生成特定机器的目标代码. 二进制翻译处理的对象是某台机器的二进制代码,该二进制代码是通过传统的编译过程生成的,经过二进制翻译后,经过处理,就会生成另一台机器的二进制代码.

根据不同的实现方法,二进制翻译技术可以分为三类: 解释执行,静态翻译和动态翻译.

代码解释和执行

解释过程实时解释并执行源机器代码中的每条指令. 系统不保存或缓存解释的指令,并且不需要用户干预或优化. 解释器相对容易开发,并且与旧体系结构高度兼容也相对容易,但是效率很低.

静态二进制翻译

在静态二进制翻译(SBT,静态二进制翻译)中,代码在运行之前先脱机翻译,根据目标计算机的指令结构生成新程序,然后直接执行生成的程序. 静态翻译器的离线翻译过程不会给程序操作带来额外的开销,因此可以充分采用各种优化措施来生成高质量的代码,从而大大提高了运行效率.

动态二进制翻译

虚拟与现实技术_支持虚拟化的cpu_cpu 虚拟化技术

动态二进制翻译(DBT,Dynamic Binary Translation)可以在程序运行时翻译执行的代码片段,从而克服了静态翻译无法解决的一些困难,例如在运行时收集动态信息,代码挖掘和自修改代码和精确的中断问题. 而且,动态翻译器对用户完全透明,而无需用户干预. 尽管动态翻译具有许多上述优点,但是由于动态执行的局限性,无法像静态翻译那样完全优化翻译过程,这使得翻译生成的代码比静态翻译器效率低.

三种二进制翻译技术的比较

wKiom1afFp-iEdF_AACk-KSZCrc149.png

解释执行是最容易实现的翻译技术,但是其笨拙的实现大大降低了翻译系统的执行效率. 尽管静态转换可以提供有效的运行时性能,但是由于它不能覆盖静态环境中的所有代码,因此无法将其与对解释器的依赖区分开. 与上述两种类型相比,动态翻译解决了许多问题,例如代码覆盖率,自修改代码和精确中断,同时还提供了可接受的执行效率. 因此,VMware基于动态二进制转换技术实现了x86架构CPU的虚拟化.

wKioL1afFvXSPZvRAAC6ySjX1WQ706.png

如典型的动态二进制翻译系统的结构所示​​,要翻译的代码称为源机器代码,而在主机上运行的代码称为目标机器代码. 典型的动态二进制翻译器主要包括两个模块: 翻译引擎和执行引擎. 转换引擎负责将源机器代码转换代码转换为目标机器代码. 执行引擎负责准备目标机器代码的执行上下文(Execution Context),然后从目标机器代码缓存中查找并执行与源机器代码相对应的目标代码.

基本操作过程如下:

查找阶段

此阶段查询目标代码块在目标代码缓存中是否存在,如果存在,则返回目标块入口地址,如果不存在,则进入转换阶段.

cpu 虚拟化技术_虚拟与现实技术_支持虚拟化的cpu

上下文切换阶段

当翻译模块查询或生成目标代码块时,二进制翻译系统将执行控制转移. 系统将控制权转移到执行模块以运行目标代码块,并且在目标代码块完成运行后,系统需要恢复对执行引擎的控制. 控件传输需要保存程序的上下文.

翻译(翻译)阶段

完成从源计算机二进制代码到目标计算机二进制代码的转换. 它包括三个子阶段: 解码,中间代码优化和编码.

执行和链接阶段

将基本块翻译成目标代码块后,根据源代码的控制流程完成目标代码块之间的直接和间接跳转链接,并依次运行目标代码块.

3. 摘要

在没有CPU硬件辅助虚拟化技术之前,对于X86架构的CPU,使用仿真和二进制转换技术来实现CPU的虚拟化,但是仿真方法具有固有的缺陷,而x86 CPU尚未完全虚拟化. 建筑. 二进制翻译技术使用完全不同的想法来实现x86架构的CPU虚拟化. 实际上,对于x86 CPU虚拟化,困难在于其特权和敏感指令的虚拟化实现. 当然,在意识到CPU指令的问题之后,还有另一个问题在等待着我们!那是x86架构的CPU调度问题吗?

在虚拟环境中,x86架构CPU的调度问题是什么?

1. 虚拟CPU和物理CPU之间的对应关系?

2. 虚拟CPU和物理CPU之间的资源分配?

3,虚拟CPU和虚拟CPU之间的优先级?

4. 多核虚拟CPU架构vSMP和vNUMA与物理多核CPU架构SMP和NUMA之间的调度和负载平衡?


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-294695-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...