媚骨是什么意思| 6.30是什么星座| 什么是双一流大学| 白带清洁度lv是什么意思| 窍是什么意思| balmain什么档次| 舌苔发紫是什么原因| 伍德氏灯检查什么| 收缩压是什么意思| 腿毛长的男人代表什么| 血糖高吃什么可以降下来| 肾虚吃什么药最有效| 喝酒过敏吃什么药| 世界上最大的岛是什么岛| 原图是什么意思| 丹凤朝阳什么意思| 淋巴细胞是什么| 野人是什么意思| 未见卵黄囊及胚芽是什么意思| 沙门氏菌用什么药| 梦见自己怀孕生孩子是什么意思| 手上三条线分别代表什么| 抗体是什么意思| 血压高应该吃什么食物| hbcag是什么意思| 什么是童子命| 什么是菜花病| 捡到钱是什么预兆| 吃西瓜有什么坏处| 血线高是什么意思啊| 桉字五行属什么| 一个白一个本是什么字| 为什么万恶淫为首| 子宫肌瘤做什么检查能查出来| 荨麻疹忌口忌什么食物| 阴阳调和是什么意思| 姨妈来了吃什么水果好| 木薯粉是什么| 气性大是什么意思| 免疫十一项都检查什么| 和什么相什么| 心脏斑块是什么意思啊| 九月初十是什么星座| 肤色暗黄适合穿什么颜色的衣服| 精彩是什么意思| 尽善尽美是什么生肖| 男性补肾壮阳吃什么药效果比较好| 12月13日是什么星座| 胃肠道功能紊乱吃什么药| 小腹左边疼是什么原因| 什么鱼蛋白质含量高| 青枝骨折属于什么骨折| 嘤嘤嘤什么意思| 突然手发抖是什么原因| 疥疮是什么原因造成的| 什么物流寄大件便宜| 国企混改是什么意思| 谷氨酸钠是什么| 蟑螂有什么危害| 卸磨杀驴什么意思| 5.23是什么星座| 对什么有益英语| 斜视是什么| 喝醉是什么感觉| 为什么孕酮会低| 肠炎是什么原因引起的| 隔空是什么意思| 手脚麻是什么原因| 什么药消肿最快最有效| 炖羊汤放什么调料| 指甲上的月牙代表什么| 脑蛋白治疗什么病| 梦到女孩子有什么预兆| 心血管病人吃什么最好| 上海有什么好玩的地方适合小孩子| 2008年是什么年| 9月24号是什么星座| 什么叫阳虚| 9月10日什么星座| 卉是什么意思| 皮肤过敏有什么妙招| 乌龟一般吃什么东西| 咸湿佬是什么意思| 属鸡的什么命| 梦到前女友征兆是什么| 二线用药是什么意思| 大腿外侧麻木是什么原因| 骨折一个月能恢复到什么程度| 子宫病变有什么症状| 6月4号是什么星座| 甲亢有些什么症状| 为什么会打呼| 欧米茄什么意思| cno什么意思| 沈阳有什么好玩的地方| 30年的婚姻是什么婚| tvb什么意思| 精液发红是什么原因| 胃息肉有什么危害| 小孩表演后卸妆用什么| pet-ct主要检查什么| 吃播为什么吃不胖| 瑶字五行属什么| 起床口苦是什么原因| 纯棉是什么面料| 粉玫瑰适合送什么人| 1026什么星座| 二氧化硅是什么晶体| 肺结节影是什么意思啊| 10086查话费发什么短信| 小孩子头发黄是什么原因| 阿米巴是什么意思| 血小板异常是什么原因| 排比句是什么意思| 脑ct都能查出什么病| 晚上8点到9点是什么时辰| 智障是什么意思| 灰飞烟灭是什么意思| 覆盖的意思是什么| 宝宝吐奶是什么原因| 伏案工作是什么意思| 卤牛肉用什么部位| 尿隐血是什么问题| 梦见小鬼是什么预兆| 左小腿麻木是什么原因| 5.13是什么星座| 春天可以干什么| 兰州市区有什么好玩的地方| 谷草转氨酶是指什么| 慢性浅表性胃炎吃什么药好得快| cfa是什么证书| 祛斑去医院挂什么科| 判决书什么时候生效| 办护照需要什么材料| 小孩心肌炎有什么症状| 说话不清楚是什么原因导致的| yair是什么牌子的空调| 板栗不能和什么一起吃| 成都什么地方好玩| 刘字五行属什么| 查肝挂什么科| 什么卫什么海| 兔死狗烹什么意思| 寒窗是什么意思| 维他命是什么意思| 什么减肥药最安全| 师奶是什么意思| 凌厉是什么意思| 经期不能吃什么药| 便血是什么样的| 什么是漂洗| 1978年出生是什么命| 臭屁是什么意思| 六味地黄丸治什么| 含羞草为什么害羞| 免疫球蛋白是什么| 什么是民间故事| 什么东西比乌鸦更讨厌| 种什么药材最快又值钱| 艮宫代表什么| 湿气太重吃什么药最好| 木舌是什么字| 口五行属什么| eb病毒iga抗体阳性是什么意思| 517是什么意思| 多巴胺是什么药| 老年人吃什么奶粉好| 回笼觉是什么意思| 血液为什么是红色| 财神位放什么最旺财| 吃维生素b6有什么好处和副作用| 幻肢是什么| 蜂蜡是什么| 台风是什么| 新房送什么礼物好| 止鼾什么方法最有效| 6424什么意思| 早上五点半是什么时辰| 屁特别多是什么原因| 内心os什么意思| 左肺纤维灶什么意思| 11月27日是什么星座| 猪血和鸭血有什么区别| 晒太阳补什么| 过敏打什么针| 葡萄什么季节成熟| 省公安厅副厅长是什么级别| 差是什么意思| 晋升是什么意思| 精神出轨什么意思| 刷牙时牙龈出血是什么原因| 大胯疼是什么原因引起| 六月初一什么日子| 闭经和绝经有什么区别| 文化底蕴是什么意思| 谷草转氨酶偏高是什么意思| 骨质增生吃什么药最好| 脾气虚吃什么中成药| 雪茄是什么| 尖嘴猴腮什么意思| 梦到喝酒是什么意思| 为什么蚊子总是咬我| 冬菜是什么菜| 肝气不足吃什么中成药| 福建人喜欢吃什么| 人流后什么时候来月经| 长沙开福寺求什么最灵| 子宫内膜增厚是什么原因引起的| 婴儿打嗝是什么原因| 跌倒摔伤用什么药| kcl是什么药| t是什么意思| 月经期间可以吃什么水果| 排骨和什么菜搭配最好| 卵子排出体外是什么样子| 出栏是什么意思| 舌炎是什么原因引起的怎样治疗| 梵克雅宝为什么那么贵| 双开什么意思| 王大锤真名叫什么| 让平是什么意思| 羟丁酸脱氢酶高是什么原因| 榴莲壳有什么作用| 十月一日什么星座| 72年是什么年| 西芹和芹菜有什么区别| 肝肾阴虚吃什么药| 大豆指的是什么豆| 抗链球菌溶血素o偏高是什么原因| 前列腺穿刺是什么意思| 流鼻血是什么引起的| 咳嗽吃什么| 基围虾不能和什么一起吃| 降钙素原高是什么原因| 凤毛麟角是什么意思| 赵本山什么时候死的| 什么水果糖分最高| 宫腔内囊性结构是什么意思| 秘诀是什么意思| 肺阴不足的症状是什么| 什么是梅花肉| 承上启下是什么意思| 避孕套长什么样| 什么颜色属火| 喉咙发炎是什么症状| 晚上九点多是什么时辰| 红斑是什么皮肤病| 什么是宫刑| 为什么会发生地震| 鲑鱼是什么鱼| 肺挂什么科| 1943年属羊的是什么命| 黄金茶属于什么茶| 辛酉日五行属什么| 释迦牟尼是什么意思| 梦见被追杀是什么预兆| 2月12日什么星座| 1973年是什么命| 没胃口吃什么| 强字五行属什么| 什么是梨形身材| 美国的国歌是什么| 宫颈炎用什么药物治疗比较好| 芹菜什么时候种植| 百度

