栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

论文阅读笔记(三):A Comparison of Software and Hardware Techniques for x86 Virtualization

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

论文阅读笔记(三):A Comparison of Software and Hardware Techniques for x86 Virtualization

原文链接:A Comparison of Software and Hardware Techniques for x86 Virtualization
这篇文章发表于2006年10月,是一个KVM还没有开发出来的时代。
这篇文章主要比较了对x86平台的硬件和软件虚拟化技术。

  • x86平台直到最近(指2005年)才允许经典的trap-and-emulate虚拟化方式。要知道这种虚拟化方式是建立于硬件基础上的。所以文章比较软件VMM和新型的需要硬件支持的VMM,发现软件反而更快,于是文章想找出原因。
  • 为什么“硬件性能低于软件”很让人惊讶呢?实际上软件是依附于硬件的,而一般来说,硬件的运行速度远高于软件,可是x86的软硬件虚拟化的技术却和常理完全不同。
  • 原因是什么?
    • 它没有对MMU虚拟化的支持
    • 它无法与用于MMU虚拟化的现有软件技术共存
Introduction
  • 传统的软件VMM,用的方法是二进制翻译。就是说VM在有指令发给CPU的时候,直接转换成二进制的代码控制CPU。
  • x86架构商提供了硬件扩展,让纯软件虚拟化变成了硬件辅助行虚拟化。
  • 文章审视了虚拟指令执行引擎的性能、新兴的硬件支持,确定性能折中点,软件和硬件VMM的定量性能比较。
Classical Virtualization
  • Popek and Goldberg’s 1974的论文提供了VMM的三个关键特征:
    • 真实性。VMM的软件和原OS软件执行时间相同
    • 表现情况。绝大多数的VM由硬件执行,无需VMM干预
    • 安全性。VMM可以管理一切。
  • VMM的基础功能是提供VM一个运行环境,这个环境可以忽略虚拟系统和下行软件的特权区别。
    • VMM从客户机的主结构中继承了映射结构
  • 为了保持映射结构的一致性,VMM通常使用硬件页面保护机制来捕获对内存主结构的访问
    • 啥是二面保护机制呢,就是加上读写锁。
    • 页面保护机制被称为tracing
  • 在trace花费,隐藏页面错误花费和上下文切换花费上找到平衡点,这个操作的难度很大,而且对性能的提升也是非常大的。
Software virtualization
  • x86虚拟化的困难
    • 特权状态的可见性。客户机可以观察到,当它读到代码段选择器的时候,他已经被剥夺了特权,因为当前的特权状态被存储到了选择器的低两位中。
    • 当特权指令在用户级别空间运行的时候,缺少陷阱捕获机制。
  • 上述困难只要在解释器上就可以解决
  • 软件VMM使用解释器有如下特点:
    • 二进制。输入是二进制代码,不是源代码
    • 动态性。翻译过程在运行时解决,与生成代码无关
    • 可控性。代码只有在即将被运行的时候才被翻译
    • 系统等级。(没太懂)它必须运行缓冲区溢出,该缓冲区溢出恰好会像本机运行一样掩盖返回地址(在产生的错误消息中产生相同的十六进制数字)
    • 子集性。解释器会将完整的,包括特权指令的输入形式转换成安全的输出形式。
    • 适应性。被翻译的代码会根据客户机的反应做出调整,以做到高性能。
Hardware virtualization
  • virtual machine control block, VMCB,是一个内存内的数据结构,将控制状态和客户机虚拟CPU的子集状态结合
  • 我们将原始的x86的运行环境叫做主机模式(host mode,后称为hm),一个新的指令vmrun可以将hm转变为guest mode(gm)
  • 当硬件执行exit操作的时候,硬件将虚拟机状态存进VMCB中,再重新进入主机模式
  • 最终虚拟机的性能主要取决于退出的频率,因此减少退出频率是经典VMM的最重要的优化。
  • 所以怎么减少exit是提升性能的方法,比如设计的时候,仅用于计算的虚拟机就不要退出了,其他情况下可以将错误页隐藏起来,这样就不会因为错误而被迫退出。
Comparison
  • 软件虚拟化需要精细的工程考量来确保性能,硬件虚拟化可以避免退出频率高而导致的性能下降,但是对其余退出收取高昂成本(这点没看懂,什么叫remaining exit)。
  • 软件VMM具有更丰富的可用选项集,包括自适应功能,而当前的硬件机制更狭窄地针对陷印和仿真风格的虚拟化,而使用其他软件/硬件组合的灵活性较低。

文章剩下的部分就是在介绍实验设计和测量方法了,对于写论文的小伙伴可以看看人家的设计思路,这里只是学习笔记,剩下的内容不赘述。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/912732.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号