首页> 中国专利> 避免实时操作系统频繁中断占用过多CPU资源的方法

避免实时操作系统频繁中断占用过多CPU资源的方法

摘要

本发明公开了一种避免实时操作系统频繁中断占用过多CPU资源的方法,该方法包括:对每种类型中断分别设定一阈值,该阈值为CPU允许该类型中断产生的中断时间占全部中断时间的最大比例;当某类型中断来临时,CPU判断该类型中断已产生的中断时间占所述全部中断时间的比例是否达到对应于该类型中断所设定的阈值,如果达到,则屏蔽该类型中断;如果没有达到,则继续执行中断处理流程。本发明从系统CPU资源占用情况的全局出发,来规划中断的CPU占用,并主动进行中断抑制,能够有效地抑制频繁产生型中断,避免了CPU资源过多的被占用,达到了系统CPU资源平衡利用的效果。

著录项

  • 公开/公告号CN101276295A

    专利类型发明专利

  • 公开/公告日2008-10-01

    原文格式PDF

  • 申请/专利权人 北京星网锐捷网络技术有限公司;

    申请/专利号CN200810102208.9

  • 发明设计人 俞培源;

    申请日2008-03-19

  • 分类号G06F9/50;

  • 代理机构中科专利商标代理有限责任公司;

  • 代理人周国城

  • 地址 100036 北京市海淀区复兴路33号翠微大厦东楼1101单元

  • 入库时间 2023-12-17 20:49:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-13

    未缴年费专利权终止 IPC(主分类):G06F9/50 授权公告日:20110406 终止日期:20140319 申请日:20080319

    专利权的终止

  • 2011-04-06

    授权

    授权

  • 2008-11-26

    实质审查的生效

    实质审查的生效

  • 2008-10-01

    公开

    公开

说明书

技术领域

本发明涉及计算机领域的实时操作系统,尤其涉及一种在实时操作系统中,对于频繁产生型中断根据计算其频繁程度,进行主动中断屏蔽,出让CPU资源,使得其他任务得以运行,避免实时操作系统频繁中断占用过多CPU资源的方法。

背景技术

在实时操作系统(Real Time Operating System,RTOS)中,实时两个字就代表对响应时间有严格的要求。实时操作系统贵在实时,要求在规定的时间内完成某种操作,主要用在工业控制中。实时操作系统中一般任务数是固定的,并要保证在一定时间限制内完成特定功能。通常,实时操作系统必须有以下特征:

1)多任务

2)有线程优先级

3)多种中断级别

中断(Interrupt),是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得中央处理器(Central ProcessingUnit,CPU)暂时中断当前正在执行的程序,转而去执行相应的中断服务程序。待处理完毕中断服务程序后又返回原来被中断处继续执行或调度新的任务执行的过程。

中断服务程序,指中断产生后,计算机需要停止当前的程序,转而执行的与该中断对应的服务程序。

现场保护,指中断产生后,当前程序执行的状况需要记录下来,以便中断处理结束之后能够接续下去。

以上三个术语可以用如下比方来辅助理解:比如,我目前在看一本小说,此时来了个电话,那么我需要先记下目前看的页数,然后去接电话。在接完电话之后,再接着原先记录的页数继续往下看。

在这个比喻中,看小说就是我(CPU)当前正在执行的程序,电话来了代表产生了一个中断,接电话这个步骤就代表我在执行中断服务程序。而接电话之前我需要记下目前看到的页数,这个记录的动作就叫现场保护。此时如果电话来的非常频繁,并且假设每个电话我都会接,那么我(CPU),就没有时间去看小说(执行当前的任务)。

时间窗口,是指一段用于记录CPU资源状况的固定时间间隔。

定时器机制:可在预设的时间过后自动执行某个操作。一个通俗的比喻是定时炸弹。炸弹(定时器)在经历一定时间之后自动爆炸(执行爆炸这个操作)。

保护现场的含义就是比如现在CPU在处理一个任务,此时中断进来,而中断的优先级高于任务,因此要转而处理中断,在中断处理结束之后,要能够知道原有任务的执行点,以便继续处理。那么就需要在中断处理前,进行现场保护。