新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 关于uC/OS-II中优先级翻转问题

什么是辐照食品

作者: 时间:2025-08-05 来源:网络 收藏
百度 不过今年,这样的情况有了明显改变,不仅提示食物补给站的指示牌做得更大更明显了,可供选择的食物、饮料范围也变得更大了,至于价格,则和便利店的售价相差无几,可算是实惠又亲民的一个小改变。

引 言

1 的运行机制

  在嵌入式系统的应用中,实时性是一个重要的指标,而是影响系统实时性的重要。本文着重分析的产生和影响,以及在中的解决方案。

  采用基于固定级的占先式调度方式,是一个实时、多任务的操作系统。系统中的每个任务具有一个任务控制快OS_TCB,任务控制块记录任务执行的环境,包括任务的优先级,任务的堆栈指针,任务的相关事件控制块指针等。内核将系统中处于就绪态的任务在就绪表(ready list)进行标注,通过就绪表中的两个变量OSRdyGrp和OSRdyTbl[]可快速查找系统中就绪的任务。在uC/OS-II中每个任务有唯一的优先级,因此任务的优先级也是任务的唯一编号(ID),可以作为任务的唯一标识。内核可用控制块优先级表OSTCBPrioTbl[]由任务的优先级查到任务控制块的地址。uC/OS-II主要就是利用任务控制快OS_TCB、就绪表(ready list)和控制块优先级表OSTCBPrioTbl[]来进行任务调度的。任务调度程序OSSched()首先由就绪表(ready list)中找到当前系统中处于就绪态的优先级最高的任务,然后根据其优先级由控制块优先级表OSTCBPrioTbl[]取得相应任务控制块的地址,由OS_TASK_SW()程序进行运行环境的切换。将当前运行环境切换成该任务的运行环境,则该任务由就绪态转为运行态。当这个任务运行完毕或因其它原因挂起时,任务调度程序OSSched()再次到就绪表(ready list)中寻找当前系统中处于就绪态中优先级最高的任务,转而执行该任务,如此完成任务调度。若在任务运行时发生中断,则转向执行中断程序,执行完毕后不是简单的返回中断调用处,而是由OSIntExit()程序进行任务调度,执行当前系统中优先级最高的就绪态任务。当系统中所有任务都执行完毕时,任务调度程序OSSched()就不断执行优先级最低的空闲任务OSTaskIdle(),等待用户程序的运行。

