[发明专利]一种定时器和异步事件的处理方法及系统有效
申请号: | 201010524167.X | 申请日: | 2010-10-29 |
公开(公告)号: | CN102455940A | 公开(公告)日: | 2012-05-16 |
发明(设计)人: | 徐海兵;李永合 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 成都虹桥专利事务所 51124 | 代理人: | 邹裕蓉 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 定时器 异步 事件 处理 方法 系统 | ||
技术领域
本发明涉及数据通信领域和计算机领域的技术,尤其涉及一种多线程调度技术。
背景技术
目前,嵌入式系统软件需要处理很多周期性的事务,例如报文的定时发送等。这些周期性的事务往往要求较高的实时性,因此要求嵌入式软件必须提供高精度定时器机制的支持。另一方面,在实际环境中,嵌入式系统大多数是事件驱动或报文驱动的系统,而且处理的外部事件是多发的而且是并发的随机事件。嵌入式软件为了有效地处理这些外部并发事件,往往采用多任务、多进程的运行机制异步处理这些外部事件。任务(进程)通常被业界定义为一个正在运行的程序实例,它是资源分配的基本单位。进一步,为了适应各种复杂的并发环境,获得更快的切换速度,引入了多线程(thread)的处理机制。线程是调度的基本单位,同时任务拥有足够的分离的上下文来维护各自的控制线程,从而一个任务或进程可以支持多个线程。
在一个嵌入式软件系统中,如既要满足高精度的实时性要求,又要满足具有处理异步并发事件的能力,那么,往往就需要多个任务共同来实现整个系统的功能。在满足实时性方面,可以使用系统中断服务程序(ISR)来维护用户定时器处理相关的事件,但用户定时器在使用上具有诸多限制并且在时间上可能不满足高精度的需求,例如看门狗定时器;也可以使用专门的任务定时器处理相关的事件,可以满足高精度的要求,但系统中如果存在多个不同优先级的用户定时器,就需要多个不同的任务;并且在满足异步事件的能力方面,也可能需要多个不同的任务同时进行处理,当任务较多时,任务间会频繁发生切换,势必会影响系统的执行效率。
发明内容
本发明所要解决的技术问题是,提供一种在嵌入式系统中既能确保多个用户定时器、异步事件的有序控制,又能提高现有用户定时器、异步事件执行效率的方法以及实现该方法的系统。
本发明为解决上述技术问题所采用的技术方案是,一种定时器和异步事件的处理方法,包括以下步骤:
a、系统初始化用户队列与就绪队列,并设置中断定时器的中断周期,用户队列用于存放用户任务需要调度的异步事件或需要启动的用户定时器转换为线程后对应的节点,就绪队列用于存放调度任务需要立即执行的从用户队列中取出的异步事件线程对应的节点或用户定时器线程对应的节点;
b、调度任务检查就绪队列,就绪队列为空时或者执行完就绪队列中所有节点对应的线程直至就绪队列为空后,调度任务检查用户队列;
c、调度任务检查用户队列,将异步事件线程对应的节点以及已到期的用户定时器线程对应的节点加入至就绪队列,系统启动中断定时器,并设置中断定时器的中断服务程序和定时间隔;
d、在所述定时间隔到期后,中断定时器调用中断服务程序释放一个同步信号量,进入步骤b;
在所述步骤b至d循环执行过程中,当用户任务有需要调度的异步事件或需要启动的定时器时,系统立即将该异步事件或用户定时器转换为线程,并加入用户队列形成用户队列的节点。
本方案中既可以同时启动多个用户定时器也可以同时处理多个异步事件,保证了所述技术方案的通用性,由于用户定时器和异步事件在一个任务(本发明中的调度任务)的多个线程中同时执行,减少了任务间的切换开销,提高了执行效率,并且通过同步信号量的释放有序地控制执行异步事件或用户定时器对应线程。
进一步的,当系统要求支持高精度的用户定时器时,则采用高精度的硬件定时器作为中断定时器,本文所述“高精度”为毫秒级的精度,初始化时设置中断定时器的中断周期为需要的精度,如当前的应用环境需要硬件定时器的精度达到1ms,则设置硬件定时器的中断周期为1ms;否则,中断定时器可以使用软中断定时器。当采用高精度的硬件定时器,很容易实现高精度的系统中断,从而保证了用户定时器能够十分准确的定时。
步骤c中,为了更进一步地提高执行效率,提供一种优选的中断定时器的定时间隔设置方法:当检查到用户队列中有异步事件线程对应的节点或已经到期的用户定时器线程对应的节点时,在将以上节点加入就绪队列后,系统设置中断定时器的定时间隔为零;当检查到用户队列中没有节点时,系统设置中断定时器的定时间隔为系统预设的固定值;当检查到用户队列中仅存在用户定时器节点且所有的用户定时器均未到期时,系统设置中断定时器的定时间隔为所有用户定时器的定时间隔的最小值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010524167.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种频谱数据标记显示方法和装置
- 下一篇:触摸屏、触摸液晶显示器