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后的指令将不会被提交
  • 虚拟处理器相关的资源将被释放,并将其对之后创建的虚拟处理器实例可用

处理器管理的虚拟器指令
下图总结了用于虚拟器资源管理的虚拟指令
这里写图片描述

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信销售群没人买东西怎么办 淘宝想开2个店铺怎么办 拼多多没钱交保证金怎么办 差评一个月后怎么办 淘宝买家投诉成立后怎么办 天猫投诉成立了怎么办 新开实体店铺没生意怎么办 新开淘宝没流量怎么办 白色板鞋有青草弄的绿色怎么办 淘宝租衣服不退押金怎么办 c盘不可以扩展怎么办 实践教学管理平台忘记账号怎么办 淘宝申请售后店家不处理怎么办 全民k歌地区限制怎么办 网络电视hdp无法下载怎么办 淘宝店铺销量为零怎么办 快递号填错卖家拒绝退款申请怎么办 淘宝店代购 售假怎么办 淘宝申请售后卖家没钱怎么办 淘宝禁止评价一个月怎么办 被卖家电话骚扰怎么办 恶意骚扰扣12分怎么办 新店开张交保证金被骗了怎么办 支付宝蚂蚁花呗逾期怎么办 被注销的微信怎么办 花呗有些不能用怎么办 实体店生意不好做怎么办 电器实体店生意越来越差怎么办 开业第一天不吉利怎么办 美容店开业第一天没人怎么办 淘宝店铺没有人访问怎么办 淘宝店铺没有人问怎么办 淘宝申请退款后店铺关闭怎么办 宝贝详情怎么改不了怎么办 改详情页后被删除宝贝怎么办 淘宝网商贷生意不好还不了怎么办 英国遗失在酒店物品怎么办 班福法则首位是0怎么办 同事能力比你强怎么办 新买的木板床响怎么办 笔记本键盘驱动坏了怎么办