[发明专利]一种虚拟定时器的定时方法及设备有效
| 申请号: | 202011429859.6 | 申请日: | 2020-12-09 | 
| 公开(公告)号: | CN112463125B | 公开(公告)日: | 2023-09-15 | 
| 发明(设计)人: | 汤增宏 | 申请(专利权)人: | 百富计算机技术(深圳)有限公司 | 
| 主分类号: | G06F8/20 | 分类号: | G06F8/20 | 
| 代理公司: | 深圳中一联合知识产权代理有限公司 44414 | 代理人: | 梁立耀 | 
| 地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 虚拟 定时器 定时 方法 设备 | ||
本申请适用于计算机技术领域,提供了一种虚拟定时器的定时方法,包括:获取单调递增时钟的第一递增时间,根据第一递增时间和定时时长确定第一虚拟闹钟时间,根据第一虚拟闹钟时间以及处理任务创建虚拟定时器,根据第一虚拟闹钟时间确定系统闹钟任务;当系统时钟触发系统闹钟任务时,获取单调递增时钟的第二递增时间;获取各个虚拟定时器对应的虚拟闹钟时间,将虚拟闹钟时间小于或者等于第二递增时间的虚拟定时器确定为目标定时器;执行目标定时器对应处理任务。所有定时都以单调递增时钟为基础,不以系统时间为基础,当系统时间出错时,定时器不会出错,提高了虚拟定时器的精度,当需要多个定时功能时,无需设置多个硬件定时器,降低硬件成本。
技术领域
本申请属于计算机技术领域,尤其涉及一种虚拟定时器的定时方法及设备。
背景技术
嵌入式系统软件开发过程中,经常需要使用定时功能,一般可以通过软件定时器和硬件定时器来实现定时功能。由于纯软件的定时器很容易受到系统时间的影响,一旦系统时间出现问题,纯软件的定时器就会出现误差。当对定时的精度要求高时,一般是通过硬件定时器来实现。但是,当需要使用多个定时功能,就需要提供多个硬件定时器,这样就导致硬件成本过高。
发明内容
本申请实施例提供了一种虚拟定时器的定时方法及设备,可以解决当需要使用多个定时功能,需要提供多个硬件定时器,硬件成本过高的问题。
第一方面,本申请实施例提供了一种虚拟定时器的定时方法,包括:
接收定时请求,所述定时请求包括定时时长和处理任务;
获取单调递增时钟的第一递增时间,根据所述第一递增时间和所述定时时长确定第一虚拟闹钟时间;
根据所述第一虚拟闹钟时间以及所述处理任务创建虚拟定时器,以及,根据所述第一虚拟闹钟时间确定系统闹钟任务;
当系统时钟触发系统闹钟任务时,获取所述单调递增时钟的第二递增时间;
获取各个所述虚拟定时器对应的虚拟闹钟时间,将所述虚拟闹钟时间小于或者等于所述第二递增时间的虚拟定时器确定为目标定时器;
执行所述目标定时器对应的处理任务。
进一步地,所述根据所述第一虚拟闹钟时间确定系统闹钟任务,包括:
若所述第一虚拟闹钟时间为各个所述虚拟定时器对应的最小的虚拟闹钟时间,则获取系统时钟对应的第一系统时间;
用所述第一系统时间加上所述定时时长,得到第一系统闹钟时间;
根据所述第一系统闹钟时间设置系统闹钟任务。
进一步地,所述根据所述第一虚拟闹钟时间以及所述处理任务创建虚拟定时器,包括:
根据所述处理任务创建虚拟定时器,并获取与第一虚拟闹钟时间对应第一虚拟闹钟;
将所述虚拟定时器与所述第一虚拟闹钟相关联。
进一步地,所述获取与第一虚拟闹钟时间对应第一虚拟闹钟,包括:
若存在虚拟闹钟时间与所述第一虚拟闹钟时间相同的虚拟闹钟,则将所述虚拟闹钟确定为第一虚拟闹钟;
若不存在虚拟闹钟时间与所述第一虚拟闹钟时间相同的虚拟闹钟,则根据所述第一虚拟闹钟时间创建第一虚拟闹钟。
进一步地,所述获取单调递增时钟的第一递增时间,包括:
根据系统时钟的第一系统时间以及单调递增时钟与所述系统时钟的映射关系,计算所述单调递增时钟的第一递增时间。
进一步地,在所述执行所述目标定时器对应的处理任务之后,还包括:
移除所述目标定时器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百富计算机技术(深圳)有限公司,未经百富计算机技术(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011429859.6/2.html,转载请声明来源钻瓜专利网。





