用于操作系统中的定时器管理装置和管理方法制造方法及图纸

技术编号:3999304 阅读:209 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种用于操作系统中的定时器管理装置,包括进程调度模块、硬件时钟模块、进程定时器管理模块,还包括定时器接口、定时器数据库以及定时器管理模块;其中,定时器接口用于向用户提供操作定时器的接口;定时器数据库用于保存定时器链表,并提供对所述定时器链表的管理操作;所述定时器链表由定时器按照其触发时间依次链接而成,一个定时器代表一个定时任务,所述定时器中除了包括所述触发时间外,还至少包括中断处理函数;定时器管理模块用于实现所述硬件时钟模块、进程定时器管理模块以及所述定时器数据库的初始化与结束操作,还用于调用所述定时器中所包含的中断处理函数。本发明专利技术的定时器管理装置具有高精度与内存使用量小的优点。

【技术实现步骤摘要】

本专利技术涉及操作系统领域,特别涉及用于操作系统中的定时器管理装置和管理方 法。
技术介绍
在计算机应用中,用户通过操作系统使用并管理计算机硬件及软件资源。对于一 般的操作系统,主要追求系统吞吐率以及用户的平均响应时间,而对于单个用户的响应时 间则没有严格的时间限制。但对于实时操作系统而言,时间是一种重要的系统资源,对外部 事件的响应和任务的执行都必须在限定的时间内完成。实时操作系统输出结果的正确性不 仅取决于计算所形成的逻辑结果,还要取决于结果产生的时间。因此实时操作系统必须在 限定的时间和空间内完成特定的任务,如果逻辑和时序出现偏差会引起严重后果。比如用 于控制火箭发动机的嵌入式操作系统,它所发出的指令不仅要求速度快,而且对多个发动 机之间的时序要求也非常严格,对于实时性方面的要求可能达到微秒甚至纳秒量级,在其 运行过程中某一指令操作的延迟执行,都将会造成不可估计的严重损失。操作系统提供定 时器机制,可以指定在未来的某个时刻触发某个事件的执行。因此定时器作为实时操作系 统时间管理的核心就显得至关重要。大多数嵌入式操作系统都对实时性要求非常强。嵌入式实时操作系统广泛应用于 工厂生产过程控制,汽车业,办公自动化,计算机外设,通信设备,机器人,航空航天,民用消 费等领域。在网络通信中,一次通信过程需要多个定时器来完成不同的计时任务,当同时通 信的用户数增加时,所需定时器的数目急剧增加。如果定时器在时间和内存方面的管理方 法效率低,则会因定时器数目太大而造成定时处理耗用系统资源过大,延长用户的响应时 间,进而影响整个系统的性能。嵌入式操作系统本身所具有内存资源有限的特点,又加剧了 对定时器管理的依赖,因此,定时器管理方法的效率高低是反映嵌入式实时操作系统性能 的重要指标之一。现有技术中对各种嵌入式操作系统的定时器管理方法很多,主要有以下三种类型。第一种以uc/os嵌入式操作系统等为典型代表,延时定时器是通过扫描、递减每 个任务的当前定时值实现的,所以在硬件定时器的中断服务程序中需要不断扫描任务链。 当定时的任务较多时,会影响中断服务程序对实时任务的响应,成为系统实时性能的瓶颈。第二种以Linux系列操作系统为典型代表,通过多级链表实现对超时时间不同 的定时器的分类,离当前时间点较远的定时器可以在一个时间区间内共享一个定时器链 表,离当前时间点较近的定时器只能是相同的定时时间点才能共享一个定时器链表。Linux 采用哈希索引的方法避免了定时器链表的反复查询,特别适合定时器应用较多的场合。Linux系列操作系统的定时器精度较高,如在Linux2. 4中定时器精度为10ms,在 LinuX2.6中进一步改进为1ms,但对于某些对实时性要求非常高的应用领域,如航空航天 中对实时业务的响应时间要求可达纳秒级,Linux的毫秒级定时器依然不能满足实时嵌入式操作系统中对实时性的高精度要求。第三种以RTAI(Real-Time Application Interface)为典型代表,RTAI 是在 Linux基础上进行实时改进而来的。RTAI将所有与进程调度时间相关的机制,如定时器实 现,信号量等待、发送、接收超时时间处理等,都集中到进程操作上,对于进程的调度主要在 延时队列和就绪队列之间进行调度,更能体现实时性,且对调度时间集中管理,操作也更加 方便。在图1中给出了 RTAI系统中与定时器管理有关模块的示意图,这些模块包括进程 调度模块、硬件时钟模块、进程定时器管理模块。其中,进程调度模块用于管理RTAI系统中 的就绪队列和等待队列,在每个调度点根据进程的恢复运行时间和周期间隔,选择待执行 的进程。同时进程调度模块还可根据RTAI系统中的进程时间信息,动态更新硬件时钟模块 的下次触发时间。硬件时钟模块用于当其所设置的触发时间到达时,触发进程调度模块的 执行。进程定时器管理模块用于根据用户设置的进程恢复运行时间和周期间隔,将该进程 动态插入到RTAI下的就绪队列和等待队列。RTAI系统中通过进程实现定时机制的主要流程如下首先,为用户所设定的定时 任务创建与该定时任务相关联的进程,设置进程中的恢复运行时间及周期间隔;然后,进程 定时器管理模块根据进程的恢复运行时间和周期间隔,将该进程插入到等待队列中,等待 定时时刻的到达。接着,进程调度模块根据整个RTAI下就绪队列和等待队列,动态更新硬 件时钟模块的下次触发时间。最后,当定时时刻到达时,硬件时钟模块触发进程调度模块, 进程调度模块将前述进程从等待队列中转移到就绪队列中,准备执行用户的定时任务。从上面的说明可以看出,在RTAI系统中需要为每个定时任务创建对应的进程,而 每个进程都要被分配一定的内存空间。对于通信系统中需要使用大量定时器的应用场景, 这样做将会占用大量的内存空间。对内存资源有限的嵌入式操作系统会造成严重的影响。
技术实现思路
本专利技术的目的是克服现有RTAI系统为定时任务分配独立进程会占用大量内存空 间,对系统资源造成影响的缺陷,从而提供一种定时器管理装置。为了实现上述目的,本专利技术提供了一种用于操作系统中的定时器管理装置,包括 进程调度模块、硬件时钟模块、进程定时器管理模块,还包括定时器接口、定时器数据库以 及定时器管理模块;其中,所述的定时器接口用于向用户提供操作定时器的接口 ;所述的定时器数据库用于保存定时器链表,并提供对所述定时器链表的管理操 作;所述定时器链表由定时器按照其触发时间依次链接而成,一个定时器代表一个定时任 务,所述定时器中除了包括所述触发时间外,还至少包括中断处理函数;所述的定时器管理模块用于实现所述硬件时钟模块、进程定时器管理模块以及所 述定时器数据库的初始化与结束操作,还用于调用所述定时器中所包含的中断处理函数。上述技术方案中,所述的定时器链表包括激活定时器链表与暂停定时器链表;所 述的激活定时器链表用于排列正在使用并等待触发执行的定时器,所述的暂停定时器链表 用于排列已经触发执行过的非周期定时器或被取消的定时器。上述技术方案中,所述的定时器接口向用户提供的操作包括创建定时器、设置定时器时间、获取定时器时间、获取定时器中断处理函数的参数、取消定时器、删除定时器。上述技术方案中,所述定时器中还包括定时器触发周期、定时器中断处理函数的输入参数、定时器使用标志以及前后指针。本专利技术还提供了一种采用所述的用于操作系统中的定时器管理装置实现定时器 管理的方法,包括步骤1)、通过定时器接口为定时任务创建定时器;步骤2)、所述的进程定时器管理模块根据当前的进程执行情况动态更新硬件时钟 模块的下次触发时间,当下次触发时间到达时,由所述硬件时钟模块触发所述定时器中断 处理进程,由定时器中断处理进程从所述激活定时器链表中依次取出定时器,执行相应的 定时任务;步骤3)、在定时器中断处理进程执行完定时任务后,更新所述的定时器链表。上述技术方案中,所述的步骤1)包括步骤1-1)、判断所要创建的定时器是否是系统中的第一个定时器,若是的话,执行 下一步,否则,直接执行步骤1-5);步骤1-2)、利用所述的硬件时钟模块将硬件时钟的触发模式设置为oneshot模 式,并启动硬件时钟;步骤1-3)、初始化所述定时器数据库中的激活定时器链表和暂停定时器链表;步骤1-4本文档来自技高网
...

【技术保护点】
一种用于操作系统中的定时器管理装置,包括进程调度模块、硬件时钟模块、进程定时器管理模块,其特征在于,还包括定时器接口、定时器数据库以及定时器管理模块;其中,所述的定时器接口用于向用户提供操作定时器的接口;所述的定时器数据库用于保存定时器链表,并提供对所述定时器链表的管理操作;所述定时器链表由定时器按照其触发时间依次链接而成,一个定时器代表一个定时任务,所述定时器中除了包括所述触发时间外,还至少包括中断处理函数;所述的定时器管理模块用于实现所述硬件时钟模块、进程定时器管理模块以及所述定时器数据库的初始化与结束操作,还用于调用所述定时器中所包含的中断处理函数。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡丽袁尧熊海泉王晴张子頔石晶林
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

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

1