CPU虚拟化技术(留坑)
留坑~~~
不知道这个是这么实现的
CPU虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上;而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。
CPU 虚拟化基本知识
CPU 虚拟化着重于性能,只要有可能就会直接在处理器上运行。只要有可能就会使用基础物理资源,且虚拟化层仅在需要时才运行指令,使得虚拟机就像直接在物理机上运行一样。
CPU 虚拟化与仿真不同。采用仿真时,所有操作均由仿真器在软件中运行。软件仿真器允许程序在不同于最初编写时所针对的计算机系统上运行。仿真器通过接受相同的数据或输入并获得相同的结果,来模拟或再现原始计算机的行为,从而实现仿真。仿真提供了可移植能力,并在几个不同平台上运行针对一个平台而设计的软件。
CPU 资源过载时,ESX/ESXi 主机将在所有虚拟机之间对物理处理器进行时间划分,以便每个虚拟机在运行时就如同具有指定数目的虚拟处理器一样。运行多个虚拟机的 ESX/ESXi 主机会为各虚拟机分配一定份额的物理资源。如果使用默认资源分配设置,与同一主机关联的所有虚拟机都将在每个虚拟CPU上收到相同份额的CPU。
这意味着单处理器虚拟机分配到的资源只有双处理器虚拟机的一半。
基于软件的 CPU 虚拟化
采用基于软件的CPU虚拟化后,客户机应用程序代码直接在处理器上运行,同时转换客户机特权代码并在处理器上运行该代码。
转换后的代码有点大,比本机版本的执行速度通常要慢。因此,具有少量特权代码组件的客户机程序的运行速度与本机程序非常接近。而具有大量特权代码组件(如系统调用、陷阱或页面表更新)的程序在虚拟环境中的运行速度可能较慢。
硬件辅助的 CPU 虚拟化
某些处理器(例如 Intel VT 和 AMD SVM)为 CPU 虚拟化提供了硬件辅助。
使用此辅助时,客户机可以使用独立的执行模式(称为客户机模式)。应用程序代码或特权代码等客户机代码均在客户机模式中运行。出现某些事件时,处理器退出客户机模式而进入根模式。管理程序将在根模式中执行,确定退出的原因,采取任何必需的措施,并在客户机模式中重新启动客户机。
将硬件辅助用于虚拟化时,不需要再转换代码。因此,系统调用或陷阱密集型工作负载在运行时的速度非常接近本机速度。但是,诸如涉及更新页面表之类的一些工作负载会导致多次退出客户机模式而进入根模式。根据退出的次数和退出所用的总时间,这可能会明显降低执行的速度。

转载请注明:
本文转自:http://www.liusuping.com/xunihua/xunihua-cpu.html
http://www.zdnet.com.cn/wiki-Virtualization_Technology
http://www.ibm.com/developerworks/cn/aix/library/1212_weixy_powervmcpuusage/
http://www.idcun.com/virtual/2014052838966.html
http://www.huawei.com/ecommunity/bbs/10147029.html
CPU虚拟化技术(留坑)的更多相关文章
- CPU硬件辅助虚拟化技术
目前主要有Intel的VT-x和AMD的AMD-V这两种技术.其核心思想都是通过引入新的指令和运行模式,使VMM和Guest OS分别运行在不同模式(ROOT模式和非ROOT模式)下,且Guest O ...
- 虚拟化技术实现 — KVM 的 CPU 虚拟化
目录 文章目录 目录 前文列表 x86 体系结构的虚拟化 硬件辅助的 CPU 虚拟化 由 VMX 切换支撑的 CPU 虚拟化技术 KVM 的 CPU 虚拟化实现 vCPU 的调度方式 客户机 CPU ...
- 虚拟化技术原理(CPU、内存、IO)
本文来自:http://www.ywnds.com/?p=5856 虚拟化 云计算现在已经非常成熟了,而虚拟化是构建云计算基础架构不可或缺的关键技术之一. 云计算的云端系统, 其实质上就是一个大型的分 ...
- [转] KVM虚拟化技术生态环境介绍
KVM虚拟化技术生态环境介绍 http://xanpeng.github.io/wiki/virt/kvm-virtulization-echosystem-intro.html kvm和qemu/q ...
- KVM之CPU虚拟化
1.1 为什么要虚拟化CPU 虚拟化技术是指在x86的系统中,一个或以上的客操作系统(Guest Operating System,简称:Guest OS)在一个主操作系统(Host Operatin ...
- CPU虚拟化的常见技术
关键词:cpu虚拟化,KVM,Host-PassThrough,Nested,CGroup,NUMA,热添加 云计算虚拟化技术主要包括三个领域:计算.存储.网络 本文主要总结了计算虚拟化领域中的CPU ...
- 怎样知道 CPU 是否支持虚拟化技术(VT) | Linux 中国
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79832475 wx_fmt=png&a ...
- CPU纯软件半虚拟化技术
在2003年出现的Xen,使用了另外的一种半虚拟化的方案来解决x86架构下CPU的敏感指令问题.主要采用Hypercall技术.Guest OS的部分代码被改变,从而使Guest OS会将和特权指令相 ...
- CPU纯软件全虚拟化技术
我们在前面的文章中提到了虚拟化技术的大致分类情况,即分为全虚拟化.半虚拟化和硬件辅助虚拟化3大类.而我们虚拟化技术最主要的虚拟主体就是我们的硬件CPU.内存和IO,那么我们的CPU在全虚拟化模式下如何 ...
随机推荐
- 循环btn上面的视图
#import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...
- php开源项目
论坛社区:Discuz.PHPWind.ThinkSAAS.phpBB CMS内容管理:DedeCMS.PHPCMS.帝国CMS.齐博CMS.Drupal 企业建站:CmsEasy.KingCMS.P ...
- Unity 区分不同平台
问题:公司开发的游戏实在android平台上运行,但是我们是在windows平台下进行开发,OK ,经常有些地方开发完之后就要换到android上面,能区分平台的不同就可以对代码做区分处理 回答:un ...
- php字符串常用函数
addslashes print addslahes ('She said, "Great!"'); #output #She said, \"Great!\ echo ...
- 在fortran下进行openmp并行计算编程
最近写水动力的程序,体系太大,必须用并行才能算的动,无奈只好找了并行编程的资料学习了.我想我没有必要在博客里开一个什么并行编程的教程之类,因为网上到处都是,我就随手记点重要的笔记吧.这里主要是open ...
- UI---startup--jquery
http://www.w3school.com.cn 传统的基于表单提交, 整页刷新式的并不需要前端MVC. 当 然这种体验会很糟糕.试想一下, 用WebQQ时,每发一次消息页面就要泛白一次, 这是什 ...
- nsenter into docker. selinux(semanage,restorecon)
Docker容器运行后,如何进入容器进行操作呢?起初我是用SSH.如果只启动一个容器,用SSH还能应付,只需要将容器的22端口映射到本机的一个端口即可.当我启动了五个容器后,每个容器默认是没有配置SS ...
- Redis学习笔记(6)-SortedSet
package cn.com; import java.util.HashMap; import java.util.Map; import java.util.Set; import redis.c ...
- Redis学习笔记(1)-Key
package cn.com; import java.text.ParseException; import java.util.List; import java.util.Set; import ...
- yii2 实现多表联查