一种软实时定时器调度的方法及软实时定时器模块技术

技术编号:3639472 阅读:200 留言:0更新日期:2012-04-11 18:40
一种软实时定时器调度的方法及软实时定时器模块,包括调度单元,用于对创建的软实时定时器进行定时器调度线程的控制,内部为一直获取计数信号量的无限循环体;中断单元,用于对定时器进行定时器中断控制,释放计数信号量;其中调度单元与中断单元通过一个计数信号量进行同步;初始化单元,用于初始化定时器的全局变量,使中断单元与硬件时钟中断号进行挂接,并初始化调度单元,全局变量包括计数信号量;管理单元,是用户控制定时器的前台窗口,用户通过管理单元来创建各种软实时定时器,并对该定时器设定各种操作指令。应用本发明专利技术,通过消息机制,当定时器到期时向上层用户发送指定消息,能够满足手机平台可移植性及手机平台上层用户的诸多需求。

【技术实现步骤摘要】

本专利技术涉及手机领域,尤其涉及一种在手机平台架构中软实时定时器调 度的方法及软实时定时器模块。
技术介绍
应用于手机领域中的各种操作系统本身提供一组定时器函数接口 ,利用 硬件时钟中断,在中断上下文或线程上下文执行用户实体函数,实现定时器执行及调度;但各个操作系统提供的定时器函数接口不尽相同,不能直接满 足手机平台要求及可移植性,更不能满足手机平台上层用户的诸多需求,如 对定时器使用量大、占用系统资源少、函数接口入参丰富、方便编程使用及 能够对定时器进行暂停继续操作。因此当前需要一种软实时定时器调度的技 术方案。
技术实现思路
本专利技术所要解决的技术问题是提供一种软实时定时器调度的方法及软 实时定时器模块,通过消息机制,当定时器到期时向上层用户发送指定消息, 能够满足手机平台可移植性及手机平台上层用户的诸多需求。为了解决上述问题,本专利技术提供了一种软实时定时器模块,包括中断单元、调度单元、初始化单元和管理单元,其中,调度单元,用于对创建的软实时定时器进行定时器调度线程的控制,内 部为一无P艮循环体,循环体内一直获取计数信号量;中断单元,用于对创建的软实时定时器进行定时器中断控制,释放计数 信号量;其中,调度单元与中断单元通过一个计数信号量进行同步;初始化单元,用于对软实时定时器的全局变量进行初始化,4吏中断单元与硬件时钟中断号进行挂接,并初始化调度单元;所述软实时定时器的全局 变量包括计数信号量;管理单元,是用户控制软实时定时器的前台窗口,用户通过管理单元来 创建各种软实时定时器,并对该软实时定时器设定各种操作指令。进一步地,上述软实时定时器模块还可包括,所述管理单元设定的操作 指令包括删除软实时定时器、暂停软实时定时器、继续软实时定时器;以及所述管理单元创建的各种软实时定时器包括创建相对非周期性软实时 定时器、相对周期性软实时定时器、绝对非周期性软实时定时器。进一步地,上述软实时定时器模块还可包括,所述调度单元还用于存放 一维双向链表头数组的时刻表;其中数组元素个数代表时刻总数,数组元素 个数乘以时刻间隔时间所得时间数即为定时器调度线程循环一圈所代表的 时间数;所述调度单元对创建的软实时定时器进行定时器调度线程的控制是指, 对于设定时间小于一圈代表的时间数的短时相对软实时定时器,只需将设定 时间除以时刻间隔时间所得商,再加上当前时刻所得和,对时刻总数求余, 即得出在何时刻调度该软实时定时器,将该软实时定时器挂接到该时刻代表 的链表尾;对于设定时间大于一圈代表的时间数的长时相对软实时定时器转 换成短时相对软实时定时器,^L需对软实时定时器增加一圈数的参凄t,当圈 数为0时才调度该软实时定时器,当圈数不为0时,仅对圈数减一;对于绝 对非周期性软实时定时器,则根据当前时间、时刻转换成相对软实时定时器 进行存放;对于周期性软实时定时器,则仅需在软实时定时器结构体内增加 一周期性标志的参数,当周期性软实时定时器时间到期,根据创建软实时定 时器时的输入参数及当前时刻重新计算下一次调度时刻,将该软实时定时器 重新挂接到对应链表尾。进一步地,上述软实时定时器模块还可包括,所述调度单元与中断单元 通过一个计数信号量进行同步是指,中断单元释放计数信号量多少次,同时 调度单元就能够获取计数信号量多少次,并在定时器调度线程内更新当前时刻。本专利技术还提供了5、 一种软实时定时器调度的方法,包括,对软实时定时器的全局变量进行初始化,使软实时定时器的中断服务程序与硬件时钟中断号进行挂接,并创建一个软实时定时器调度线程;用户创建各种软实时定时器,并对该软实时定时器设定各种操作指令;根据创建的软实时定时器,软实时定时器调度线程一直获取计数信号 量,中断服务程序释放计数信号量,执行该软实时定时器的调度,其中软实 时定时器调度线程与中断服务程序通过一个计数信号量进行同步。进一步地,上述方法还可包括,所述操作指令包括删除软实时定时器、 暂停软实时定时器、继续软实时定时器;所述创建各种软实时定时器包括创 建相对非周期性软实时定时器、相对周期性软实时定时器、绝对非周期性软 实时定时器。进一步地,上述方法还可包括,所述对软实时定时器的全局变量进行初 始化是指,调用通用链表初始化函数,初始化静态全局链表头数组,创建一 个计数信号量并初始化为不可获取,创建一个互斥体并初始化为可获取,初 始化时间游标。进一步地,上述方法还可包括,软实时定时器调度线程与中断服务程序 通过一个计数信号量进行同步是指,中断服务程序释放计数信号量多少次, 同时软实时定时器调度线程就能够获取计数信号量多少次,并在调度线程内 更新当前时刻。进一步地,上述方法还可包括,所述软实时定时器调度线程一直获取计 数信号量,中断服务程序释放计数信号量,执行软实时定时器的调度的过程 中,进一步包括,软实时定时器调度线程根据创建软实时定时器输入参数及当前时刻,计 算出下一次调度的时刻及时间圈数,根据计算出来的调度时刻,挂接到调度时刻对应的链表尾;软实时定时器调度线程采用游标方式来控制短时长的软实时定时器,采 用一时间数组,游标移动一次所需时间为软实时定时器设置的最小单位,数组元素个数即为游标转一 圈所需要时间除以时刻间隔时间,用游标来表示当前时刻;其中每个数组元素都是一个链表头,该时刻到期的软实时定时器都添加到对应的链表下;软实时中断服务程序只负责释放计数信号量,与软实时定时器调度线程 进行同步;软实时定时器调度线程不停地等待获取计数信号量, 一旦获取到 计数信号量,则查询当前时刻对应的链表,对挂接在链表下的软实时定时器 进行更新,如果软实时定时器时间未到期,则仅更新时间参数;如果到期, 则更新时间参数的同时向创建软实时定时器任务宏发送指定消息,并根据软 实时定时器类型做相应处理;整个链表查询完毕后,再继续等待获取计数信 号量。进一步地,上述方法还可包括,如果直接使用手机操作系统提供的软实 时定时器,则需设置系统软实时定时器为最小单位的周期性软实时定时器, 在系统软实时定时器内部执行软实时定时器中断控制。与现有技术相比,应用本专利技术,通过消息机制,当定时器到期时向上层 用户发送指定消息,能够满足手机平台可移植性及手机平台上层用户的诸多 需求,如对定时器使用量大、占用系统资源少、函数接口入参丰富、方便编 程使用及能够对定时器进行暂停继续操作;而且定时器中断函数只负责释放 信号量,操作简单,CPU占用时间短,定时器超时也不会造成系统问题, 用户不需要编写定时器回调函数。附图说明图1为本专利技术的软实时定时器模块的结构示意图;图2为本专利技术的软实时定时器调度的方法的流程图;图3为本专利技术的创建软实时定时器的流程图;图4为本专利技术的暂停软实时定时器的流程图;图5为本专利技术的继续软实时定时器的流程图;图6为本专利技术的删除软实时定时器的流程图;图7为本专利技术的软实时定时器调度线程的实现原理图;图8为本专利技术的软实时定时器调度线程的调度流程图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步说明。如图1所示,本专利技术的软实时定时器模块包括初始化单元、中断单元、 调度单元和管理单元,其中,如果直接使用手机操作系统提供的定时器,则需设置系统定时器 为最小单位的周期性定时器,在系统定时器内部执行软实时定时器中断控 制。初始化本文档来自技高网...

【技术保护点】
一种软实时定时器模块,其特征在于,    包括中断单元、调度单元、初始化单元和管理单元,其中,    调度单元,用于对创建的软实时定时器进行定时器调度线程的控制,内部为一无限循环体,循环体内一直获取计数信号量;    中断单元,用于对创建的软实时定时器进行定时器中断控制,释放计数信号量;其中,调度单元与中断单元通过一个计数信号量进行同步;    初始化单元,用于对软实时定时器的全局变量进行初始化,使中断单元与硬件时钟中断号进行挂接,并初始化调度单元;所述软实时定时器的全局变量包括计数信号量;    管理单元,是用户控制软实时定时器的前台窗口,用户通过管理单元来创建各种软实时定时器,并对该软实时定时器设定各种操作指令。

【技术特征摘要】

【专利技术属性】
技术研发人员:何海建
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1