首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 常用文档 > 嵌入式实时系统中的优先级反转问题

嵌入式实时系统中的优先级反转问题

资料介绍
嵌入式系统论文

嵌入式实时系统中的优先级反转问题
摘要:嵌入式实时系统中由于多任务共享资源,通常会出现一些奇怪的现象。本文就什
么是优先级反转及其产生原因进行分析,并提出2个行之有效的解决方案。
    关键词:嵌入式实时系统 多任务 信号量 优先级反转
1 问题的提出
  目前,市场上占有率比较高的商业RTOS有VxWorks/PSOS、QNX、
LynxOS、VRTX,、Windows
CE等。这些为数众多的RTOS绝大多数都是多任务实时微内核的结构,采用的是基于优先
级的可抢占式调度策略。系统为每一个任务分配一个优先权,调度程序保证当前运行的
进程是优先权最高的进程。但是,有时候会出现一种比较奇怪的现象:由于多进程共享
资源,具有最高优先权的进程被低优先级进程阻塞,反而使具有中优先级的进程先于高
优先级的进程执行,导致系统的崩溃。这就是所谓的优先级反转(Priority
Inversion)。
2 优先级反转
  RTOS普遍具有2个特点:实时性和多任务。实时是指系统的响应时间必须在规定的时
间内,超出这个时间限制将会使系统出现致命的错误;同时,实时性还要求对时间要求
非常急迫的任务要先于对时间不是很紧急的任务执行。正是由于这2个原因,RTOS的进程
调度普遍采用的是基于优先级的可抢占式PBP(Priority Based
Preemptive)的调度策略。多任务是嵌入式系统的内在要求。如今的嵌入式系统普遍要
求具有多任务并发执行的能力,因此RTOS中也必须提供多任务并发执行的支持。由于多
任务并发,必然会导致多个任务共享资源。如有2个任务task1和task2并发执行,都需要
向打印机输出结果。由于只有1台打印机,所以在某个时间段内只能有1个任务,如task
1占有打印机并向打印机输出,而这时另一个任务task2处于等待状态。当task1输出完毕
后,task2由等待转为就绪,当
嵌入式实时系统中的优先级反转问题
本地下载

评论