欢迎来到天天文库
浏览记录
ID:33932746
大小:276.29 KB
页数:4页
时间:2019-03-01
《μc_os-ⅱ任务调度的改进与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据pC/OS一Ⅱ任务调度的改进与实现王海燕(西安石油大学陕西西安710065)摘要:介绍了弘c/0S一Ⅱ嵌入式实时操作系统的特点,分析了单一的基于优先级调度算法存在的不足。根据嵌入式应用的实时性要求不同,将应用划分为实时任务、分时任务和后台任务3种类型。针对分时任务新增的时间片调度算法,给出调度算法的实现方法,并增加了任务创建和销毁的接口。降低了基于弘C/0s一Ⅱ操作系统嵌入式产品的开发难度和设计成本,有利于该操作系统的应用推广。关键词:弘C/oS一Ⅱ;嵌入式操作系统;任务调度;任务控制块;栈;时间片调度算法中图分类号:
2、TP316.1文献标识码:B文章编号:1004—373X(2006)14一041一03ImprovementandImplementofContextSwitchinpC/oS一ⅡWANGHaiyan(Xi’anShiyouUniversity,Xi’an,710065.China)Abstract:ThepaperintroducesthecharacteristicofembeddedRT()S一弘C/oS一Ⅱ,andanalyzesthedisadvantageinsingletaskschedulingalgorith
3、mbasedonprioritylevel.Accordingtothereal—timerequestlevelofembeddedapplication,thispaperpresentsanewarithmetictopartitiontaskspaceintothreesegments,real—timetask,share—timetaskandbackgroundtask.Toaddatimesliceschedu“ngalgorithminshare—timetask,andcreatesnewinterface
4、sabouttaskcreatinganddestroying.Thispaperdecreasesthedifficultyandcostindesignanddevelopingembeddedproductbasedon弘C/oS一Ⅱ,andispropitioustowidelyusingofpC/oS一Ⅱ.Keywords:pC/oS一Ⅱ;embeddedoperationsystem;taskschedule;TCB;stack;times“ceschedulingalgorithm1引言“C/()S一Ⅱ是基于优先
5、级的抢占式实时多任务操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息队列)和内存管理等功能。他的源代码大部分用C语言编写,而且是公开免费的,系统具有很好的可移植性。稳定性和可靠性得到了广泛的认可,现已通过美国FAA认证。目前肛C()S一Ⅱ已广泛应用到航空航天、工业控制、电子消费产品等嵌入式领域。2IIC/OS一Ⅱ在嵌入式产品应用存在的问题弘C/()S一Ⅱ在设计时强调实时性,他采用单一的基于优先级的抢先式调度算法,有效地保证了实时性要求。在各种嵌入式操作系统中,其任务切换带来的延时窗口可以说是最小
6、的之一,非常适合强实时性的任务要求。但对大部分周期性和实时性要求不高的任务来说,弘C/()S一Ⅱ还存在一些不足:(1)缺乏时间片调度肛C/()S一Ⅱ不支持时间片调度,优先级高的任务如果收稿日期:2006一02—14不主动放弃CPU,低优先级任务永远都不可能运行,这对于那些分别编写,但又可能同时运行的任务来说,只能通过采用信号灯和休眠等方法来完成任务交替运行。(2)任务编程接口复杂弘C/()S一Ⅱ提供给上层应用任务编程接口比较复杂。第一,他不提供任务栈空间管理功能,各个不同的任务使用的堆栈空间完全由用户申请和释放,这样带来系统不
7、安全隐患;第二,他采用严格的优先级调度,用户必须为每个应用指定一个惟一的优先级;第三,他规定任务必须为无限循环或自销毁形式,所以其任务在结束时,需要手工调用oSTaskDel使该任务进入睡眠态,不能简单的返回。弘C/()S一Ⅱ在用法上与现在的大多数操作系统存在较大差异性。在开发弘C/()S一Ⅱ的上层软件应用时需要关心底层具体实现,这样大大增加了应用程序编写难度,而且破坏了模块的独立性。3pc/os一Ⅱ调度算法的改进弘C/()s一Ⅱ主要就是利用任务控制块()sTCB、就绪表和控制块优先级表()STCBPrioTbl来进行任务调度
8、。()STCB用来记录任务执行的环境,包括任务的优先级,任务的堆栈指针等;就绪表用来标注当前就绪的任务;控41万方数据制块优先级表用来建立任务优先级和控制块地址映射关系。任务调度程序0SSched()首先由通过就绪表中找到当前系统中具有最高的优先级任务,然后根据其优先级在oS
此文档下载收益归作者所有