2 uC/OS-II中的优先级

  在uC/OS-II中,多个任务按照优先级高低由内核调度执行,而且任务调度所花的时间是常数,与应用程序中建立的任务数无关。对于占先式内核,任务的响应时间是确定的,而且是最优化的,占先式内核保证最高优先级的任务最先执行。

  任务的响应时间=寻找最高优先级任务的时间+任务切换时间
  
  在uC/OS-II中寻找进入就绪态的最高优先级任务是通过查就绪表实现的,这减少了所需时间。
y=OSUnMapTbl[OSRdyGrp];
x= OSUnMapTbl [OSRdyTbl[y]];
prio=(y3)+x;

  任务切换是通过调用汇编函数OS_TASK_SW()来实现的,主要完成两个任务运行环境的保存和恢复。因此用户可以通过安排任务的优先级,保证系统的实时性。当涉及到共享资源的互斥访问时,多任务实时操作系统常常会出现优先级翻转问题(priority inversion),不能保证高优先级任务的响应时间,影响系统的实时性,uC/OS-II中也存在同样问题。所谓优先级翻转问题(priority inversion)即当一个高优先级任务通过信号量机制访问共享资源时,该信号量已被一低优先级任务占有,而这个低优先级任务在访问共享资源时可能又被其它一些中等优先级的任务抢先,因此造成高优先级任务被许多具有较低优先级的任务阻塞,实时性难以得到保证。例如:有优先级为A、B和C的三个任务,优先级A>B>C,任务A,B处于挂起状态,等待某一事件的发生,任务C正在运行,此时任务C开始使用某一共享资源S。在使用中,任务A等待的事件到来,任务A转为就绪态,因为它比任务C优先级高,所以立即执行。当任务A要使用共享资源S时,由于其正在被任务C使用,因此任务A被挂起,任务C开始运行。如果此时任务B等待的事件到来,则任务B转为就绪态。由于任务B的优先级比任务C高,因此任务B开始运行,直到其运行完毕,任务C才开始运行。直到任务C释放共享资源S后,任务A才得以执行。在这种情况下,优先级发生了翻转,任务B先于任务A运行。这样便不能保证高优先级任务的响应时间,解决优先级翻转问题有优先级天花板(priority ceiling)和优先级继承(priority inheritance)两种办法。

  优先级天花板是当任务申请某资源时,把该任务的优先级提升到可访问这个资源的所有任务中的最高优先级,这个优先级称为该资源的优先级天花板。这种方法简单易行,不必进行复杂的判断,不管任务是否阻塞了高优先级任务的运行,只要任务访问共享资源都会提升任务的优先级。在uC/OS-II中,可以通过OSTaskChangePrio()改变任务的优先级,但是改变任务的优先级是很花时间的。如果不发生优先级翻转而提升了任务的优先级,释放资源后又改回原优先级,则无形中浪费了许多CPU时间,也影响了系统的实时性。

  优先级继承是当任务A申请共享资源S时,如果S正在被任务C使用,通过比较任务C与自身的优先级,如发现任务C的优先级小于自身的优先级,则将任务C的优先级提升到自身的优先级,任务C释放资源S后,再恢复任务C的原优先级。这种方法只在占有资源的低优先级任务阻塞了高优先级任务时才动态的改变任务的优先级,如果过程较复杂,则需要进行判断。uC/OS-II不支持优先级继承,而且其以任务的优先级作为任务标识,每个优先级只能有一个任务,因此,不适宜在应用程序中使用优先级继承。

