[发明专利]虚拟机高精度定时器的实现方法、装置及电子设备有效
申请号: | 201910317746.8 | 申请日: | 2019-04-19 |
公开(公告)号: | CN110333843B | 公开(公告)日: | 2023-03-24 |
发明(设计)人: | 刘金明 | 申请(专利权)人: | 中科创达(重庆)汽车科技有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F9/455 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝 |
地址: | 401120 重庆*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟机 高精度 定时器 实现 方法 装置 电子设备 | ||
本发明实施例公开了一种虚拟机高精度定时器的实现方法、装置及电子设备,涉及数据处理技术领域。该方法包括:在主操作系统中使用定时器生成函数创建纳秒级别精度的定时器;在所述主操作系统中创建定时器信号接收函数,所述定时器信号接收函数接收到所述定时器的发出的定时信号后,触发主操作系统向从操作系统的内存映射I/O中断,所述从操作系统运行于所述主操作系统中;在所述从操作系统的中断响应函数中接收所述主操作系统发送的内存映射I/O中断,基于所述内存映射I/O中断中发送的内容,确定所述从操作系统中定时器的时钟值。通过本申请的方案,提高了从操作系统中定时器的精度。
技术领域
本发明涉及数据处理技术领域,尤其涉及虚拟机高精度定时器的实现技术。
背景技术
随着虚拟化技术使用越来越普遍,在数据中心,手机,汽车里面已经慢慢越来越多的使用虚拟化的技术。虚拟化上面的时钟一般是通过hypervisor来实现,在hypervisor层提供虚拟的定时器(timer)给从操作系统(guest os)来使用。如果没有虚拟化,在裸机上运行使用hrtimer,原本可以达到纳秒级别的精度,但是在从操作系统里面高精度的时钟精度一般都无法得到保证。以现有的qnx host系统加android的从操作系统来说,我们设置一个16ms的hrtimer,得到的结果是非常不确定的,在系统负载比较低的时候,系统中断比较少的时候,精度误差大概在6ms左右,在系统负载比较高,尤其是中断比较多的时候,得到的实际值只有6ms,或36ms,误差达到几十ms。
针对上述问题,亟需一种全新的虚拟机高精度定时器的实现技术。
发明内容
有鉴于此,本发明实施例提供一种虚拟机高精度定时器的实现方法、装置、电子设备、非暂态计算机可读存储介质及计算机程序,至少部分的解决现有技术中存在的问题。
第一方面,本发明实施例提供了一种虚拟机高精度定时器的实现方法,包括:
在主操作系统中使用定时器生成函数创建纳秒级别精度的定时器,所述主操作系统运行于包含硬件定时器的硬件设备中;
在所述主操作系统中创建定时器信号接收函数,所述定时器信号接收函数接收到所述定时器的发出的定时信号后,触发主操作系统向从操作系统的内存映射I/O中断,所述从操作系统运行于所述主操作系统中;
在所述从操作系统的中断响应函数中接收所述主操作系统发送的内存映射I/O中断,基于所述内存映射I/O中断中发送的内容,确定所述从操作系统中定时器的时钟值。
根据本公开实施例的一种具体实现方式,所述定时器的公差小于一个tick时间单位。
根据本公开实施例的一种具体实现方式,所述方法还包括:
在所述从操作系统中设置定时器,所述从定时器中的数值从所述内存映射I/O中断中获得。
根据本公开实施例的一种具体实现方式,所述主操作系统为HYPERVISOR操作系统。
根据本公开实施例的一种具体实现方式,所述方法还包括:
在所述从操作系统中设置频率参数,所述主操作系统基于所述频率参数向所述从操作系统发送内存映射I/O中断。
根据本公开实施例的一种具体实现方式,所述方法还包括:
将所述频率参数写入到预设地址中,并在将所述评论参数写入到预设地址之后,触发I/O中断给所述主操作系统。
第二方面,本发明实施例还提供了一种虚拟机高精度定时器的实现装置,包括:
生成模块,用于在主操作系统中使用定时器生成函数创建纳秒级别精度的定时器,所述主操作系统运行于包含硬件定时器的硬件设备中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科创达(重庆)汽车科技有限公司,未经中科创达(重庆)汽车科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910317746.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种真随机数生成方法及系统
- 下一篇:计算公式处理方法及装置