传统的操作系统模型中,中断处理的一般流程如图1所示,图1为常规的中断处理流程图。该流程的缺点在于,当某些系统环境中(如交换机等网络设备,在受到攻击时,会有大量的报文送到CPU,并产生相当频繁的收报文中断),中断的产生非常频繁,导致其他任务几乎得不到运行的机会。如果这些任务是用户界面相关的任务,那么这样的情况下就可能导致非常糟糕的用户体验。而在原有的流程模型中,实时操作系统本身没有提供一种机制来避免这种情况的产生。

针对这种问题,现有的解决方法是通过人为的约束中断产生的次数,但是这种方法无法根据当前系统的CPU资源占用情况而作出动态调整,适应性不强。

发明内容

(一)要解决的技术问题

有鉴于此,本发明的主要目的在于提供一种避免实时操作系统频繁中断占用过多CPU资源的方法,以有效抑制频繁产生型中断,避免CPU资源过多的被占用。

(二)技术方案

为达到上述目的,本发明提供了一种避免实时操作系统频繁中断占用过多CPU资源的方法,该方法包括:

对每种类型中断分别设定一阈值,该阈值为CPU允许该类型中断产生的中断时间占全部中断时间的最大比例;

当某类型中断来临时,CPU判断该类型中断已产生的中断时间占所述全部中断时间的比例是否达到对应于该类型中断所设定的阈值,如果达到,则屏蔽该类型中断;如果没有达到,则继续执行中断处理流程。

优选地,所述某类型中断来临为接收到某中断请求,并执行完了关中断和现场保护,所述执行中断处理流程为:CPU执行与该中断请求对应的中断服务程序,然后执行恢复现场以及开中断流程。

优选地,所述某类型中断来临为接收到某中断请求,并执行完了关中断、现场保护和相应的中断服务程序,所述执行中断处理流程为:CPU执行恢复现场以及开中断流程。

优选地,在对每种类型中断分别设定一阈值时,进一步包括:建立中断的历史CPU资源占用信息数据库,用于保存各类型中断已产生的中断时间以及各类型中断所产生的全部中断时间;

在当某类型中断来临时,进一步包括:CPU从所述CPU资源占用信息数据库中读取该类型中断已产生的中断时间以及各类型中断所产生的全部中断时间,并计算该类型中断已产生的中断时间占各类型中断所产生的全部中断时间的比例。

优选地,所述继续执行中断处理流程进一步包括:CPU记录此次中断持续的时间,将该时间累加至所述CPU资源占用信息数据库中该类型中断已产生的中断时间,并更新所述CPU资源占用信息数据库中各类型中断所产生的全部中断时间。

优选地,在对每种类型中断分别设定一阈值时,进一步包括:建立中断的历史CPU资源占用信息数据库,用于保存各类型中断在该时间段内已产生的中断时间以及该时间段内各类型中断所产生的全部中断时间;

在当某类型中断来临时,进一步包括:CPU从所述CPU资源占用信息数据库中读取该类型中断在该时间段内已产生的中断时间以及该时间段内各类型中断所产生的全部中断时间,并计算该类型中断在该时间段内已产生的中断时间占该时间段内各类型中断所产生的全部中断时间的比例。

优选地,所述继续执行中断处理流程进一步包括:CPU记录此次中断持续的时间,将该时间累加至所述CPU资源占用信息数据库中该类型中断在该时间段内已产生的中断时间,并更新所述CPU资源占用信息数据库中该时间段内各类型中断所产生的全部中断时间。

优选地,所述时间段是从接收到中断请求时至一固定时间段之前的这一时间段,或者是接收到中断请求时所处的一固定时间段。

优选地,所述屏蔽该类型中断的同时,还包括:启用定时器;所述方法进一步包括:在定时器到达预先设定的时间后,取消对该类型中断的屏蔽。

(三)有益效果

从上述技术方案可以看出,本发明具有以下有益效果:

本发明提供的这种避免实时操作系统频繁中断占用过多CPU资源的方法,最大的特点就是从系统CPU资源占用情况的全局出发,来规划中断的CPU占用,并主动进行中断抑制,能够有效地抑制频繁产生型中断,避免了CPU资源过多的被占用,达到了系统CPU资源平衡利用的效果。

