[发明专利]涉及临界资源的中断处理方法和装置及实时操作系统有效
申请号: | 200910009102.9 | 申请日: | 2009-02-18 |
公开(公告)号: | CN101482833A | 公开(公告)日: | 2009-07-15 |
发明(设计)人: | 卢胜文 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 隆天国际知识产权代理有限公司 | 代理人: | 郭晓东;邢雪红 |
地址: | 310053浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 涉及 临界 资源 中断 处理 方法 装置 实时 操作系统 | ||
技术领域
本发明涉及中断处理技术,尤其涉及一种涉及临界资源的中断处理方法和一种涉及临界资源的中断处理装置,还涉及一种实时操作系统。
背景技术
实时操作系统(Real Time Operating System)相对于通用操作系统,具有可精确预见的实时性,因此被广泛应用在工业控制当中。
保证操作系统实时性的一种方式为采用任务抢占机制,其工作原理如下:提供具有优先级的任务调度,使优先级高的任务可以抢占优先级低的任务,从而保证优先级高的任务可以执行。但是,任务的抢占机制会同时导致大量共享资源的访问保护问题;特别是对一些大型的软件系统,比如数通设备,如果使用完全可抢占的任务系统,其开发和维护的复杂度及成本都相当可观。
对于这些大型的软件系统来说,其任务主要是由数据包来驱动的,且对实时性的要求并非特别严格,因此通常情况下会禁止任务的抢占机制,而是采用另外一种方式来保证操作系统实时性:通过对数据包的调度和调整任务的执行时间来保证相对的实时性;采用这种方式时,在代码编写过程中就可以不用考虑共享资源的访问保护问题,从而大大降低整个系统代码开发的复杂度,也使系统运行更加可靠。但是同时,对于这种采用相对实时性机制的操作系统而言,由于其任务不可抢占,因此任务处理的实时性存在很大偏差;这种情况下,对于一些需要立即响应的事件,例如链路中断、单板插拔等等,需要结合采用中断处理来达到实时性要求。
虽然中断处理能够提供很高的实时精度,但在由于中断调用任务不能使用信号量等保护临界资源访问的技术,因此在实际应用中往往要对其加以关闭,即在有应用程序访问临界资源时采取关中断(disableinterrupt),在访问完毕后再开中断(enable interrupt)。上述处理方式导致了以下缺陷:
(1)应用程序必须在代码设计中考虑涉及临界资源访问时的开关中断问题,增加了应用程序的开发和维护难度;
(2)开关中断的处理导致系统开销的增加;
(3)关中断处理削弱了系统实时响应能力及可预测能力,降低了系统的实时精度;
(4)对于时钟中断而言,执行关中断处理会导致中断丢失的可能性,同时带来时钟失真的问题,对于一些频繁但执行较慢的访问临界资源的应用程序而言,这种缺陷表现的尤为明显,例如I/O访问;而且开关中断越频繁,上述问题就越严重,降低了系统的准确性和可用性。
发明内容
本发明的实施例旨在克服上述现有技术的缺陷,提供一种中断触发机制的实现方案,以降低应用程序开发和维护的难度,减少系统开销,以及提高多任务操作系统的实时精度。
为实现上述目的,本发明的实施例提供了一种涉及临界资源的中断处理方法,设置用于标识一临界资源是否被中断调用任务以外的应用程序访问的第一全局变量,以及,设置用于标识是否存在涉及所述临界资源的一待处理中断的第二全局变量;然后,通过以下步骤实现中断调用任务和临界资源访问的互斥处理:
当中断产生时,识别所述第一全局变量是否置位,是则置位所述第二全局变量;否则调用相应的任务函数进行处理,处理结束退出中断调用任务;
当一应用程序成功申请所述临界资源访问时,置位所述第一全局变量;以及,当所述应用程序完成所述临界资源访问时,识别所述第二全局变量是否置位,是则,调用相应的任务函数进行处理,处理结束后取消所述第二全局变量置位和所述第一全局变量置位,所述应用程序的临界资源访问结束;否则,直接取消所述第一全局变量置位,所述应用程序的临界资源访问结束。
较佳的,所述中断可以包括满足定时时长的时钟中断。
较佳的,还包括应用程序申请所述临界资源访问的步骤:识别是否正在执行涉及所述临界资源的中断调用任务,是则申请失败,所述应用程序的临界资源访问结束;否则许可所述应用程序获得临界资源互斥保护,所述应用程序申请临界资源访问成功。
较佳的,所述临界资源互斥保护为信号量保护。
较佳的,所述第一全局变量和第二全局变量以0、1标识,1为置位,0为取消置位。
本发明的实施例还提供了一种涉及临界资源的中断处理装置,包括:
第一全局变量单元,用于保存第一全局变量,所述第一全局变量用于标识一临界资源是否被中断调用任务以外的应用程序访问;
第二全局变量单元,用于保存第二全局变量,所述第二全局变量用于标识是否存在涉及所述临界资源的一待处理中断;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910009102.9/2.html,转载请声明来源钻瓜专利网。