留坑~~~

不知道这个是这么实现的

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虚拟化技术(留坑)的更多相关文章

  1. CPU硬件辅助虚拟化技术

    目前主要有Intel的VT-x和AMD的AMD-V这两种技术.其核心思想都是通过引入新的指令和运行模式,使VMM和Guest OS分别运行在不同模式(ROOT模式和非ROOT模式)下,且Guest O ...

  2. 虚拟化技术实现 — KVM 的 CPU 虚拟化

    目录 文章目录 目录 前文列表 x86 体系结构的虚拟化 硬件辅助的 CPU 虚拟化 由 VMX 切换支撑的 CPU 虚拟化技术 KVM 的 CPU 虚拟化实现 vCPU 的调度方式 客户机 CPU ...

  3. 虚拟化技术原理(CPU、内存、IO)

    本文来自:http://www.ywnds.com/?p=5856 虚拟化 云计算现在已经非常成熟了,而虚拟化是构建云计算基础架构不可或缺的关键技术之一. 云计算的云端系统, 其实质上就是一个大型的分 ...

  4. [转] KVM虚拟化技术生态环境介绍

    KVM虚拟化技术生态环境介绍 http://xanpeng.github.io/wiki/virt/kvm-virtulization-echosystem-intro.html kvm和qemu/q ...

  5. KVM之CPU虚拟化

    1.1 为什么要虚拟化CPU 虚拟化技术是指在x86的系统中,一个或以上的客操作系统(Guest Operating System,简称:Guest OS)在一个主操作系统(Host Operatin ...

  6. CPU虚拟化的常见技术

    关键词:cpu虚拟化,KVM,Host-PassThrough,Nested,CGroup,NUMA,热添加 云计算虚拟化技术主要包括三个领域:计算.存储.网络 本文主要总结了计算虚拟化领域中的CPU ...

  7. 怎样知道 CPU 是否支持虚拟化技术(VT) | Linux 中国

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79832475 wx_fmt=png&a ...

  8. CPU纯软件半虚拟化技术

    在2003年出现的Xen,使用了另外的一种半虚拟化的方案来解决x86架构下CPU的敏感指令问题.主要采用Hypercall技术.Guest OS的部分代码被改变,从而使Guest OS会将和特权指令相 ...

  9. CPU纯软件全虚拟化技术

    我们在前面的文章中提到了虚拟化技术的大致分类情况,即分为全虚拟化.半虚拟化和硬件辅助虚拟化3大类.而我们虚拟化技术最主要的虚拟主体就是我们的硬件CPU.内存和IO,那么我们的CPU在全虚拟化模式下如何 ...

随机推荐

  1. 浏览器 user-agent 字符串的故事

    你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样? 故事还得从头说起,最初的主角叫NCSA Mosaic,简称Mosaic(马赛克),是1992年末位于伊利诺伊大 ...

  2. 图文解说:Nginx+tomcat配置集群负载均衡

    图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用  作者:niumd Blog:http://ari.iteye ...

  3. push to deploy

    1.server端 建立裸仓 $ mkdir ~/repo.git $ cd ~/repo.git $ git init --bare 脚本 $ vim ~/repo.git/hooks/post-r ...

  4. delimiter

    http://www.mysqltutorial.org/getting-started-with-mysql-stored-procedures.aspx The first command is  ...

  5. 依赖注入Bean属性

    一.Bean属性依赖注入 对于类成员变量,注入方式有三种 •构造函数注入 •属性setter方法注入 •接口注入 Spring支持前两种 1.构造函数 属性注入 使用构造方法注入,在Spring配置文 ...

  6. XPS to Blender 2.7x

    XPS to Blender 2.7x(Blender internal the easy way) Things we are gonna need are Blender 2.7x www.ble ...

  7. 蓝牙BLE ATT剖析(二)-- PDU

    一.Error Handling Error Response The Error Responseis used to state that a given request cannot be pe ...

  8. JavaScript判断文件的大小

    function getFileSize(obj) {//obj 需要传入的参数为Input的对象   var objValue = obj.value; if (objValue == " ...

  9. C++ 自动指针 共享指针

    #include <iostream> #include <string> #include <memory> class Item { public: Item( ...

  10. angularJS商品购物车案例

    <!DOCTYPE html> <html ng-app="shopping"> <head lang="en"> < ...