根据简单优先级继承方案的多任务方法及其嵌入式系统技术方案

技术编号:2828030 阅读:223 留言:0更新日期:2012-04-11 18:40
提供了一种根据简单优先级继承方案的多任务方法及其嵌入式系统。提供了一种根据多个任务中每个任务的优先级来执行所述多个任务的多任务方法及其嵌入式系统。确定将被当前任务使用的资源是否正被另一任务使用;根据确定结果将当前的优先级与正使用所述资源的任务的优先级进行比较;以及根据比较结果,将正使用所述资源的任务的优先级增加到尝试占据CPU的所有任务的优先级中的最高优先级。因此,能够解决BPⅠ和ⅡP中的传统问题。

【技术实现步骤摘要】

本专利技术涉及一种根据多个任务中的每个任务的优先级执行所述多个任务 的多任务方法及其嵌-入式系统。
技术介绍
可将在嵌入式系统中的操作系统(OS )分成实时OS(RTOS )和非RTOS。 商业化的OS中代表性的RTOS是VxWorks (www.windriver.com)、 pSOS(www.windriver.com )、 VRTX ( www.mento.com )、 QNX ( www.qnx.com )、 Nucleus ( www.atinudclus.com ) 、 MC/OSII ( www.mcos-ii.com ) 和 OSE(www.ose.com )。这些RTOS通常支持用于停止执4亍特定任务并首先执行另 一任务的抢占式(preempted)多任务。为了使RTOS支持抢占式多任务,每个任务必须具有优先级。RTOS中 的实时表示特定任务的执行结束时间必须在期望的调度(schedule)中。具体 地讲,当必须比其他任务更严格地观测特定任务的执行结束时间时,将所述 特定任务的优先级设置的比其他任务的优先级高。例如,任务的执行周期越 短,必须越严格地观测该任务的执行结束时间。如果将任务的优先级反转, 则任务的执行结束时间无法在期望的调度中,这导致RTOS中的实时特性破 坏。图1是描述在RTOS中的优先级反转的时序图。参照图1,存在3个任务,并标记了通过占据中央处理单元(CPU)而 被执行的每个任务的持续时间。在这3个任务中具有最低优先级的第一任务 抢占CPU。在占据CPU的同时,第一任务锁定特定资源的mutex(互斥对象)。 具体地讲,在图1的CPU占据持续时间内,将mutex^皮锁定的部分标记为暗 色。mutex是用于防止多个任务在相同时间使用单个资源的对象。任务锁定 预定资源的mutex的事实表示任务拥有所述预定资源的mutex,即只有该任 务能使用所述预定资源。另外,只有该任务能解除所述预定资源的mutex锁 定。其后,优先级比第一任务高的第三任务抢占CPU。在占据CPU的同时, 第三任务尝试锁定资源的mutex。然而,由于资源已被第一任务进行了 mutex 锁定,所以第三任务无法使用所述资源。结果,第三任务的执行被阻塞,第 一任务的执行重新开始。其后,优先级比第一任务高并且比第三任务低的第 二任务抢占CPU。第二任务不需要资源。因此,第二任务没有尝试资源的 mutex锁定,并连续占据CPU,直到第二任务的执行结束为止。结果,发生 了由于优先级比第三任务低的第二任务的执行而导致第三任务的执行被延迟 的效果(即,优先级反转)。为了解决优先级反转,已经提出了多种方案。代表性的方案是基本优先 级反转(BPI)方案和立即继承协议(Immediate Inheritance Protocol, IIP)方 案。图2是在传统的嵌入式系统中根据BPI方案的多任务方法的流程图。具 体地讲,图2中示出的多任务进程是整个多任务进程中的mutex锁定设置进 程。参照图2,在操作21,嵌入式系统从准备执行的任务中搜索具有最高优 先级的任务(以下,称为当前任务,,)。在操作22,嵌入式系统确定是否存在将被在操作21中找到的当前任务 使用的资源的mutex锁定。如果在操作22中确定不存在mutex锁定,则进程 进行到操作23,如果在操作22中确定存在mutex锁定,则进程进行到操作 25。在操作23,嵌入式系统关于当前任务锁定所述资源的mutex。 在操作24,嵌入式系统通过使用mutex锁定的资源来执行当前任务。 在操作25 ,嵌入式系统将当前任务的优先级与正在使用所述资源的任务的优先级进行比较。如果当前任务的优先级高于拥有所述资源的mutex锁定的资源的优先级,则进程进行到操作26,否则进程进行到操作28。在操作26,嵌入式系统将拥有所述资源的mutex锁定的任务的优先级增加到当前任务的优先级。在操作27,嵌入式系统将在拥有所述资源的mutex锁定的任务中所嵌套的任务的优先级增加到当前任务的优先级。在操作28,嵌入式系统控制当前任务等待,直到资源的mutex锁定不存在为止,并且进程进行到操作22。在任务中嵌套的任务是处于后面的任务使用通过执行前面的任务所获得的结果的关系中的任务。具体地讲,这种优先 级增加方案被称为优先级继承,现在将对其进行描述。图3是描述BPI中的优先级继承的示图。参照图3 ,第 一任务使用与第二 mutex相应的资源,第二任务输出与第 二mutex相应的资源,并^f吏用与第四mutex相应的资源,第四任务输出与第 四mutex相应的资源。在这种情况下,如果只有第一任务的优先级增加到当 前任务的优先级,则第一任务的执行不被具有比当前任务的优先级低的优先 级的任务阻塞,但第二任务或第四任务的执行可能^L具有比当前任务的优先 级低的优先级的任务阻塞。结果,不输出与作为通过执行第二任务所获得的 结果的第二 mutex相应的资源或与作为通过执行第四任务所获得的结果的第 四mutex相应的资源,因此,第 一任务不可以使用与第二 mutex相应的资源。因此,嵌入式系统必须将在处理预定资源的mutex锁定的任务中嵌套的 所有任务的优先级增加到当前任务的优先级。然而,这对嵌入式系统而言是 相当大的开销,并且可能严重破坏嵌入式系统的实时特性。图4是在传统的嵌入式系统中根据IIP方案的多任务方法的流程图。具 体地讲,图4中示出的多任务进程是整个多任务进程中的mutex锁定设置进 程。参照图4,在操作41,嵌入式系统从已经准备执行的任务中搜索具有最 高优先级的任务(以下,称为当前任务,,)。在操作42,嵌入式系统确定是否存在将被在操作41中找到的当前任务 使用的资源的mutex锁定。如果在操作42中确定不存在mutex锁定,则进程 进行到操作43,如果在操作42中确定存在mutex锁定,则进程进行到操作 46。在操作43,嵌入式系统关于当前任务锁定所述资源的mutex。在操作44,嵌入式系统将拥有mutex锁定的当前任务的优先级增加到期望抢占CPU的所有任务的优先级中的最高优先级。在操作45,嵌入式系统通过使用mutex锁定的资源来执行当前任务。 在操作46,嵌入式系统控制当前任务等待,直到资源的mutex锁定不存在为止,并且进程进行到操作42。如上所述,IIP方案可能非常简单并且有效。然而,由于处理mutex锁定的当前任务的优先级被无条件地增加,所以如果没有发生优先级反转,即如果当前任务使用与优先级比当前任务高的任务所使用的资源不同的资源,则 优先级比当前任务高的任务的执行可能被延迟到当前任务的执行完成。具体地讲,IIP方案可能由于在频繁出现mutex锁定持续时间的进程中具有较低优 先级的任务的执行而导致频繁阻塞具有较高优先级的任务的执行,这严重破 坏了嵌入式系统的实时特性。
技术实现思路
本实施例提供了一种多任务方法和嵌入式系统,以解决传统的基本优先 级反转(BPI)和立即继承协议(IIP)方案的问题。本实施例还提供了 一种存储有用于执行所述多任务方法的计算机可读程 序的计算机可读记录介质。其他方面和/或优点将在下面的描述中被部分阐述,部分地,从描述中将 清楚,或可通过实施本专利技术而被了解。通本文档来自技高网
...

