[发明专利]多任务操作系统中任务优先级反转的检测系统及方法有效
申请号: | 201310034828.4 | 申请日: | 2013-01-30 |
公开(公告)号: | CN103106111A | 公开(公告)日: | 2013-05-15 |
发明(设计)人: | 何三波;许锋 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 成都虹桥专利事务所(普通合伙) 51124 | 代理人: | 刘世平 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 任务 操作系统 优先级 反转 检测 系统 方法 | ||
技术领域
本发明涉及计算机多任务操作系统领域,特别涉及一种在基于任务优先级调度的多任务操作系统中任务优先级反转的检测系统及方法。
背景技术
在vxWorks多任务操作系统中,一个低优先级任务获取某个互斥信号量后,可能被高优先级任务抢占,发生任务切换。为了解决该问题,当某个高优先级任务也欲获取该信号量时,操作系统将把低优先级任务的优先级反转提高到与等待该信号量的任务中最高优先级相等,从而保证占用互斥信号量的低优先级任务优先执行,以尽快释放资源。为了防止多个任务抢占同一个资源而导致系统崩溃,在基于优先级调度的操作系统中,这样的任务优先级的反转是必要的,但某些时候,操作系统中发生任务优先级反转后,可能会带来一些问题,例如某些低优先级任务由于运行时间长,如果这类低优先级任务的优先级被反转,就不能被高优先级任务抢占,导致高优先任务得不到及时调度。因此,我们有必要知道低优先级任务反转的相关信息:低优先级任务获取了哪个互斥信号量后,该信号量阻塞了哪个高优先级任务导致低优先级任务的优先级反转,对于某些优先级不能被反转的低优先级任务,在软件实现时需要与高优先级任务尽量减少资源共享,避免低优先级任务的优先级被反转。
发明内容
本发明所要解决的技术问题是:提出一种多任务操作系统中任务优先级反转的检测系统及方法,快速定位任务优先级反转的相关信息。
本发明解决上述技术问题所采用的方案是:多任务操作系统中任务优先级反转的检测系统,包括:
任务切换记录模块,用于对操作系统中任务切换信息进行记录,并接受优先级反转检测管理模块注册钩子函数的通知,在此后发生任务切换时,调用钩子函数;
优先级反转检测管理模块,用于根据用户接口命令向操作系统注册或注销钩子函数,在注册钩子函数时通知任务切换记录模块,所述钩子函数在操作系统中任务发生切换时被调用,以检测当前被调度任务是否发生优先级反转及发生优先级反转任务的相关信息。
进一步,所述任务切换记录模块对操作系统中任务切换信息进行记录包括:通过建立环形队列记录操作系统中的任务切换轨迹,同时使用任务切换次数变量来记录任务切换次数;所述环形队列中的元素对应操作系统中任务切换时被调度任务的任务控制块。
进一步,所述通过建立环形队列记录操作系统中的任务切换轨迹的方法是:在发生任务切换时,依据任务切换变量记录的当前任务切换次数将当前被调度任务的任务控制块记录在环形队列中对应的位置。
进一步,所述钩子函数检测当前被调度任务是否发生优先级反转的方法是:检测当前被调度任务的任务控制块中运行优先级字段与配置优先级字段值是否相同,如果不同,则判定该任务的优先级发生了反转。
进一步,所述发生优先级反转任务的相关信息包括:被反转任务获取的信号量及其阻塞的高优先级任务。
此外,本发明还提出了一种多任务操作系统中任务优先级反转的检测方法,该方法包括以下步骤:
a.当需要检测操作系统中任务优先级反转时,优先级反转检测管理模块根据用户接口命令向操作系统注册钩子函数,并通知任务切换记录模块;
b.任务切换记录模块对操作系统中任务切换信息进行记录,并接受优先级反转检测管理模块注册钩子函数的通知,在此后发生任务切换时,调用钩子函数;
c.钩子函数检测当前被调度任务是否发生优先级反转以及发生优先级反转任务的相关信息。
进一步,步骤b中,所述任务切换记录模块对操作系统中任务切换信息进行记录包括:通过建立环形队列记录操作系统中的任务切换轨迹,同时使用任务切换次数变量来记录任务切换次数;所述环形队列中的元素对应操作系统中任务切换时被调度任务的任务控制块。
具体的,所述通过建立环形队列记录操作系统中的任务切换轨迹的方法是:在发生任务切换时,依据任务切换变量记录的当前任务切换次数将当前被调度任务的任务控制块记录在环形队列中对应的位置。
进一步,步骤c中,所述钩子函数检测当前被调度任务是否发生优先级反转的方法是:检测当前被调度任务的任务控制块中运行优先级字段与配置优先级字段值是否相同,如果不同,则判定该任务的优先级发生了反转。
进一步,所述发生优先级反转任务的相关信息包括:被反转任务获取的信号量及其阻塞的高优先级任务,所述钩子函数检测发生优先级反转任务的相关信息的具体方法是:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310034828.4/2.html,转载请声明来源钻瓜专利网。