[发明专利]一种linux下的系统实时性监控方法在审
申请号: | 201610131738.0 | 申请日: | 2016-03-09 |
公开(公告)号: | CN105760305A | 公开(公告)日: | 2016-07-13 |
发明(设计)人: | 苟利平;王仁雷 | 申请(专利权)人: | 上海博达数据通信有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/52 |
代理公司: | 上海天翔知识产权代理有限公司 31224 | 代理人: | 刘常宝 |
地址: | 201203 上海市浦东新区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 系统 实时 监控 方法 | ||
技术领域
本发明涉及软件系统技术,具体涉及软件系统中内存监控技术。
背景技术
现有的系统实时性监控技术是通过看门狗芯片实现,使用一颗看门狗芯片,系统每隔一段时间复位这颗看门狗芯片(喂狗),当系统超过一定时间没有复位这颗看门狗芯片时,则认为系统实时性过低,看门狗芯片将通过CPU的复位引脚复位CPU,系统将重新启动。
这种方法对于系统实时性监控是比较有效的,但存在以下几个缺点:
1.当系统实时性过低时,看门狗芯片将系统复位,现场信息全部丢失,这给程序开发人员工作带来较多的麻烦。
2.在多任务系统中,有可能是某个任务消耗过多CPU资源导致系统实时性过低,如果开发人员不知道是哪个任务时,就不得不排查所有任务,这大大降低开发人员的工作效率。
综上所述,系统实时性监控技术所存在的这些缺点将会极大的影响多任务嵌入式系统软件的调试进度。
发明内容
本发明针对现有系统实时性监控技术所存在的问题,而提供一种全新的软件系统实时性监控方法。本方案基于CPU的定时器机制、软件计数器机制及堆栈解析技术实现了全新的软件系统实时性监控技术,有效解决现有软件系统实时性监控技术所存在的缺陷,提高多(单)任务嵌入式系统软件的调试进度。
为了达到上述目的,本发明采用如下的技术方案:
一种linux下的系统实时性监控方法,所述监控方法包括如下步骤:
(1)linux操作系统初始化时,挂载定时器中断处理函数,在中断处理函数中对内部计时器执行加一操作,并使能该定时器;
(2)创建一个低优先级的任务,每隔设定时间,复位内部计数器;
(3)当系统实时性过低时,步骤(2)中创建的低优先级任务将得不到运行,内部计数器将会溢出;
(4)当内部计数器溢出时,判断当前正在运行的任务是内核态任务,还是用户态任务:若为用户态任务,则跳转到步骤(6);若为内核态任务,则执行步骤(5)操作;
(5)获取当前时间、当前运行的任务ID、各寄存器内容、堆栈内容;
(6)向用户态函数发送信号;
(7)用户态信号关联函数接收到信号,获取当前时间、当前运行的任务ID、各寄存器内容、堆栈内容;
(8)分析堆栈得到任务调用关系;
(9)将步骤(5)、步骤(7)、步骤(8)中得到的内容保存,并输出;
(10)重启系统。
优选的,所述步骤(2)中创建的低优先级任务为系统内最低优先级的任务。
优选的,所述步骤(5)中获取当前运行的内核态任务ID。
优选的,所述步骤(7)中获取当前运行的用户态任务ID。
优选的,所述步骤(9)中循环记录相关内容。
优选的,所述步骤(9)中保存的内容由串口输出。
本发明通过CPU的定时器机制、软件计数器机制及堆栈解析技术实现了全新的软件系统实时性监控技术,能够有效提高多任务嵌入式系统软件的调试进度。
附图说明
以下结合附图和具体实施方式来进一步说明本发明。
图1为本发明实例中对软件系统实时性监控的实施流程图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实例和图示,进一步阐述本发明。
本实例以Broadcom公司的BCM54685运行Linux操作系统为例进一步说明本发明方案具体的实施过程,具体实施步骤如下,参考图1:
1.在linux操作系统的定时器中断处理函数中加入钩子函数time_watchdog_kick_func,并在linux操作系统初始化时,将处理函数挂载在time_watchdog_kick_func,该定时器在系统初始化完毕后使能。
2.用linux操作系统提供的_sys_task_spawn()接口创建一个低优先级的任务(该任务为linux操作系统内最低优先级的任务),每隔一段时间(该时间根据实际情况设定),复位内部计数器。
3.当系统正常运行时,步骤(2)中创建的低优先级任务将定时复位内部计数器,内部计数器不会溢出;当系统实时性过低即某个优先级较高(高于步骤(2)中创建的低优先级任务的优先级)的任务一直占用CPU资源时,步骤(2)中创建的任务将得不到运行,无法复位内部计数器,内部计数器将会溢出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海博达数据通信有限公司,未经上海博达数据通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610131738.0/2.html,转载请声明来源钻瓜专利网。