比如在没有实施该改进前,在中断频繁发生的情况下,可能99%的CPU资源都被中断占用,而进行主动中断抑制之后,流程中判断到中断占用了过去时间窗口的75%时间之后,那么就进行中断屏蔽,这样就能够空出CPU资源给其他任务使用,如此即可达到平衡的效果。

同时,此处75%这个数值是可调的,可根据实际的用户体验和需要来进行调整。

附图说明

图1为常规的中断处理流程图;

图2为本发明提供的避免实时操作系统频繁中断占用过多CPU资源的方法流程图;

图3为依照本发明实施例避免实时操作系统频繁中断占用过多CPU资源的方法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

下面介绍本发明的解决思路:

首先,基于每种类型的中断建立CPU资源占用情况的信息数据库,从中断产生至中断服务程序执行结束,在这段时间对应的时间窗口的位置中,标记为占用。在中断服务程序处理完毕之后,根据该中断的CPU占用信息数据库,根据如上记录的中断时间所占该时间窗口的比例,判断在设定的最近某个时间窗口内,该中断是否占用过多的CPU资源。当该中断占用的CPU资源的比例超过预设的阀值时,屏蔽该类型中断,并启动定时器,通过定时器机制来进行解除中断屏蔽。

另外,作为本发明提供的技术方案的扩展,还可以将某些频繁触发型中断归为一类,以类为单位建立统一的CPU资源占用情况信息数据库。这样这类中断就可以进行CPU资源的统一规划。

如图2所示,图2为本发明提供的避免实时操作系统频繁中断占用过多CPU资源的方法流程图,该方法包括:

步骤201:对每种类型中断分别设定一阈值,该阈值为CPU允许该类型中断产生的中断时间占全部中断时间的最大比例;

步骤202:当某类型中断来临时,CPU判断该类型中断已产生的中断时间占所述全部中断时间的比例是否达到对应于该类型中断所设定的阈值,如果达到,则执行步骤203;如果没有达到,则执行步骤204。

步骤203;屏蔽该类型中断,恢复现场,关中断;

步骤204:继续执行中断处理流程。

对于图2所示的技术方案,以下分两种情形进行详细说明:

情形1:上述步骤201中,在对每种类型中断分别设定一阈值时,可以进一步包括:建立中断的历史CPU资源占用信息数据库,用于保存各类型中断已产生的中断时间以及各类型中断所产生的全部中断时间。

此时,在当某类型中断来临时,CPU进一步从所述CPU资源占用信息数据库中读取该类型中断已产生的中断时间以及各类型中断所产生的全部中断时间,并计算该类型中断已产生的中断时间占各类型中断所产生的全部中断时间的比例。CPU判断该类型中断在该时间段内已产生的中断时间占该时间段内全部中断时间的比例是否达到对应于该类型中断所设定的阈值,如果达到,则屏蔽该类型中断,并启动定时器;如果没有达到,则继续执行中断处理流程。在定时器到达预先设定的时间后,取消对该类型中断的屏蔽。

可选地,中断的历史CPU资源占用信息数据库还保存有各类型中断已产生的中断时间占各类型中断所产生的全部中断时间的比例,在当某类型中断来临时,CPU可以直接从所述CPU资源占用信息数据库中读取该类型中断已产生的中断时间占各类型中断所产生的全部中断时间的比例。

在继续执行中断处理流程之后,CPU进一步记录此次中断持续的时间,将该时间累加至所述CPU资源占用信息数据库中该类型中断已产生的中断时间,并更新所述CPU资源占用信息数据库中各类型中断所产生的全部中断时间。

情形2:上述步骤201中,将每种类型中断对应的阈值进一步设定为CPU允许该类型中断在某一时间段内产生的中断时间占该时间段内全部中断时间的最大比例,则:当某类型中断来临时,CPU判断该类型中断在该时间段内已产生的中断时间占该时间段内全部中断时间的比例是否达到对应于该类型中断所设定的阈值,如果达到,则屏蔽该类型中断,并启动定时器;如果没有达到,则继续执行中断处理流程。在定时器到达预先设定的时间后,取消对该类型中断的屏蔽。

