嵌入式实验二.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式实验二 嵌入式实验二 PAGE PAGE 7 嵌入式实验二 嵌入式实验报告二 实验二 优先级反转 姓名:陈秀容 班级:08通信(1)班 学号:1 1. 实验目的 掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理。 实验设计 优先级反转原理 优先级反转发生在有多个任务需要使用共享资源的情况下,可能会出现高优先级任务被低优先级任务阻塞,并等待低优先级任务执行的现象。高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务,这种现象就被称为优先级反转。两个任务都试图访问共享资源是出现优先级反转最通常的情况。为了保证一致性,这种访问应该是顺序进行的。如果高优先级任务首先访问共享资源,则会保持共享资源访问的合适的任务优先级顺序;但如果是低优先级任务首先获得共享资源的访问,然后高优先级任务请求对共享资源的访问,则高优先级任务被阻塞,直到低优先级任务完成对共享资源的访问。 设计要点 1)设计了3 个应用任务TA0~TA2,其优先级逐渐降低,任务 TA0的优先级最高。 2)除任务 TA1外,其它应用任务都要使用同一种资源,该资源必须被互斥使用。为此,创建一个二值信号量 mutex 来模拟该资源。虽然μC/OS-Ⅱ在创建信号量时可以选择采用防止优先级反转的策略,但在本实验中我们不使用这种策略。 3)应用任务的执行情况如图 2-1 所示: 注意:图中的栅格并不代表严格的时间刻度,而仅仅表现各个任务启动和执行的相对先后关系。 系统的运行流程 1) 系统初始化,之后进入 main 函数; 2) 在 main 函数中,首先创建一个二值的信号量 mutex; 3) 在 main 函数中创建 TaskStart 任务,由 TaskStart 任务创建所有的应用任务(TA0、TA1、TA2)。优先级较高的任务 TA0、TA1 先延时若干个时钟节拍,以便低优先级任务TA2 运行。 4) t1 时刻,任务 TA2运行并首先申请到信号量 mutex; 5) t2 时刻,任务 TA1 延时到期,任务 TA1 的优先级高于任务 TA2 的优先级,因此任务 TA1立刻抢占TA2执行,任务 TA2由执行态转为就绪态; 6) t3 时刻,任务 TA0 延时到期,任务 TA0 的优先级高于任务 TA1 的优先级,所以任务 TA0 立刻抢占执行,任务 TA1 由执行态转为就绪态,任务 TA0 申请二值信号量mutex 被阻赛; 7) t4 时刻,任务TA1 由就绪态转回为执行态;此时 TA0 在等待TA2 保持的 mutex , 而TA2 又因为优先级低于 TA1 被阻塞。如果 TA1 一直执行而 TA2 没有机会被调度的话,那么 TA2 将一直等到 TA1 执行完后才能执行,而 TA0 更要等到 TA2 释放它所占有的信号量资源后才能执行,这样就出现了优先级高的 TA0任务等待优先级低的TA1 任务的现象; 8) t5 时刻,任务 TA1 挂起自己,而 TA0 又因为申请二值信号量 mutex 而处于阻塞状态,所以任务TA2 由就绪态转为执行态,任务 TA2释放信号量 mutex; 9) t6 时刻,TA0获得信号量并立刻抢占执行,任务TA2 由执行态转为就绪态; 10) t7 时刻,任务TA0 将自己延时一段时间,而TA1仍然处于挂起状态,TA2是当前最 高优先级的就绪任务,它又转为执行状态,任务TA2 因申请二值信号量 mutex 而阻塞; 11) t8 时刻,任务 TA1延时到期转为执行态,任务 TA1又因等待一个事件而阻塞; 12) t9 时刻,任务 TA0 延时到,释放二值信号量 mutex,mutex 被 TA2 得到后,内核自动切换任务; 13) t10 时刻,在就绪队列中,TA0 优先级最高,TA0 执行,又因为任务 TA0 等待一事件而阻塞; 14) t11 时刻,任务 TA1 延时到期,立刻抢占执行,又由于任务 TA1等待一事件而阻塞;; 15) t12 时刻,任务 TA2执行,保持信号量 mutex;以后系统再次出现优先级反转现象; 16) 系统如此周而复始地运行…… .进行操作系统配置 目的在于根据应用的需要,对操作系统的功能和规模进行设置,以便优化对系统存储空间的使用。配置的方法为修改μC/OS-Ⅱ源代码目录中的 文件. 3. 程序清单 #include /******************************************* 定义部分 ************************************************/ #define TASK_STK_SIZE 512

文档评论(0)

187****2393 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档