3 uC/OS-II中优先级翻转问题的解决

  在uC/OS-II中,为解决优先级翻转影响任务实时性的问题,可以借鉴优先级继承的方法对优先级天花板方法进行改进。对uC/OS-II的使用,共享资源任务的优先级不是全部提升,而是先判断再决定是否提升。即当有任务A申请共享资源S时,首先判断是否有别的的任务正在占用资源S,若无,则任务A继续执行,若有,假设为任务B正在使用该资源,则判断任务B的优先级是否低于任务A,若高于任务A,则任务A挂起,等待任务B释放该资源,如果任务B的优先级低于任务A,则提升任务B的优先级到该资源的优先级天花板,当任务B释放资源后,再恢复到原优先级。在uC/OS-II中,每个共享资源都可看作一个事件,每个事件都有相应的事件控制块ECB。在ECB中包含一个等待本事件的等待任务列表,该列表包括OSEventTbl[]和OSEventGrp两个域,通过对等待任务列表的判断可以很容易的确定是否有多个任务在等待该资源,同时也可判断任务的优先级与当前任务优先级的高低,从而决定是否需要用OSTaskChangePio()来改变任务的优先级。这样,仅在优先级有可能发生翻转的情况下才改变任务的优先级,而且利用事件的等待任务列表进行判断,比用OSTaskChangePio()来改变任务的优先级速度快,并占用较少的CPU时间,有利于系统实时性的提高。

  总之,优先级翻转问题是多任务实时操作系统普遍存在的问题,这个问题也存在于uC/OS-II中。通过在应用程序中进行简单的判断,在可能出现优先级翻转的情况下动态的改变任务的优先级,可以有效地避免任务的优先级翻转,保证高优先级任务的执行,提高了系统的实时性。

------------

μC/OS-II系列软件版权的说明

