HVM的虚拟处理器资源管理
来源:互联网 发布:米开朗基罗传 知乎 编辑:程序博客网 时间:2024/06/02 04:20
概述
在处理器资源的管理中,HVM支持如下的机制:
- 细粒度的系统时钟
- 搁置处理器执行的能力
- 创建新处虚拟处理器的能力
如何访问HVM的时钟
HVM支持细粒度的时钟,我们可通过虚拟指令vmgettime以及vmsettime来进行访问:
- Vmgettime指令返回一个代表当前时间的64位值
- Vmsettime指令重置64位值的时钟
标注:HVM的实现可以随意定义时钟对应的是CPU时间还是时钟计时单元。举例来说,如果虚拟设备监测器定制一个虚拟CPU,如果虚拟CPU不再执行指令,那么时钟有可能不会继续增值。
如何搁置处理器
HVM上的访客模式程序可通过两种方式搁置虚拟处理器的执行:
- 虚拟指令vmwait
- 虚拟指令vmyield
Vmwait搁置执行将挂起一个中断事件。当下一个事件处理后,终结事件服务的虚拟指令vmrte将在vmwait指令后导致一个指令重新开始。
Vmyield可暂时搁置执行,独立于任何虚拟处理器事件。它导致VMM在同等或更高的优先级上安排其他虚拟处理器,不需要优先权。
标注:在试图去取得一个spinlock时,推荐使用访客操作系统的yield指令。这保证那些拥有spinlock的虚拟处理器能够有机会执行。
如何创建一个虚拟处理器
访客模式程序能够通过虚拟指令vmstart来创建一个新的虚拟处理器实例。新创建的实例可与已有的处理器实例并行运行。
新的虚拟处理器实例在访客模式下执行,从vmstart的参数中对特定的地址进行取指令。新的实例使用虚拟处理器实例的相同内存映射。
每个虚拟处理器有一个独特的32位标志位,它的范围内根据下列公式进行确定:
0 .. (max_number_of_supported_virtual_processors - 1)
一个虚拟处理器ID值不可能为-1.初始虚拟处理器实例有一个为零的虚拟处理器ID。虚拟处理器上的程序可以通过执行虚拟指令vmvpd来访问处理器ID。
Vmstart的取反是虚拟指令vmstop。当虚拟处理器执行vmstop时,如下的事件将会发生:
- 虚拟处理器将会被终止
- Vmstop后的指令将不会被提交
- 虚拟处理器相关的资源将被释放,并将其对之后创建的虚拟处理器实例可用
处理器管理的虚拟器指令
下图总结了用于虚拟器资源管理的虚拟指令
- HVM的虚拟处理器资源管理
- HVM,Hexagon处理器的虚拟器解决方案
- HVM的常用虚拟指令与详解
- VPS的Xen、OpenVZ、Xen HVM、KVM、VMware虚拟技术判断
- HVM的初始化状态
- HVM的事件模型
- HVM的调试方法
- HVM(硬件辅助虚拟化)技术
- 虚拟化技术比较 PV HVM
- 虚拟化技术比较 PV HVM
- 虚拟化技术比较 PV HVM
- 虚拟化技术比较 PV HVM
- xen中HVM的安装
- 《处理器虚拟化技术》
- 全虚拟化HVM和半虚拟化PV虚拟平台通信机制分析
- HVM虚拟机的tap和vif网卡
- HVM的中断与异常处理
- HVM的缓存与内存控制
- EventBus使用详解(一)——初步使用EventBus
- 高并发服务端分布式系统设计概要
- Java程序员必看--扩展鼠标右键菜单功能
- 学习c/c++的50个好网站
- UILabel高度的自适应以及UITableViewCell的高度自适应
- HVM的虚拟处理器资源管理
- APP测试要点
- Linux下SVN安装配置
- 学习windows驱动(队列)
- 如何统计Python代码行数
- Android成长之路-布局详解
- easyui tree节点取消选择方法
- C++不同继承方式的基类和派生类特性
- unicode和UTF-8的关系