如何使用优先级天花板协议优先级解决任务阻塞

通知公告动态|电子科技大学信息与软件工程学院廖勇副教授赴法国出访前公示
语言Language
通知公告与动态
电子科技大学信息与软件工程学院廖勇副教授赴法国出访前公示
&&&&&&&&&&&&&&&&&&&&&&&&&& 自组团出访前公示信息表组团单位:电子科技大学信息与软件工程学院&联系人: 谢梦雅电& 话:公示地址:学院网站公示时间(起止日期):年月日日&&团组人员名单姓名单位职务上次出访时间廖勇信息与软件工程学院副教授<span style="font-size:16font-family:仿宋_GB.11.28-预计出访时间(起止日期):<span style="font-size:16font-family:仿宋_GB.7.1-&出访国家(地区):法国在外天数:经费来源:法国&预算金额(元/每人):&0邀请单位简介:法国鲁昂电力电子工程师学院ESIGELEC,有一百多年历史。位于诺曼底省会ROUEN市,在法国工程教育排名14,其电子信息技术在法国工程教育届名列前茅。&&往返路线:成都上海巴黎巴黎上海成都&出访任务(不少于300字)&受学校、学校国际合作与交流处、信息与软件工程学院派遣及法国鲁昂高等电力工程师学院()的邀请,此次赴法国鲁昂高等电力工程师学院讲授《嵌入式系统与实时》(《》),并开展学生培养模式的交流,日期为:至,共计课时为节。具体内容包括:嵌入式系统基本概念、相关原理、实时操作系统实时性保证机制与策略、实时调度算法、任务通信、同步、互斥、中断、内存管理、时钟等机制、嵌入式实时系统软硬件设法方法及流程,此外,还组织相关的实验并进行实验指导,具体包括:指导学生搭建嵌入式交叉开发环境、明确实验目的和实验内容、嵌入式操作系统任务调度、基于的流水灯实验、优先级反转实验、优先级继承协议实验、优先级天花板协议实验、任务通信、同步、互斥实验、避障小车控制系统。此次赴法授课可促进电子科技大学本科及研究生教学的国际化,把电子科技大学的教学理念、教学方式应用在欧美高校的教学中,同时借鉴欧美发达国家高等高等教育的教学和培养理念、培养方式,尤其是借鉴欧洲工程教育的培养模式和方法。此外,此次还将与探讨学生交换、实习实训、校企联合培养等合作事宜,进一步促进双方的深度合作。&拟拜会的机构人员&ESIGELEC & 外事办负责人cecilia Brunel.嵌入式系主任ahmedali sofiane&拟洽谈推动的项目&&应邀授课,嵌入式实时操作系统。另外洽谈双方学生交换及实习合作。&拟签署的协议合同&&无&拟调研考察的内容&学校实验室,工程教育培养实施情况,学生实验室。备注事项:&团长审核签字:单位监督电话:<span style="font-size:16font-family:仿宋_GB830672任务审批监督电话:<span style="font-size:16font-family:仿宋_GB830675公示情况:该团公示期满后有/无异议(此栏公示完成后再填写)
中国,四川省成都市成华区
建设北路二段4号 电子科技大学信息与软件工程学院楼
邮编: 610054C语言笔试三题目-笔试题目-论文联盟
您好,游客
背景颜色:
C语言笔试三题目
来源:论文联盟&
C笔试三题目
1. 为何会出现优先级反转,如何解决?
答:高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象叫做优先级反转。两种经典的防止反转的方法:
优先级继承策略(Priority inheritance):继承现有被阻塞任务的最高优先级作为其优先级,任务退出临界区,恢复初始优先级。
优先级天花板策略(Priority clings):优先级天花板是指将(占有)某资源的任务的优先级提升到可能访问该资源的所有任务中最高优先级任务的优先级(这个优先级称为该资源的优先级天花板)。
优先级继承策略对任务执行流程的影响相对较小,因为只有当高优先级任务申请已被低优先级任务占有的临界资源这一事实发生时,才抬升低优先级任务的优先级。而天花板策略是谁占有就直接升到最高。
2. winsock建立连接的实现步骤。
服务器端:socket()建立套接字,绑定bind()并监听listen(),用accept()等待客户端连接. 客户端:socket()建立套接字,连接connect()服务器,连接上后使用send()和recv(),在套接字上读写数据,直至数据交换完毕,closesocket()关闭套按字.
服务器端:accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接.该新产生的套接字使用send()和recv()读写数据,直至数据交换完毕,closesocket()关闭套接字.
3.请问什么叫中断源,中断请求,中断标志字,中断屏蔽字,中断响应,中断服务程序,中断嵌套?
中断:处理器一种状态的描本文由联盟收集整理述,因为处理器与很多外部电路相连并负责处理外部电路送来的各种信息(处在协同工作状态),如果遇有(外部电路送来)&急件&需要优先处理,处理器则须先停下&自己手头的工作&先去处理&急件&,这种先停下&自己手头的工作& 去处理&急件&的过程,即为&&中断。
中断源:即发出&急件&的地点(电路)。
中断请求:&紧急事件&须向处理器提出申请(发一个电脉冲信号),要求&中断&,即要求处理器先停下&自己手头的工作&先去处理&我的急件&,这一&申请&过程,称&&中断请求。
中断标志字:处理器内部有一个寄存器,该寄存器存放的&二进制信息&是专门用来描述中断状态的(即:记载是否已经发生了中断),这组&二进制信息&被称为中断标志字。
中断屏蔽字:是描述&中断屏蔽&状态的一组&二进制信息&。
中断响应:处理器接受&中断请求&并&同意&中断的过程(这时须把&当前现场&的状态信息压入堆栈),称&&中断响应。
中断服务程序:处理器处理&急件&,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理&急件&的程序被称为&&中断服务程序。
中断嵌套:一个中断可以被另一个更急的&急件&所中断。也就是处理器正在执行着中断,又接受了更急的另一件&急件&,这种&急件&&加塞&的过程被称为&&中断嵌套。
欢迎浏览更多 →
相关文章 & & &
本栏目最新更新文章
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
内容分类导航在μC/OS-II上实现优先级天花板
&&没有公告
&|&&|&&|&&|&&|&&|&&|&
您现在的位置:&&>>&&>>&&>>&正文
在μC/OS-II上实现优先级天花板
&&&&&&&&&&
【字体: 】
在μC/OS-II上实现优先级天花板
作者:佚名&&&&文章来源:&&&&点击数:&&&&更新时间:&&&&
  μC/OS-II是源码公开的嵌入式实时操作系统内核,可用于8位、16位、32位嵌入式微处理器或DSP。μC/OS-II可以管理64个任务,各任务有自己单独的栈,采用基于剥夺的优先级调度策略,绝大多数服务的执行时间具有确定性。μC/OS-II自1992年问世以来已被成功地应用于各种系统,并且现在其安全性和稳定性已通过美国FAA认证。
