最新-嵌入式实时系统中的优先级反转问题 精品
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式实时系统中的优先级反转问题
摘要嵌入式实时系统中由于多任务共享资源,通常会出现一些奇怪的现象。
本文就什么是优先级反转及其产生原因进行分析,并提出2个行之有效的解决方案。
关键词嵌入式实时系统多任务信号量优先级反转
1问题的提出
目前,市场上占有率比较高的商业有、、、,、等。
这些为数众多的绝大多数都是多任务实时微内核的结构,采用的是基于优先级的可抢占式调度策略。
系统为每一个任务分配一个优先权,调度程序保证当前运行的进程是优先权最高的进程。
但是,有时候会出现一种比较奇怪的现象由于多进程共享资源,具有最高优先权的进程被低优先级进程阻塞,反而使具有中优先级的进程先于高优先级的进程执行,导致系统的崩溃。
这就是所谓的优先级反转。
2优先级反转
普遍具有2个特点实时性和多任务。
实时是指系统的响应时间必须在规定的时间内,超出这个时间限制将会使系统出现致命的错误;同时,实时性还要求对时间要求非常急迫的任务要先于对时间不是很紧急的任务执行。
正是由于这2个原因,的进程调度普遍采用的是基于优先级的可抢占式的调度策略。
多任务是嵌入式系统的内在要求。
如今的嵌入式系统普遍要求具有多任务并发执行的能力,因此中也必须提供多任务并发执行的支持。
由于多任务并发,必然会导致多个任务共享资源。
如有2个任务1和2并发执行,都需要向打印机输出结果。
由于只有1台打印机,所以在某个时间段内只能有1个任务,如1占有打印机并向打印机输出,而这时另一个任务2处于等待状态。