涉及临界资源的中断处理方法和装置及实时操作系统制造方法及图纸

技术编号:3775433 阅读:250 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种涉及临界资源的中断处理方法和涉及临界资源的中断处理装置。设置用于标识一临界资源是否被中断调用任务以外的应用程序访问的第一全局变量,以及,设置用于标识是否存在涉及临界资源的一待处理中断的第二全局变量;通过识别第一全局变量和第二全局变量的置位情况实现中断调用任务和应用程序临界资源访问的互斥处理。本发明专利技术还公开了一种实时操作系统。通过本发明专利技术,能够在不关闭中断的情况下解决应用程序访问临界资源和临界资源中断的互斥问题,从而降低应用程序开发和维护的难度,减少系统开销;在保证了应用程序对于临界资源正常访问的同时,提高多任务操作系统的实时精度。

【技术实现步骤摘要】

本专利技术涉及中断处理技术,尤其涉及一种涉及临界资源的中断处理方法 和一种涉及临界资源的中断处理装置,还涉及一种实时操作系统。
技术介绍
实时操作系统(Real Time Operating System)相对于通用操作系统,具 有可精确预见的实时性,因此被广泛应用在工业控制当中。保证操作系统实时性的一种方式为采用任务抢占机制,其工作原理 如下提供具有优先级的任务调度,使优先级高的任务可以抢占优先级 低的任务,从而保证优先级高的任务可以执行。但是,任务的抢占机制 会同时导致大量共享资源的访问保护问题;特别是对一些大型的软件系 统,比如数通设备,如果使用完全可抢占的任务系统,其开发和维护的 复杂度及成本都相当可观。对于这些大型的软件系统来说,其任务主要是由数据包来驱动的, 且对实时性的要求并非特别严格,因此通常情况下会禁止任务的抢占机 制,而是采用另外一种方式来保证操作系统实时性通过对数据包的调 度和调整任务的执行时间来保证相对的实时性;采用这种方式时,在代 码编写过程中就可以不用考虑共享资源的访问保护问题,从而大大降低 整个系统代码开发的复杂度,也使系统运行更加可靠。但是同时,对于 这种采用相对实时性机制的操作系统而言,由于其任务不可抢占,因此 任务处理的实时性存在很大偏差;这种情况下,对于一些需要立即响应 的事件,例如链路中断、单板插拔等等,需要结合采用中断处理来达到 实时性要求。虽然中断处理能够提供很高的实时精度,但在由于中断调用任务不 能使用信号量等保护临界资源访问的技术,因此在实际应用中往往要对 其加以关闭,即在有应用程序访问临界资源时采取关中断(disableinterrupt),在访问完毕后再开中断(enable interrupt)。上述处理方式导致了以下缺陷(1) 应用程序必须在代码设计中考虑涉及临界资源访问时的开关中 断问题,增加了应用程序的开发和维护难度;(2) 开关中断的处理导致系统开销的增加;(3) 关中断处理削弱了系统实时响应能力及可预测能力,降低了系 统的实时精度;(4) 对于时钟中断而言,执行关中断处理会导致中断丢失的可能性, 同时带来时钟失真的问题,对于一些频繁但执行较慢的访问临界资源的 应用程序而言,这种缺陷表现的尤为明显,例如I/O访问;而且开关中 断越频繁,上述问题就越严重,降低了系统的准确性和可用性。
技术实现思路
本专利技术的实施例旨在克服上述现有技术的缺陷,提供一种中断触发机制 的实现方案,以降低应用程序开发和维护的难度,减少系统开销,以及提高 多任务操作系统的实时精度。为实现上述目的,本专利技术的实施例提供了一种涉及临界资源的中断处理 方法,设置用于标识一临界资源是否被中断调用任务以外的应用程序访问的 第一全局变量,以及,设置用于标识是否存在涉及所述临界资源的一待处理 中断的第二全局变量;然后,通过以下步骤实现中断调用任务和临界资源访 问的互斥处理当中断产生时,识别所述第一全局变量是否置位,是则置位所述第二全 局变量;否则调用相应的任务函数进行处理,处理结束退出中断调用任务;当一应用程序成功申请所述临界资源访问时,置位所述第一全局变量;以及,当所述应用程序完成所述临界资源访问时,识别所述第二全 局变量是否置位,是则,调用相应的任务函数进行处理,处理结束后取 消所述第二全局变量置位和所述第一全局变量置位,所述应用程序的临 界资源访问结束;否则,直接取消所述第一全局变量置位,所述应用程5序的临界资源访问结束。较佳的,所述中断可以包括满足定时时长的时钟中断。较佳的,还包括应用程序申请所述临界资源访问的步骤识别是否正在执行涉及所述临界资源的中断调用任务,是则申请失败,所述应用程序的临界资源访问结束;否则许可所述应用程序获得临界资源互斥保护,所述应用程序申请临界资源访问成功。较佳的,所述临界资源互斥保护为信号量保护。较佳的,所述第一全局变量和第二全局变量以0、 l标识,l为置位, 0为取消置位。本专利技术的实施例还提供了一种涉及临界资源的中断处理装置,包括 第一全局变量单元,用于保存第一全局变量,所述第一全局变量用于标识一临界资源是否被中断调用任务以外的应用程序访问;第二全局变量单元,用于保存第二全局变量,所述第二全局变量用于标识是否存在涉及所述临界资源的一待处理中断;中断处理单元,与所述第一全局变量单元和所述第二全局变量单元 连接,由中断触发,识别所述第一全局变量是否置位,是则置位所述第二全局变量;否则调用相应的任务函数进行处理;临界资源访问处理单元,与所述第一全局变量单元和所述第二全局 变量单元连接,由应用程序对所述临界资源访问的成功申请触发,置位 所述第一全局变量;以及,当所述应用程序完成所述临界资源访问时, 识别所述第二全局变量是否置位,是则,调用相应的任务函数进行处理, 处理结束后取消所述第二全局变量置位及所述第一全局变量置位;否则, 直接取消所述第一全局变量置位。较佳的,所述中断包括满足定时时长的时钟中断。较佳的,还包括临界资源申请单元,由应用程序访问临界资源的请 求触发,识别是否正在执行涉及所述临界资源的中断调用任务,是则申 请失败;否则许可所述应用程序获得临界资源互斥保护,所述应用程序 申请临界资源访问成功,触发所述临界资源访问处理单元。较佳的,所述临界资源互斥保护为信号量保护。较佳的,所述第一全局变量单元和所述第二全局变量单元以O、 l标 识第一全局变量和第二全局变量,l为置位,0为取消置位。本专利技术的实施例还提供了一种实时操作系统,设有如上所述的涉及 临界资源的中断处理装置来实现中断调用任务和临界资源访问的互斥处理。由上述技术方案可知,本专利技术的实施例通过设定全局变量标识临界资源 的访问情况,能够在不关闭中断的情况下解决应用程序访问临界资源和临界 资源中断的互斥问题,具有以下有益效果1、 无需在涉及临界资源访问的应用程序中设计开关中断的代码,降低应用程序开发和维护的难度;2、 无需在应用程序访问临界资源时执行开关中断的操作,减少了系统 开销;3、 发生在应用程序访问临界资源过程中的中断能够得到尽快地调用, 从而提高了多任务操作系统的实时精度;4、 尤其对于时钟中断而言,能够避免了中断关闭所导致的中断丢失和 时钟失真。通过以下参照附图对优选实施例的说明,本专利技术的上述以及其它目的、 特征和优点将更加明显。附图说明图1为本专利技术提供的涉及临界资源的中断处理方法一实施例的流程图; 图2A、 2B、 2C为图l所示实施例中实现中断调用任务和临界资源访问 的互斥处理的分解流程图3为本专利技术提供的涉及临界资源的中断处理装置一实施例的框图。具体实施例方式7下面将详细描述本专利技术的具体实施例。应当注意,这里描述的实施例只 用于举例说明,并不用于限制本专利技术。基于规范描述和方便阅读的考虑,逐一定义本专利技术专利申请文件中出现 的术语如下中断调用任务是指由满足一定条件的中断所触发的任务函数;该任务 函数可能是一应用程序,也可能是应用程序的一部分,但被中断所调用时无 法获得临界资源互斥保护;时钟中断(Time Interrupt):包括两个方面的含义, 一是硬件时钟中断, 一是软件时钟中断;本专利技术是指软件时钟中断,即根据实时时钟(Real Time Clock, RTC)进行节拍Tick计本文档来自技高网
...

【技术保护点】
一种涉及临界资源的中断处理方法,其特征在于,设置用于标识一临界资源是否被中断调用任务以外的应用程序访问的第一全局变量,以及,设置用于标识是否存在涉及所述临界资源的一待处理中断的第二全局变量;然后,通过以下步骤实现中断调用任务和应用程序临界资源访问的互斥处理: 当中断产生时,识别所述第一全局变量是否置位,是则置位所述第二全局变量;否则调用相应的任务函数进行处理,处理结束退出中断调用任务; 当一应用程序成功申请所述临界资源访问时,置位所述第一全局变量;以及,当所述应用 程序完成所述临界资源访问时,识别所述第二全局变量是否置位,是则,调用相应的任务函数进行处理,处理结束后取消所述第二全局变量置位和所述第一全局变量置位,所述应用程序的临界资源访问结束;否则,直接取消所述第一全局变量置位,所述应用程序的临界资源访问结束。

【技术特征摘要】

【专利技术属性】
技术研发人员:卢胜文
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

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

1