在μC/OS—II中限制任务的优先次数

来源 :电子世界 | 被引量 : 0次 | 上传用户:Sqiwei
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  1.引言
  实时系统中,任务的优先级有时并不是绝对的。对高优先级任务和低优先级任务同时进行调度,每次都是高优先级任务胜出的话,并不总是合适的。就如一个单位评先进,如果每次都评领导,就是一种不明智的做法。这种不合适可以从两个方面来认识:第一,如果高优先级任务需要长时间运行,占据CPU,低优先级者将难以得到运行机会;第二,如果高优先级任务出现故障或误动因素,导致运行过于频繁,也可能会严重妨碍其它任务的运行。例如,有些市售防盗报警器,采用热释电红外传感器,出现误报就屡见不鲜。如果这样的传感器所对应的任务在系统中具有较高的优先级,误报时不但提供了假信息,而且会浪费甚至严重占据系统资源。因此,适当限制高优先级任务的胜出次数是有实际意义的。
  本文以大量实际应用的实时操作系统μC/OS-II为例,通过改动其调度程序,对高优先级任务的胜出次数进行限制。文中基于Win32平台,给出了仿真方法,并示出了仿真结果。
  2.调度程序的修改
  在μC/OS-II的OS_CORE.C中,有一个查找最高优先级的函数OS_SchedNew[1]。我们引入高优先级任务胜出次数限制机制,对该函数修改后,源代码示例如图1所示。
  图1 OS_SchedNew函数的修改。
  图1中的①②③行是系统中原有的代码,④到⑨行是新添的。这里只讨论两个任务:优先级为1的任务1和优先级为2的任务2。显然任务1的优先级较高。P1count和P2count分别代表任务1和任务2允许连续获得系统调度的次数,num1和num2分别代表P1count和P2count的初始值。例如,若num1=2,num2=3,表示任务1和任务2竞争调度时,前2次任务1将获得调度,第3次、第4次和第5次则是任务2胜出,第6次开始又是任务1胜出,…。注意只有当任务1和任务2同时就绪时,④到⑨行才会被执行。这表明只有相对于任务2,任务1的优先次数才被加以限制。
  当多于两个任务需要引入图1所示的优先次数限制机制时,可针对④到⑨行的程序扩充即可。
  3.运行仿真
  针对图1的调度程序,如何演示任务1和任务2的调度结果呢?这里引入一个任务0,优先级为0。用任务0来监督任务1和任务2的运行。任务0、任务1和任务2的代码分别如图2、图3和图4所示。
  图2 任务0的代码
  图3 任务1的代码
  图4 任务2的代码
  任务0中,除了循环延时外,主要设置了OSTaskSuspend(0),用于挂起自己。什么时候恢复呢?在任务1和任务2中都设置了一句OSTaskResume(0),用于恢复任务0。实际上,无论是任务1还是任务2,都是一个一直就绪的死循环,除了OS_Printf语句外,就只有OSTaskResume(0)。因为任务0的优先级高于任务1和任务2,所以,只有任务0挂起自己后,任务1和任务2才可能运行。又因为任务1的优先级高于任务2,故首先任务1得以运行,打印出“this is task 1”字样。根据上述优先次数限制机制,当任务1连续打印出num1次“this is task 1”字样后,下一次任务2将胜出。任务2连续打印出num2次“this is task 2”字样后,下一次任务1又将胜出。…。
  取num1=2,num2=3,仿真结果如图5所示。
  图5 num1=2和num2=3的仿真結果
  4.结束语
  关于μC/OS-II,尽管近年又出现了新版本μC/OS-III,其中增加了对轮转调度的支持,但这种支持是基于时间片的[2],而本文的方法是基于调度次数的。也就是说,不管在μC/OS-II还是μC/OS-III中,本文的研究都是有意义的。当然,关于仿真方法,我们还可以利用系统中设置的事件机制、信号灯或其它办法,但本文提供的方法应该是比较简单的。
  参考文献
  [1]杨宗德,张兵著.μC/OS-II标准教程[M].北京:人民邮电出版社,2009.
  [2]李承创,陈跃斌,房晓丽,王兵.μC/OS-III在Cortex-M3处理器上的移植[J].单片机与嵌入式系统应用,2012, 20(11):42-48.
  作者简介:
  钱光明,男,湖南师范大学数学与计算机科学学院教授,主要研究方向:嵌入式和实时系统。
  刘弢,男,硕士研究生,现就读于湖南师范大学数学与计算机科学学院。
其他文献
期刊
许多评论家,如彼得·李斯卡和霍华德·雷文特,认为约翰·斯坦贝克的《伊甸之东》是成功的失败之作。这些评论家指出,尽管斯坦贝克的写作技法已经表现成熟,但在这部小说中仍然
在开展先进性教育活动中,海南省电信有限公司党组坚持从五个方面抓好整改工作:一是把整改的出发点放在解决群众最关心的重点问题上,坚持“群众利益无小事”、“不因小事而不
期刊
2月15日,江苏省委副书记、南京市委书记吴政隆现场调研江心洲规划建设情况,英达科技集团董事长、总裁施伟斌作为人驻企业代表,向吴政隆介绍了项目定位及英达就地热再生技术.
期刊
福克纳是一位极具社会责任感的小说家,他的作品深深扎根于美国南方社会,追溯美国南方的变迁史以及给人们带来的心理变化,蕴含着丰富的伦理道德思想。创作于1930年的《我弥留
文化维度理论最早由荷兰学者霍夫斯泰德提出,其核心内容主要包括衡量价值观的五个维度:权力距离,不确定性规避,个人主义与集体主义,男性度与女性度,以及长期观与短期观。不同
劳伦斯是二十世纪最优秀但同时也是最有争议的作家之一。作为一位极具创造力的文学大师,他的作品以其精美的艺术形式和独树一帜的革新观点,仍深深影响着现代小说文坛。而他很
歧义是任何一种人类语言中普遍存在的现象,并且可能在语言的任何层面发生,从语音层面到语义层面,结构层而和语用层面。这也是将人类语言和人工语言进行区分的标志之一。有关歧义
在现有客观性背景下,为了切实保障在校大学生的思想教育工作能够取得良好的预期效能,必须切实打破原有的工作设计思路的客观束缚,寻找到新的有更加充分实践效用的工作方案。