μC/OSII使用优先级继承来管理共享资源,它能通过防止不受控制的优先级反转,来保障没有任务被无限制地阻塞。但是优先级继承不能阻止死锁的发生,并且它没有把任务的阻塞时间降到最低。事实上,当一个任务请求v个资源、并且和k个低优先级的任务发生竞争时,在最坏的情况下它有可能被阻塞min(v,k)\[1\]。这种不确定性限制了μC/OSII在一些既需要在多任务条件下使用共享资源,又要求有很高实时性能的系统上的应用。本文将在μC/OSII 2.52中引入一种新的资源互斥协议――优先级天花板协议,并通过分析此协议的特点和μC/OSII的任务调度特点,使该协议在μC/OSII上得以实现,从而解决上述问题。1优先级天花板协议优先级天花板协议改进了优先级继承协议,它不仅能够防止死锁的发生,还进一步减少了任务的阻塞时间。当用优先级天花板协议控制资源的使用时,一个高优先级的任务最多被低优先级任务阻塞一次,阻塞时间最长等于比它优先级低的任务的临界区的最长执行时间,即max(e1 ,e2,ei,…),其中ei是第i个任务临界区的执行时间\[1\]。优先级天花板协议的调度规则和资源分配规则如下。(1) 调度规则① 当任务不占有任何资源时,运行在原来的优先级上。相同优先级的任务基于FIFO规则调度。② 每个占有资源的任务的优先级等于它所占有的所有资源的天花板优先级中最高的那个优先级(资源的天花板优先级等于所有将要使用它的任务中优先级最高的那个任务的优先级)。(2) 分配规则任务不管什么时候请求资源都可以得到满足。优先级天花板的本质是让占有资源的任务尽快执行完,并释放资源,从而使与其竞争资源的高优先级任务尽快地得到执行,并通过良好定义的调度规则使任务不会交错占有资源而形成环路等待,从而保证死锁不会发生[1]。2优先级天花板协议在μC/OSII上实现优先级天花板协议中,资源的优先级是根据任务的优先级来定义的,这其中隐含了两个假设,需要在μC/OSII的实现中得到满足。首先,任务对资源的需求必须是事先知道的;其次,任务的优先级必须是固定的。同时,μC/OSII不允许不同任务有相同的优先级,这就要求对优先级天花板协议做出修改。需要增加四个API来实现协议的创建和删除,并使用该协议对共享资源进行申请和释放。这四个API分别为OSPriCeilingCreate()、OSPriCeilingDel()、OSPriCeilingPend()、OSPriCeilingPost( )。2.1修改优先级天花板协议μC/OSII不允许任务有相同的优先级,所以也就不存在相同优先级的任务有基于FIFO规则调度的问题。优先级天花板协议对资源的天花板优先级的定义是:资源的天花板优先级等于所有将要使用它的任务中优先级最高的那个任务的优先级。从上面的调度规则可知,当一个任务占有资源时,会继承此资源的天花板优先级,可能出现两个任务具有相同优先级的情况,这是μC/OSII所不允许的。我们可以保留一个略高于所有使用此资源的任务优先级的优先级作为此资源的天花板优先级,把这个优先级称作PCP(Priority Ceiling Priority)。例如,有T1、T2、 T3三个任务,T1不使用任何资源,T2、T3都需要使用资源R1,三个任务的优先级从高到低分别为11,13,15,那么我们可以保留12(略高于T2的优先级13)作为R1的PCP。这样的修改既满足了μC/OSII对任务优先级的限制,又不会改变优先级天花板的正确语义。修改后的优先级天花板协议的规则如下。(1) 调度规则① 当任务不占有任何资源时,运行在原来的优先级上。② 每个占有资源的任务的优先级等于它所占有的所有资源的天花板优先级中最高的那个优先级。资源的天花板优先级等于PCP。(2) 分配规则任务不管什么时候请求资源都可以得到满足。2.2事件控制块的设计和任务控制块的修改一个事件控制块(ECB)代表一个被多个任务共享的资源,μC/OSII内核通过事件控制块管理共享资源。内核需要通过事件控制块知道资源当前正在被哪个任务占有,所以在事件控制块中用一个8位无符号数来记录正在使用资源的任务ID;并且因为在μC/OSII中任务的优先级就是任务的ID,所以在任务释放资源时,这个数据还可以用来还原任务原先的优先级。这样可以在每个事件控制块中节约一个字节的空间,这对于一些内存很小的嵌入式系统来说是重要的。同样的原理用于事件控制块指针,它在资源空闲时将事件控制块链接成线性链表,在资源被分配给任务时用于保存此任务先前的事件控制块(这种机制支持了资源的嵌套使用,即任务先后申请不同的多个资源,然后以相反的顺序释放),如图1所示。μC/OSII最多允许64个任务优先级,所以在事件控制块中用一个8位无符号数表示资源的天花板优先级就足够了。从协议的分配规则可知,任务不会因为请求资源而被阻塞,所以优先级天花板协议的事件控制块不需要像其他事件控制块一样设置等待队列。优先级天花板协议事件控制块结构在系统启动时初始化成单向线性空闲链表。示例代码如下:typedef structos_priceiling_event{INT8UOSEventPCP;/*资源的PCP */INT8UOSEventP/*保存任务的优先级*/structos_priceiling_event *OSEventP/*空闲时,指向链表中下一个事件控制块的指针,工作时用于保存任务先前的事件控制块*/} OS_PRICEILING_EVENT;如前所述,μC/OSII内核通过事件控制块管理共享资源,所以需要在任务控制块(TCB)中增加一个指向当前正在被任务使用的优先级天花板事件控制块的指针OSTCBCeilEventPtr,任务通过这个指针操纵当前的事件控制块。在多个资源被分配给一个任务后,事件控制块结构中的OSEventPtr指针和TCB中的OSTCBCeilEventPtr指针将形成一条事件控制块链,链头即为OSTCBCeilEventPtr,如图1所示。示例代码如下所示:#if OS_PRIORITYCEILING_EN & 0/*如果不使用优先级天花板,则定义PRIORITYCEILING_EN小于等于0以减少每个TCB所占内存*/OS_PRICEILING_EVENT * OSTCBCeilEventP#endif2.3用OSPriCeilingCreate()函数创建协议任务要想使用优先级天花板协议管理共享资源的使用,必须先使用OSPriCeilingCreate()函数创建它。OSPriCeilingCreate()从空闲事件链表中摘下一个事件控制块结构,并将此结构中的OSEventPCP初始化成用户指定的PCP,并返回事件控制块指针给任务。如前所述,优先级天花板协议假设任务对资源的请求是预先知道的,所以必须通过函数参数指定PCP。2.4用OSPriCeilingDel()函数删除协议OSPriCeilingDel()函数中要实现的主要操作就是删除一个优先级天花板协议的实例,并回收事件控制块到空闲链表中。这个功能为任务提供一定方便的同时也带来了一定的危险性,因为多任务可能试图使用一个已经删除了的天花板协议,因此在使用时应该格外小心。2.5用OSPriCeilingPend()函数申请资源OSPriCeilingPend()和OSPriCeilingPost()是实现优先级天花板协议最核心的两个函数。优先级天花板协议的调度规则和分配规则都在这两个函数中实现。当任务需要使用一个临界资源时,通过OSPriCeilingPend()函数申请该资源。它首先根据事件控制块指针取得资源的PCP,并将它和当前任务的优先级相比。如果任务的优先级比PCP低,那么根据优先级天花板协议的调度规则,要更新任务的优先级,使它等于PCP,并将当前事件控制块插入到由TCB中的OSTCBCeilEventPtr指向的事件控制块链表的前面。在更新任务的优先级之前,需要先保存任务原来的优先级,使得当任务释放此资源时可以回到取得此资源之前的优先级。接着要根据当前继承的优先级来重新计算任务控制块中的OSTCBY、OSTCBBitY、OSTCBX和OSTCBBitX四个数据域,这四个数据在进行任务调度时,快速地从就绪任务表中找出最高优先级的任务。我们还需要在任务当前的优先级下从就绪表中删除该任务,并在新的优先级下将该任务插入到就绪表中,这是确保优先级天花板协议调度语义正确性的关键。这样做之后,该任务就不会再被较高优先级并且使用此资源的任务抢占而使互斥失败,因为在继承了此资源的PCP后,该任务就是所有使用此资源的任务中优先级最高的任务了。以上所有操作所涉及的TCB、ECB等数据结构都是内核全局变量,其本身就是一种共享资源,如果一个任务没有完成对它们的全部操作之前就被剥夺执行权,那么这些数据结构就将处于不可预知的状态,引起系统崩溃。所以以上所有的操作都必须在中断关闭的情况下进行,也就是此时不允许任务调度。假设某个优先级为15的任务T1,先后通过OSPriCeilingPend()申请到了共享资源R1(PCP为14)和R2(PCP为12),则此时T1的任务控制块和R1、R2的事件控制块的关系如图1所示。图1T1申请到R1、R2后TCB和ECB结构示意图2.6释放资源――OSPriCeilingPost()函数的实现任务通过OSPriCeilingPost()释放已取得的临界资源。此函数基本上执行和OSPriCeilingPend()函数相反的操作。如果任务的当前优先级等于此资源的PCP时,说明该任务的优先级是从这个资源继承而来的,此时任务需要回到原来的优先级,并在当前优先级下从任务就绪表中删除,在新的优先级下插入任务就绪表。这些操作也必须在关闭中断的情况下进行。这个函数和OSPriCeilingPend()函数最大的不同是它在最后需要进行一次调度,使高优先级的任务有机会得到处理器时间。2.7需要修改的其他μC/OSII内核函数如前所述,优先级天花板协议假设任务的优先级是固定的。但是μC/OSII允许任务调用OSTaskChangePrio()来改变自己或其他任务的优先级,所以需要修改此函数,使其能够判断用户是否在内核配置文件OS_CFG.H声明了要使用优先级天花板协议。如果条件成立,就阻止其改变优先级并返回错误信息。3小结优先级天花板协议不仅比优先级继承协议具有更小、更确定的高优先级任务阻塞时间,而且能够防止死锁的发生。通过在基于三星微处理器S3C44B0X(ARM7TDMI内核)的嵌入式开发板上对比优先级天花板协议和优先级继承协议,可以看到优先级天花板协议具有更快、更确定的时间性能。这些在一个实时嵌入式操作系统内核中都是至关重要的。但是在一个大型的复杂系统中,确定哪个任务是使用某个特定资源的所有任务中优先级最高的任务时,会有一些困难。在这种情况下,任务资源请求图可以为开发人员提供帮助。参考文献1Liu Jane W S.实时系统\[M\].北京:高等教育出版社,20022Labrosse Jean J.嵌入式实时操作系统μC/OSII \[M\]. 第2版. 北京:北京航空航天大学出版社,2003林游:硕士研究生,主要研究方向为嵌入式系统。韩志科:讲师,主要研究方向为嵌入式系统、计算机网络。
文章录入:admin&&&&责任编辑:admin&
上一篇文章: 下一篇文章:
【】【】【】【】【】
  网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