【技术保护点】
一种根据多个任务中每个任务的优先级来执行所述多个任务的多任务方法,所述多任务方法包括:    确定将被所述多个任务中的第一任务使用的资源是否正被第二任务使用;    根据确定结果将第一任务的优先级与第二任务的优先级进行比较;以及    根据比较结果将第二任务的优先级增加到所述多个任务的所有优先级中的最高优先级。

【技术特征摘要】
KR 2007-1-5 10-2007-00016991、一种根据多个任务中每个任务的优先级来执行所述多个任务的多任务方法,所述多任务方法包括确定将被所述多个任务中的第一任务使用的资源是否正被第二任务使用;根据确定结果将第一任务的优先级与第二任务的优先级进行比较;以及根据比较结果将第二任务的优先级增加到所述多个任务的所有优先级中的最高优先级。2、 如权利要求1所述的多任务方法,其中,第一任务是准备被执行的任 务中具有最高优先级的任务。3、 如权利要求1所述的多任务方法,其中,所述确定步骤包括通过确 定是否存在将被第一任务使用的资源的互斥对象锁定来确定所述资源是否正 被第二任务使用。4、 如权利要求1所述的多任务方法,还包括当确定所述资源没有正被第二任务使用时,向第一任务授予所述资源的 使用一又限;以及通过使用许可给第 一任务的资源来执行第 一任务。5、 如权利要求4所述的多任务方法,其中,所述授予步骤包括通过为 第一任务锁定所述资源的互斥对象,来向第一任务授予所述资源的使用权限。6、 一种存储有计算机可读程序的计算机可读存储介质,所述计算机程序 使得处理器根据多个任务中每个任务的优先级执行所述多个任务的多任务方 法,所述多任务方法包括确定将被所述多个任务...

【专利技术属性】
技术研发人员:崔奎相朴正根林采石
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:KR[韩国]

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

1