此时,在对每种类型中断分别设定一阈值时,可以进一步包括:建立中断的历史CPU资源占用信息数据库,用于保存各类型中断在该时间段内已产生的中断时间以及该时间段内各类型中断所产生的全部中断时间。

在当某类型中断来临时,CPU进一步从所述CPU资源占用信息数据库中读取该类型中断在该时间段内已产生的中断时间以及该时间段内各类型中断所产生的全部中断时间,并计算该类型中断在该时间段内已产生的中断时间占该时间段内各类型中断所产生的全部中断时间的比例。

可选地,中断的历史CPU资源占用信息数据库还保存有各类型中断在该时间段内已产生的中断时间占在该时间段内各类型中断所产生的全部中断时间的比例,在当某类型中断来临时,CPU可以直接从所述CPU资源占用信息数据库中读取该时间段内该类型中断已产生的中断时间占该时间段内各类型中断所产生的全部中断时间的比例。

在继续执行中断处理流程之后,CPU进一步记录此次中断持续的时间,将该时间累加至所述CPU资源占用信息数据库中该类型中断在该时间段内已产生的中断时间,并更新所述CPU资源占用信息数据库中该时间段内各类型中断所产生的全部中断时间。

在上述情形1和情形2中,所述某类型中断来临还可以进一步包括以下两种情况:

当所述某类型中断来临为CPU接收到某中断请求时,步骤204中所述继续执行中断处理流程为:CPU执行与该中断请求对应的中断服务程序,然后执行恢复现场以及开中断流程。

当所述某类型中断来临为CPU接收到某中断请求,并执行完了关中断、现场保护和相应的中断服务程序,步骤204中所述继续执行中断处理流程为:CPU执行恢复现场以及开中断流程。

另外,对于情形2,即在上述步骤201中将每种类型中断对应的阈值进一步设定为CPU允许该类型中断在某一时间段内产生的中断时间占该时间段内全部中断时间的最大比例时,所述某一时间段是从接收到中断请求时至一固定时间段之前的这一段时间,或者是固定的一段时间。

具体地,所述某一时间段是从接收到中断请求时至一固定时间段之前的这一段时间,假设固定时间段为一小时,如11:30接收到中断请求,则该时间段是指10:30~11:30,当判断超过阈值,则屏蔽该类型中断,启动定时器,定时时间可根据经验值选取,如10分钟,即到11:40解开屏蔽。可选地,所述某一时间段也可以是固定的一段时间,如11:00~12:00,当11:30接收的该中断请求所属中断类型已超过阈值,则屏蔽该类型中断,启动定时器,定时时间设为30分钟,即到12:00解开屏蔽。

基于图2所示的本发明提供的避免实时操作系统频繁中断占用过多CPU资源的方法流程图,图3示出了依照本发明实施例避免实时操作系统频繁中断占用过多CPU资源的方法流程图,该方法包括以下步骤:

步骤301:确定当前系统存在实时要求且可能产生频繁中断如收报文中断。

步骤302:在系统软件的收报文中断处理中,增加本中断占用CPU资源的数据库信息,仅需要保存最近的一个时间窗口。

步骤303:在时间窗口中计算本中断最近对CPU资源的占用情况,若占用的比例超过用户设定的阀值,那么屏蔽收报文中断。此时系统不再收报文。同时启动定时器,设定在一定时间,如10ms,之后解除屏蔽。

步骤304:此时10ms的时间就不会产生收报文中断。这样这10ms就可以空闲出来,供其他任务使用。

步骤305:10ms一到,定时器即可解除屏蔽,此时又可以产生收报文中断。

通过如上步骤301至305,可达到平衡CPU资源使用的效果。

上述具体实施例,实质上是依照图2所示技术方案的情形2进行描述的。在实际应用中,本发明也可以依照图2所示技术方案的情形1进行描述。此时,所采用的技术方案与本发明提供的技术方案是一致的,应包含在本发明的保护范围之内。

尽管本发明是结合具体实施例来表述的,本领域的技术人员在以上说明的基础上显然还能看出许多选择,修改和变更。因此,所有这些选择,修改和变更都应该被纳入附带的权利要求书所要求保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号