杭州晶控电子有限公司 版权所有 COPYRIGHT2003――2009 HANGZHOU KinCony ELECTRONICS CO.,LTD All rights reserved 站长:嵌入式RTOS优先级天花板协议研究--《计算机工程与设计》2009年08期
嵌入式RTOS优先级天花板协议研究
【摘要】:优先级天花板协议的研究是为了解决嵌入式实时操作系统中存在的死锁问题和优先级反转问题。通过对优先级天花板协议调度和资源分配规则的分析,从任务优先级管理和资源管理两部分详细阐述了在嵌入式实时操作系统上实现优先级天花板协议的方法,并对其失效情况做出了说明,最后给出了基于C/OS-Ⅱ的优先级天花板协议的测试原理。
【作者单位】:
【关键词】:
【分类号】:TP316.2【正文快照】:
0引言随着通信、电子、自动化等实时应用领域的发展,对多任务嵌入式实时操作系统(real-time operating system,RTOS)要求日益提高,其中如何实时有效的管理系统资源问题已成为嵌入式RTOS的一个重要研究内容[1]。当前大部分嵌入式RTOS内核,使用优先级继承来管理共享资源,优先级
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【参考文献】
中国期刊全文数据库
,韩志科;[J];单片机与嵌入式系统应用;2005年04期
杨静,戴华平;[J];计算机工程与应用;2005年07期
宋丰末;;[J];计算机工程与设计;2007年19期
【共引文献】
中国硕士学位论文全文数据库
刘华春;[D];华北电力大学(北京);2006年
陈帅;[D];苏州大学;2006年
孙萍;[D];重庆大学;2007年
张莉;[D];南京理工大学;2007年
刘成勋;[D];大连海事大学;2008年
【同被引文献】
中国期刊全文数据库
张胜茂,陈晓华;[J];工业控制计算机;2005年10期
葛仁北;[J];计算机工程与应用;2002年19期
杜旭,胥海鹏;[J];计算机工程;2005年10期
中国博士学位论文全文数据库
陈积明;[D];浙江大学;2005年
王涛;[D];哈尔滨工程大学;2006年
中国硕士学位论文全文数据库
杨增汪;[D];苏州大学;2005年
楼永红;[D];浙江大学;2006年
周晓中;[D];中南大学;2005年
李跃;[D];西南交通大学;2006年
陈帅;[D];苏州大学;2006年
周本海;[D];沈阳工业大学;2007年
【二级参考文献】
中国期刊全文数据库
郭长国,周明辉,王怀民,许勇;[J];计算机研究与发展;2002年12期
范律,丁伟,朱建林;[J];计算机工程与应用;2003年05期
厉海燕,赵志国;[J];计算机工程与设计;2005年06期
张谦,竹利平;[J];计算机工程与设计;2005年09期
韩志耕;王健;;[J];计算机工程与设计;2006年05期
【相似文献】
中国期刊全文数据库
宫彦磊;李允俊;;[J];信息技术;2010年06期
陈坤,陈志勇,黎湘;[J];电光与控制;2005年04期
蔡华,卞新高,史中权,丁坤;[J];工业控制计算机;2005年08期
梁勇,孟桥,刘铁英;[J];电测与仪表;2005年09期
马超;尹长青;;[J];电脑知识与技术(学术交流);2006年02期
王业罡;张健民;李允俊;;[J];延边大学学报(自然科学版);2007年01期
赖俊宇;李双庆;;[J];电脑知识与技术(学术交流);2007年03期
吴绍根;;[J];微计算机信息;2007年14期
李慧;;[J];金陵科技学院学报;2007年02期
李妍;;[J];计算机与信息技术;2007年06期
中国重要会议论文全文数据库
曹松;李慧军;惠平;;[A];中国空间科学学会空间探测专业委员会第十六次学术会议论文集(下)[C];2003年
中国重要报纸全文数据库
电子科技大学
王祎磊;[N];电子报;2004年
中国博士学位论文全文数据库
张杰;[D];华中科技大学;2009年
王涛;[D];哈尔滨工程大学;2006年
中国硕士学位论文全文数据库
付耀;[D];华中科技大学;2008年
尹江会;[D];山东大学;2005年
蒋文杰;[D];浙江大学;2006年
韩金燕;[D];太原理工大学;2007年
陈宝基;[D];山东大学;2005年
黄鹏;[D];武汉理工大学;2006年
刘俊;[D];武汉理工大学;2006年
李跃;[D];西南交通大学;2006年
余东东;[D];上海交通大学;2007年
吴勇英;[D];西北工业大学;2007年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号}

我要回帖

更多关于 优先级阻塞队列 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信