操作系统_优先级反转、优先级继承

来源:互联网 发布:地理信息系统数据库 编辑:程序博客网 时间:2024/06/03 17:07

优先级反转:准确来说,指的是一种现象,并非一项任务调度技术,即高优先级任务被低优先级任务阻塞推迟的行为被称为“优先级反转”。这是一种不合理的行为方式,如果把这种行为再进一步放大,当高优先级任务正等待信号量(此信号量被一个低优先级任务拥有着)的时候,一个介于两个任务优先之间的中等优先级任务开始执行——这就会导致一个高优先级任务在等待一个低优先级任务,而低优先级任务却无法执行类似死锁的情形发生。

正常调度过程中滥用信号量可能会存在这种隐患,通常可以在设计阶段就通过规划好资源的访问方式避免出现这个问题。




为减小优先级反转带来的负面影响,有些操作系统(例如FreeRTOS)提供了一个基本的"优先级继承"机制。

优先级继承暂时地将互斥量持有者的优先级提升至所有等待此互斥量的任务所具有的最高优先级。持有互斥量的低优先级任务”继承”了等待互斥量的任务的优先级。互斥量持有者在归还互斥量时,优先级会自动设置为其原来的优先级。

0 0
原创粉丝点击