广告招募

当前位置:全球工厂网 > 技术中心 > 所有分类

嵌入式系统优先级反转问题分析

2023年09月06日 09:31:40      来源:广州市克鲁兹电子科技有限公司 >> 进入该公司展台      阅读量:11

分享:

优先级反转发生在一个高优先级的任务被迫等待一段不确定时间,等待一个低优先级任务先完成。图1中3个任务分别为task1、task2和task3,其优先级由高到低。从图1可知,当task3占有由信号量(semaphore)保护的某种共享资源而进入临界区执行时,task1就绪,由于系统可抢占式PBP(Priority Based Preemptive)调度策略,因此task1抢占task3执行。task1执行一段时间后也进入临界区,但此时task3仍占有此临界资源的信号量,task1被阻塞,等待task3释放此信号量。在经过这么一段时间后,task2已处于就绪状态,于是系统调度task2执行。如果task3在task2的执行期间一直没有能够被调度执行的话,那task1和task3将一直等到task2执行完后才能执行,task1更要等到task3释放它所占有的信号量才能执行;如果这段时间超出task1的Deadline,task1的调度出现了问题,此时轻则任务被长时间阻塞,重则造成系统崩溃。优先级反转原因可归纳为:高优先级的任务task1由于要等待被低优先级任务task3占有的临界资源而被task2阻塞,而此时具有中优先级的任务task2抢占了task3的CPU时间,导致task2先于task1执行。此类优先级反转问题的解决方法大致有2种:一种被称作优先级继承(priority inheritance);另一种被称作优先级极限(priority ceilings)。下面介绍本文所遇到的优先级反转问题。  
版权与免责声明:
1.凡本网注明"来源:全球工厂网"的所有作品,版权均属于兴旺宝装备总站,转载请必须注明兴旺宝装备总站。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。