Micrium 公司产品包括μC/OS-II,μC/GUI,uC/FS,μC/TCP-IP,μC/USB等。Micrium 公司提供嵌入式系统应用方面的产品,并对其软件拥有知识产权。Micrium花费了大量的时间和财力为嵌入式领域提供高质量的软件产品。所有上述产品都以源代码的形式提供给客户,具有极大的适用性。产品不是免费软件,也不是开放源码的软件,因此,不能免费使用,需要清楚的阐明μC/OS-II和系列的软件不是开放源码的免费软件,这是和Linux完全不一样的。

开发和研究者可以通过购买Micrium公司的Jean先生的μC/OS-II的书籍,而得到μC/OS-II源代码,但是仅可以作为个人和学校学习使用,所有和μC/OS-II直接和间接相关的商业目的行为,必须购买使用μC/OS-II及系列产品的商业授权,包括芯片/单板/系统厂家的任何参考设计,教学设备和最终的产品,如果没有得到Micrium公司Jean先生签字的合法授权都是不合法的使用, 这在μC/OS-II的书籍Micrium公司(www.micrium.com)和中国代理商-北京麦克泰软件公司网站(www.bmrtech.com)上面中有明确规定。

Micrium公司其它软件如μC/GUI,μC/FS,μC/TCP-IP,μC/USB 等的销售模式与μC/OS-II不同,如果没有购买使用授权,完全不可以拥有该源代码,也不能将源代码用于产品的设计,培训,教学和生产。

μC/OS-II, μC/GUI,μC/FS,μC/TCP-IP,μC/USB 等授权方式有:单个产品、产品线(系列)、按照CPU 划分的产品三种形式,μC/OS-KA,μC/OS-VIEW 等工具是按照使用人的数目收取费用的,相对起传统的RTOS 动辄2-3万美圆的开发费用和每块单板的使用费(根据数量从数百到几个美圆),μC/OS-II及系列产品是采用一次性的收费方式,应该只是大约相当于传统RTOS 的10-20% 的总体费用。

如果您正在将μC/OS-II系列软件用于您的产品,您需要购买并获得正式使用授权。

北京麦克泰软件技术有限公司

tcp/ip相关文章:tcp/ip是什么




评论


相关推荐

技术专区

关闭
两女一杯是什么 双十一从什么时候开始 别字是什么意思 精斑是什么 腌肉放什么调料
容易口腔溃疡什么原因 儿童枕头用什么枕芯好 纳采是什么意思 鸭蛋不能和什么一起吃 车前草长什么样
吃完避孕药不能吃什么东西 钼靶检查是什么意思 齐天大圣是什么意思 胃溃疡是什么意思 金瓶梅是什么
什么是调剂 18年是什么年 椎间盘突出挂什么科 马不停蹄是什么生肖 中元节是什么时候
就不告诉你就不告诉你是什么儿歌hcv7jop7ns4r.cn 月经来了不能吃什么东西hcv9jop1ns7r.cn 什么是透析hcv8jop4ns0r.cn 424是什么意思hcv9jop0ns2r.cn 猫可以看到什么颜色hcv7jop6ns0r.cn
鱼刺卡喉咙去医院挂什么科hcv8jop7ns5r.cn 脚臭是什么原因引起的tiangongnft.com 哮喘是什么症状hcv8jop6ns6r.cn 四联用药是些什么药hcv9jop1ns2r.cn 梦见吃米饭是什么意思hcv9jop8ns0r.cn
鸡子是什么hcv9jop1ns6r.cn 女性吃什么降低雄激素hcv9jop2ns4r.cn 大什么一什么cl108k.com 南宁晚上有什么好玩的地方hcv8jop9ns9r.cn 部队大校是什么级别hcv7jop6ns7r.cn
什么可以美白hcv8jop9ns0r.cn 子宫内膜薄有什么危害hcv9jop3ns5r.cn 阴道干涩用什么药hcv8jop9ns3r.cn 国二是什么意思hcv9jop2ns6r.cn 表水是什么意思hcv8jop5ns7r.cn
百度