当前位置: 首页 > 专利查询>谢维信专利>正文

一种提高计算机内核定时器控制精度的方法技术

技术编号:2823334 阅读:276 留言:0更新日期:2012-04-11 18:40
本发明专利技术是一种提高计算机内核定时器控制精度的方法。该方法是在预置的系统定时硬件时钟和定时粒度的基础上,在配套内核定时器执行程序的支持下实现的,包括以下步骤:①根据具体目标平台和应用环境决定定时粒度,②解除系统定时硬件时钟中断与操作系统节拍中断服务程序之间的绑定关系,③根据步骤1所确定的定时精度值,在系统初始化时刻对定时硬件进行设置,④在定时硬件时钟中断入口处插入新代码:维护自有的定时信息的代码,判定是否有定时器超时并执行超时函数的代码,按系统原节拍率维持操作系统节拍中断的代码。⑤重新编译并加载内核,使以上步骤2、3、4所做的修改生效,重复执行④、⑤步骤。

【技术实现步骤摘要】

本专利技术涉及,特别是一种 基于原计算机系统对高精度定时事件进行处理的方法。
技术介绍
操作系统是管理计算机或嵌入式平台的硬件与软件资源的程序, 同时也是应用程序运行的基础。操作系统是一个大型管理控制程序, 其作用是使系统中所有资源按照确立好的时序最大限度的地发挥作 用,为用户提供方便有效的服务界面。其中内核定时器是通用操作系 统内核管理时间的基础,其作用是使内核任务在指定的时间点上执行。 使用定时器需要设置定时处理函数并预先设置一个超时时间,定时器 被激活后,所指定的定时处理函数将在到期时自动执行。标准内核定 时器容易受到内核节拍计时器、硬件中断、其他定时器和异步任务的 影响。特别是由于标准内核定时器优先级低于硬中断,因此只有当所 有被挂起的硬中断服务程序执行完毕后,内核定时器才能得到执行, 在最坏的情况下,定时服务完全有可能会被推迟1个乃至数个系统节 拍。鉴于以上无法克服的缺陷,目前常用的计算机通用操作系统中内 核不能满足严格的定时应用,更不能应用于需要较高精度定时的场合。 特别是具体的应用过程中,标准内核的系统节拍响应工作非常繁重。这些 工作通常包括更新系统产生的节拍总数、更新系统运行时间与实际时间、执行任务调度、均衡各运行队列、更新资源消耗和处理器时间的统计值、 执行超时的动态定时器以及计算平均负载值等等。用简单提高内核的节拍 率会导致系统频繁执行上述多项响应工作,从而使系统负载迅速增加,进而会显著降低系统性能。因此目前主流操作系统,如UNIX/Linux、 WinCE, 的内核时钟节拍率也仅仅仅设定在50Hz到1000Hz。然而局限在此范围的节 拍率并不能保证内核定时器的精度定时任务的完成。此外,定时稳定性受 硬件IO负荷影响十分明显。由于普通内核定时器所使用的软中断在中断体 系中所处的级别较低,必须等待所有挂起的高级别硬中断执行完毕后才能 得到执行,而系统在迸行硬件数据读写时往往会产生大量硬件中断,因此 在硬件10负荷很大的系统中,标准内核定时器的稳定性难以得到保证的, 对于高精度的定时任务执行则显然是无从说起。对于内核定时器目前所存在的问题的改进方案中,有些方案虽然不是 专门针对定时器的改进方案,但也能够不同程度提高定时的精度。其中包 括①附加微型内核为了提供硬实时的支持,附加一个实时微内核,而 将普通操作系统作为一个该微内核的一个低优先级的任务来运行。普通系 统中的任务可以通过FIFO和实时任务进行通信。该方案的典型实例为 RT-Linux。该方案的缺点在于需要增加一个微型内核,并且需要保持微型 内核和普通内核之间的通信,其跨平台实施复杂度高,较难实现。而且该 方案只是在微型内核中实现了实时特性,并没有提高普通操作系统的定时 器性能。2.将时钟芯片设置为单次触发状态(One shot mode)其基本思想 是将时钟芯片设置为单次触发状态,即每次给时钟芯片设置一个超时时 间,然后到该超时事件发生时在时钟中断处理程序中再次根据需要设置一个超时时间。它利用CPU的时钟计数器来提供理论上可达CPU主频的定时 精度。该方案的典型实例有Kurt-Linux和Monta Vista Linux。该方案的 缺点在于需要频繁地计算并设置时钟芯片的超时时间和修正累积误差,并 且其算法本身运行所占用的时间会对定时效果产生负面影响,事实上很难 达到其标称的定时精度。3.使用额外硬件定时器其运用系统额外硬件定 时器完成高精度定时。显然该方案的局限性在于要求目标平台拥有至少一 个空闲的硬件定时器,且该方案实际上也属于一种单次触发时钟方案,同 样有上述方案2所存在的缺点。4.采用计数器采用系统节拍为计数单位, 通过附加程序计数并触发定时器。该方案主要目的是以计数代替计时来降 低周期性定时的开销,并没有改进定时器精度。
技术实现思路
本专利技术的目的是在不增加任何硬件设施的前提下,提供一种在计算机 操作系统的基础节拍基础上下,实现对髙精度定时任务管理的方法。本专利技术的基本构思是该方法是在预置的系统定时硬件时钟和定时粒度 的基础上,在配套内核定时器执行程序的支持下实现的,包括以下步骤① 根据具体目标平台和应用环境决定定时粒度,② 解除系统定时硬件时钟中断与操作系统节拍中断服务程序之间的绑 定关系,③ 根据步骤1所确定的定时精度值,在系统初始化时刻对定时硬件进 行设置,从而提升系统定时硬件时钟的节拍率, 在定时硬件时钟中断入口处插入新代码,其中包括维护本方案定 时体系自有的定时信息的代码,根据所维护的定时信息判定是否有定时器超时并执行超时函数的代码,按系统原节拍率维持操作系统节拍中断的代 码。⑤重新编译并加载内核,使以上步骤2、 3、 4所做的修改生效, 重复执行④、⑤步骤。由于本方法的技术方案解除了系统定时硬件时钟与操作系统时钟中断 服务程序的绑定关系,进一步细化了硬件时钟的定时粒度,并且在定时硬 件中断服务程序实现了新的定时体系。这个新的定时体系直接使用系统定时硬件产生的周期性中断作为计时源,其主要作用包括维护自有的定时 信息、执行超时任务和维持操作系统节拍。关于定时粒度的最优值,应该 根据具体目标平台和应用环境制定出一个大概的范围,然后通过具体试验 对定时粒度进行微调来确定。具体的步骤可以重复执行以上步骤。这样, 可以有效的提高定时的精度又明显的优于现行的改进技术方案。由于内核 定时体系直接使用系统定时硬件所产生的周期性中断计时,而不是根据操 作系统节拍计时,操作系统节拍由内核定时体系产生,而不是直接由系统 定时硬件产生。这样以来系统定时硬件产生的是周期性触发中断,而不是 单次触发中断。用户仅需对定时硬件进行一次设置就可以实现定时精度和 操作系统节拍率彼此独立,并维持原操作系统节拍率不变。从而,既提高 了定时精度、又没有过多的增加系统的负担、又能保证系统时序的稳定性。 附图说明图1是系统定时硬件中断入口处新增代码的流程图。 其中虚线是标准内核中断服务程序的执行路径。具体实施方式参照附图1可以清楚的看出以上在
技术实现思路
一节中陈述实现本专利技术目 的的具体步骤④中,在定时硬件时钟中断入口处插入新代码所决定的执行 步骤为① 进入系统硬件定时中断程序并按照已经提高的硬件定时频率继续进 行定时器计时,② 比对所维护的定时信息中是否有定时任务到期,③ 没有定时任务到期直接核查、或有定时任务到期并发出对应的"某 任务定时到"信息代码后核查原系统中断节拍是否到时,④ 原系统中断节拍没有到时直接转至步骤①、硬件定时中断快速返回, 如原系统中断节拍到时转至下一个操作系统时钟中断程序节拍,执行原系 统中断程序快速返回。可见,实施以上的姬鼠放案后在原操作系统的一个固有节拍中,可以 不受任何干扰的实现内核定时器的独立计时和按照所精确设定的频率准确 的把握定时精度、启动超时函数的运算、进行定时任务的管理。只要预先 设置准确的定时粒度,就可以实现本专利技术目的。为了实现定时粒度的最优话,显然是应该根据具体目标平台和应用环 境制定出一个大概的范围,然后通过具体试验对定时粒度进行再进行微调 来最后确定。以上的技术改进反映在本专利技术具体的步骤中是提高计算机内核定时 器控制精度的方法的步骤①-⑤还包括⑥通过具体试验对定时粒度进行进一步微调,调整后重新执行步骤本文档来自技高网
...

【技术保护点】
一种提高计算机内核定时器控制精度的方法,该方法是在预置的系统定时硬件时钟和定时粒度的基础上,在配套执行程序的支持下实现的,其特征在于:该方法包括以下步骤:①根据具体目标平台和应用环境决定定时粒度,②解除系统定时硬件时钟中断与 操作系统节拍中断服务程序之间的绑定关系,③根据步骤1所确定的定时精度值,在系统初始化时刻对定时硬件进行设置,从而提升系统定时硬件时钟的节拍率,④在定时硬件时钟中断入口处插入新代码,其中包括:维护本方案定时体系自有的定时信息的 代码,根据所维护的定时信息判定是否有定时器超时并执行超时函数的代码,按系统原节拍率维持操作系统节拍中断的代码,⑤重新编译并加载内核,使以上步骤2、3、4所做的修改生效,重复执行④、⑤步骤。

【技术特征摘要】

【专利技术属性】
技术研发人员:谢维信黄敬雄赵汝聪黄建军
申请(专利权)人:谢维信
类型:发明
国别省市:94[]

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

1