CN102073572B - 用于多核处理器的监控方法及系统 - Google Patents
用于多核处理器的监控方法及系统 Download PDFInfo
- Publication number
- CN102073572B CN102073572B CN200910246453.1A CN200910246453A CN102073572B CN 102073572 B CN102073572 B CN 102073572B CN 200910246453 A CN200910246453 A CN 200910246453A CN 102073572 B CN102073572 B CN 102073572B
- Authority
- CN
- China
- Prior art keywords
- vcpu
- monitored
- monitoring
- normal operation
- operation mark
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种用于多核处理器的监控方法及系统,其中,该方法包括:监控VCPU定期通知多个被监控VCPU修改运行正常标志;监控VCPU定期轮询多个被监控VCPU的运行正常标志,根据轮询结果判断被监控VCPU是否正常运行。根据本发明,能够简捷、清晰地实现多核处理器的监控,并节约了系统资源。
Description
技术领域
本发明涉及通讯领域,尤其涉及一种用于多核处理器的监控方法及系统。
背景技术
目前,硬件看门狗是常用的CPU运行异常监控手段,需要软件周期发给看门狗一个信号(称作喂狗),一旦超过规定时间没有提供喂狗信号,看门狗就会复位整个系统;但对于多核处理器,多个核是同时独立运行的,硬件上不可能给每个核都配备一个看门狗芯片,可能某个核工作异常停止运行了,而别的核还在正常工作。硬件上不可能给每个核都配备一个看门狗芯片,这就需要软件监控来辅助保证每个工作的核都在正常运行。
图1示出了一种多核处理器架构,它采用多线程技术(Multi-thread)实现,每个线程相当于一个CPU,各自可独立运行;四个线程共享一级指令高速缓冲(I-Cache)和数据高速缓冲(D-Cache),并组成一个核(Core),一个处理器可包含多个核。本文把该处理器的线程称作VCPU(Virtual CPU,虚拟CPU)。
在多核处理器的工作场景中,如果某一工作VCPU发生程序跑飞等异常而导致无法正常工作,整个系统都可能会瘫痪,因此需要快速捕捉到发生异常的VCPU,进行错误处理并恢复系统。用软件模拟看门狗功能是一个基本解决思路,如图2所示,在某个VCPU(VCPUm,即监控VCPU)上驻留一段监控代码,扫描其它的工作VCPU(VCPU1,VCPU2…VCPUn,即被监控VCPU),若发现某个VCPU运行异常,则进行相应的处理,而“监控VCPU”本身可以由硬件看门狗来监视。
目前,软件模拟看门狗的实现方法通常有以下两种:
一、给每个VCPU配备一个硬件定时器,当发生定时中断时,VCPU置某些标志,相当于喂狗;由监控VCPU上驻留的监控任务来扫描这些标志,若发现一定时间内某个VCPU的标志未改变,则认为该VCPU异常,便进行相应的处理。
二、每个VCPU的程序中增加一喂狗任务,依靠软件延时来定时置某些标志;监控VCPU上驻留的监控任务循环扫描这些标志,若发现一定时间内某个VCPU的标志未改变,则认为该VCPU异常,便进行相应的处理。
上述两种方法各有其不足:对于方法一,动作准确、CPU开销小,但每个VCPU需要一个额外硬件定时器资源来支持,增加了硬件开销;对于方法二,多任务的操作系统环境下,喂狗任务会因被中断或高优先级的任务抢占而错过喂狗时机,控制准确性差,还存在严重的VCPU处理能力浪费问题,原因是延时期间VCPU在做无用功。
因此,针对上述的多核处理器中VCPU监控开销大或者控制性差的问题,现有技术中尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种用于多核处理器的监控方法及系统,以解决现有技术中监控开销大或者控制性差的问题。
本发明提供一种用于多核处理器的监控方法,该多核处理器包括一个监控虚拟CPU VCPU和多个被监控VCPU,该方法包括:
监控VCPU定期通知多个被监控VCPU修改运行正常标志;监控VCPU定期轮询多个被监控VCPU的运行正常标志,根据轮询结果判断被监控VCPU是否正常运行。其中,所述监控功能由一个空闲的监控VCPU或非空闲的业务VCPU来完成,具体为:
若所述多核处理器中有空闲的监控VCPU,则由所述空闲的监控VCPU由指定被监控VCPU唤醒后进行监控;
若没有空闲的监控VCPU,则由业务VCPU进行监控;
为所述监控VCPU分配一个栈空间,用于各个VCPU的运行正常标志作为全局数据变量保存到共享内存中。
优选地,监控VCPU采用以下方式之一通知多个被监控VCPU修改运行正常标志:中断方式、消息方式。
优选地,在监控VCPU通知多个被监控VCPU修改运行正常标志之后,方法进一步包括:多个被监控VCPU分别根据该通知执行修改运行正常标志的处理。
优选地,监控VCPU由预先设置的硬件看门狗监控其是否正常运行。
本发明还提供一种用于多核处理器的监控系统,包括:一个监控VCPU和多个被监控VCPU,其中,所述系统包括:所述监控VCPU,用于定期通知多个被监控VCPU修改运行正常标志;所述监控VCPU,还用于定期轮询多个被监控VCPU的运行正常标志,根据轮询结果判断被监控VCPU是否正常运行;
其中,所述监控功能由一个空闲的监控VCPU或非空闲的业务VCPU来完成,具体为:
若所述多核处理器中有空闲的监控VCPU,则由所述空闲的监控VCPU由指定被监控VCPU唤醒后进行监控;
若没有空闲的监控VCPU,则由业务VCPU进行监控;
为所述监控VCPU分配一个栈空间,用于各个VCPU的运行正常标志作为全局数据变量保存到共享内存中。
优选地,监控VCPU采用以下方式之一通知多个被监控VCPU修改运行正常标志:中断方式、消息方式。
优选地,多个被监控VCPU,用于接收来自监控VCPU的修改运行正常标志的通知,并根据该通知修改运行正常标志。
优选地,该系统进一步包括:硬件看门狗,用于监控监控VCPU是否正常运行。
根据本发明实施例的技术方案,通过监控VCPU通知多个被监控VCPU修改运行正常标志,轮询多个被监控VCPU的运行正常标志,并根据轮询结果判断被监控VCPU是否正常运行,能够简捷、清晰地实现多核处理器的监控,在不需要额外硬件资源支持的情况下,达到了最佳的监控效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据现有技术的多核处理器架构图;
图2是根据现有技术的VCPU监控模型的示意图;
图3是根据本发明实施例的监控方法的流程图;
图4是根据本发明实施例的采用VCPU间中断通知方式的监控方法的流程图;
图5是根据本发明实施例的采用VCPU间消息通知方式的监控方法的流程图;
图6是根据本发明实施例的监控系统的结构框图。
具体实施方式
本发明的主要思想主要在于,本发明主要应用在某通讯系统中,该系统采用多核处理器,每个工作VCPU运行一套多任务操作系统。若处理器还有空闲未用的VCPU,则使用该空闲的VCPU专门进行监控处理。监控VCPU初始化完毕后进入休眠等待状态,当所有被监控VCPU都运行起来后,由其中指定的被监控VCPU(可以任意指定)唤醒该监控VCPU,监控VCPU退出休眠,进行监控处理;若处理器无空闲VCPU时,则由某个业务VCPU(非空闲)来进行监控处理,该业务VCPU可以直接运行监控程序。另外,需要为监控VCPU专门分配一块程序运行的栈空间,各个VCPU的运行正常标志作为全局数据变量保存到共享内存中。
为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明作进一步地详细说明。
根据本发明的实施例,提出了一种用于多核处理器的监控方法。
图3是根据本发明实施例的监控方法的流程图,如图3所示,该方法包括:
步骤S302,监控VCPU定期通知多个被监控VCPU修改运行正常标志;
步骤S304,监控VCPU定期轮询多个被监控VCPU的运行正常标志,根据轮询结果判断被监控VCPU是否正常运行。
在实际应用中,监控功能可以用由一个空闲的监控VCPU或业务VCPU(非空闲)来完成。若由空闲的监控VCPU来完成,指定的被监控VCPU需要唤醒该监控VCPU,并通知监控VCPU监控程序的地址以及给它分配的栈空间地址,监控VCPU才能设置程序栈空间并运行监控程序(参考步骤S302和步骤S304);若VCPU都要运行业务而无空闲VCPU时,也可由某个业务VCPU(非空闲)来完成,这就不需要分配堆栈和唤醒,该业务VCPU可以直接运行监控程序。
在步骤S302之后并且在步骤S304之前,多个被监控VCPU接收到修改运行正常标志的通知后,分别根据该通知执行修改运行正常标志的处理。其中,监控VCPU采用以下方式之一通知多个被监控VCPU修改运行正常标志:中断方式、消息方式。
需要说明,运行正常标志是保存在共享空间的变量,每个被监控VCPU独有自己的标志,被监控VCPU接收到来自监控VCPU的通知后,可以将该标志的值加一;监控VCPU在通知完被监控VCPU修改标志后,等待一段时间,再查看每个被监控VCPU的标志的值是否改变,如果改变,则认为相应的被监控VCPU工作正常,否则即发生异常。
此外,监控VCPU由预先设置的硬件看门狗进行监控,以监控该监控VCPU是否正常运行。
区别于现有技术,本发明实施例由监控VCPU周期性主动通知所有被监控VCPU喂狗,就像是一个定时器,定时要求被监控VCPU修改运行正常标志。被监控VCPU只有在收到这个通知后,才进入分支处理程序完成标志修改操作;监控VCPU在通知完所有被监控VCPU后开始循环扫描各个VCPU的运行正常标志,若是在设定时间内,有某个VCPU的标志还没有改变,可以认为该VCPU运行发生异常,需要进行异常错误处理。被监控VCPU只需要增加一个收到通知后的分支处理程序,来完成运行标志修改,平时就不用运行专门任务来进行喂狗。另外监控VCPU还负责给硬件看门狗提供喂狗信号,以监控自身的运行是否正常。
本发明能够应用在某移动通讯系统的核心控制板的软件监控,该控制板采用多核处理器,对各工作VCPU功能作了划分,预留有空闲的VCPU用于软件监控。根据本发明实施例,监控VCPU可以采用以下的方式通知被监控VCPU进行修改运行正常标志:VCPU间中断方式或VCPU间消息方式,下面结合图4和图5分别进行描述。
图4是根据本发明实施例的采用VCPU间中断通知方式的监控方法的流程图,如图4所示,包括:
步骤S402,指定的VCPU将监控程序和栈地址发给监控VCPU并唤醒该监控VCPU;
步骤S404,监控VCPU设置程序栈空间,执行监控程序。
步骤S406,监控VCPU定时给被监控VCPU发中断,通知监控VCPU修改运行正常标志(喂狗)。
步骤S408,被监控VCPU收到中断后,执行标志修改中断处理程序。
步骤S410,监控VCPU轮询被监控VCPU运行正常标志是否修改,根据轮询结果判断被监控VCPU是否正常运行。监控VCPU给硬件看门狗喂狗,以监控该监控VCPU是否正常运行。
通过VCPU间中断的通知方式,使得被监控VCPU响应更加及时,提高了监控效率。
图5是根据本发明实施例的采用VCPU间消息通知方式的监控方法的流程图,如图5所示,包括:
步骤S502,指定的VCPU将监控程序和栈地址发给监控VCPU并唤醒该监控VCPU;
步骤S504,监控VCPU设置程序栈空间,执行监控程序。
步骤S506,监控VCPU定时给被监控VCPU发消息,通知监控VCPU修改运行正常标志(喂狗)。
步骤S508,被监控VCPU收到消息后,解析消息进标志修改分支处理程序。
步骤S510,监控VCPU轮询被监控VCPU运行正常标志是否修改,根据轮询结果判断被监控VCPU是否正常运行。监控VCPU给硬件看门狗喂狗,以监控该监控VCPU是否正常运行。
通过VCPU间消息的通知方式,能够在消息中包含复杂的信息,便于今后功能扩展。
系统实施例
根据本发明的实施例,还提供了一种用于多核处理器的监控系统。
图6是根据本发明实施例的多核处理器的结构框图,如图6所示,该多核处理器包括:一个监控VCPU 10和多个被监控VCPU 20,其中:
监控VCPU 10,包括:通知模块,用于定期通知多个被监控VCPU 20修改运行正常标志;轮询模块,用于轮询多个被监控VCPU 20的运行正常标志,根据轮询结果判断被监控VCPU 20是否正常运行。监控VCPU 10采用以下方式之一通知多个被监控VCPU 20修改运行正常标志:中断方式、消息方式。
需要说明的是,在实际应用中,该监控VCPU可以为空闲的监控VCPU或业务VCPU(非空闲),若该监控VCPU为空闲的监控VCPU,指定的被监控VCPU需要唤醒该监控VCPU,并通知监控VCPU监控程序的地址以及给它分配的栈空间地址,监控VCPU才能设置程序栈空间并运行监控程序;若该监控VCPU为业务VCPU,则不需要分配堆栈和唤醒,该业务VCPU可以直接进行监控处理。
多个被监控VCPU 20,用于接收来自监控VCPU 10的修改运行正常标志的通知,并根据该通知修改运行正常标志。
并且,该监控系统还包括:硬件看门狗,用于监控监控VCPU 10是否正常运行。
综上所示,根据本发明实施例的监控方法及系统,在不需要额外硬件资源支持的情况下,达到了最佳的监控效果,简捷、清晰,且易于实现,可以作为多核处理器场景下的通用监控方法,进行广泛应用。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (8)
1.一种用于多核处理器的监控方法,所述多核处理器包括一个监控虚拟CPU VCPU和多个被监控VCPU,其特征在于,所述方法包括:
所述监控VCPU定期通知所述多个被监控VCPU修改运行正常标志;
所述监控VCPU定期轮询所述多个被监控VCPU的运行正常标志,根据轮询结果判断被监控VCPU是否正常运行;
若所述多核处理器中有空闲的VCPU,则由所述空闲的VCPU由指定被监控VCPU唤醒后进行监控;
若没有空闲的VCPU,则由业务VCPU进行监控;
为所述监控VCPU分配一个栈空间,用于各个VCPU的运行正常标志作为全局数据变量保存到共享内存中。
2.根据权利要求1所述的方法,其特征在于,所述监控VCPU采用以下方式之一通知所述多个被监控VCPU修改运行正常标志:
中断方式、消息方式。
3.根据权利要求1所述的方法,其特征在于,在所述监控VCPU通知所述多个被监控VCPU修改运行正常标志之后,所述方法进一步包括:
所述多个被监控VCPU分别根据该通知执行修改运行正常标志的处理。
4.根据权利要求1所述的方法,其特征在于,所述监控VCPU由预先设置的硬件看门狗监控其是否正常运行。
5.一种用于多核处理器的监控系统,所述多核处理器包括一个监控VCPU和多个被监控VCPU,其特征在于,所述系统包括:
第一模块,用于使所述监控VCPU定期通知所述多个被监控VCPU修改运行正常标志;
第二模块,用于使所述监控VCPU定期轮询所述多个被监控VCPU的运行正常标志,根据轮询结果判断所述被监控VCPU是否正常运行;
第三模块,用于若所述多核处理器中有空闲的VCPU,则由所述空闲的VCPU由指定被监控VCPU唤醒后进行监控;
若没有空闲的VCPU,则由业务VCPU进行监控;
第四模块,用于为所述监控VCPU分配一个栈空间,其用于各个VCPU的运行正常标志作为全局数据变量保存到共享内存中。
6.根据权利要求5所述的系统,其特征在于,
所述第一模块是用于,使所述监控VCPU采用以下方式之一通知所述多个被监控VCPU修改运行正常标志:
中断方式、消息方式。
7.根据权利要求5所述的系统,其特征在于,还包括:
第五模块,使所述多个被监控VCPU接收来自所述监控VCPU的修改运行正常标志的通知,并根据该通知修改运行正常标志。
8.根据权利要求5所述的系统,其特征在于,还包括:
第六模块,用于设置硬件看门狗来监控所述监控VCPU是否正常运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910246453.1A CN102073572B (zh) | 2009-11-24 | 2009-11-24 | 用于多核处理器的监控方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910246453.1A CN102073572B (zh) | 2009-11-24 | 2009-11-24 | 用于多核处理器的监控方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102073572A CN102073572A (zh) | 2011-05-25 |
CN102073572B true CN102073572B (zh) | 2015-10-21 |
Family
ID=44032118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910246453.1A Active CN102073572B (zh) | 2009-11-24 | 2009-11-24 | 用于多核处理器的监控方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102073572B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069377A (zh) * | 2018-01-22 | 2019-07-30 | 中兴通讯股份有限公司 | 一种多核处理器的监测方法、终端及计算机存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101534974B1 (ko) * | 2013-12-19 | 2015-07-08 | 현대자동차주식회사 | 다중 마이크로 코어 감시 장치 및 방법 |
CN103870350A (zh) * | 2014-03-27 | 2014-06-18 | 浪潮电子信息产业股份有限公司 | 一种基于watchdog的微处理器多核加固方法 |
CN105204977A (zh) * | 2014-06-30 | 2015-12-30 | 中兴通讯股份有限公司 | 一种系统异常的捕获方法、主系统、影子系统及智能设备 |
CN107526646A (zh) * | 2016-06-20 | 2017-12-29 | 中兴通讯股份有限公司 | 监控方法、装置及看门狗系统 |
CN106407032A (zh) * | 2016-09-18 | 2017-02-15 | 深圳震有科技股份有限公司 | 一种基于多核系统的硬件看门狗控制方法及系统 |
CN107577571B (zh) * | 2017-09-22 | 2021-04-30 | 迈普通信技术股份有限公司 | 问题定位方法及多核处理器 |
CN110990328B (zh) * | 2019-10-23 | 2022-06-17 | 武汉光庭信息技术股份有限公司 | 一种TBox的双处理器间可靠通信的方法及系统 |
CN111026573B (zh) * | 2019-11-19 | 2023-08-18 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多核处理系统的看门狗系统及控制方法 |
CN111143127B (zh) * | 2019-12-23 | 2023-09-26 | 杭州迪普科技股份有限公司 | 监管网络设备的方法、装置、存储介质及设备 |
CN112631872B (zh) * | 2020-12-30 | 2024-02-23 | 上海金卓科技有限公司 | 一种多核系统的异常处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1595368A (zh) * | 2003-09-13 | 2005-03-16 | 华为技术有限公司 | 多任务系统的异常监控装置及其方法 |
CN1855067A (zh) * | 2005-04-28 | 2006-11-01 | 华为技术有限公司 | 一种实时操作系统中任务挂起状态监控方法 |
CN1916858A (zh) * | 2006-09-19 | 2007-02-21 | 杭州华为三康技术有限公司 | 多核系统中的监控方法、监控装置以及多核系统 |
CN101458640A (zh) * | 2007-12-14 | 2009-06-17 | 环达电脑(上海)有限公司 | 可监控多线程状态的系统及其监控方法 |
-
2009
- 2009-11-24 CN CN200910246453.1A patent/CN102073572B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1595368A (zh) * | 2003-09-13 | 2005-03-16 | 华为技术有限公司 | 多任务系统的异常监控装置及其方法 |
CN1855067A (zh) * | 2005-04-28 | 2006-11-01 | 华为技术有限公司 | 一种实时操作系统中任务挂起状态监控方法 |
CN1916858A (zh) * | 2006-09-19 | 2007-02-21 | 杭州华为三康技术有限公司 | 多核系统中的监控方法、监控装置以及多核系统 |
CN101458640A (zh) * | 2007-12-14 | 2009-06-17 | 环达电脑(上海)有限公司 | 可监控多线程状态的系统及其监控方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069377A (zh) * | 2018-01-22 | 2019-07-30 | 中兴通讯股份有限公司 | 一种多核处理器的监测方法、终端及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102073572A (zh) | 2011-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102073572B (zh) | 用于多核处理器的监控方法及系统 | |
US20210240252A1 (en) | Platform and processor power management | |
CN101464811B (zh) | 多任务监控管理系统 | |
US8209559B2 (en) | Low power polling techniques | |
US20160378570A1 (en) | Techniques for Offloading Computational Tasks between Nodes | |
CN100489788C (zh) | 一种线程唤醒控制方法和系统 | |
CN101694633A (zh) | 计算机作业调度设备、方法及系统 | |
CN105159769A (zh) | 一种适用于计算能力异构集群的分布式作业调度方法 | |
CN102695998A (zh) | 用于在虚拟化系统中控制中央处理单元功率的系统和方法 | |
CN104572290A (zh) | 消息处理线程的控制方法及装置 | |
US10168751B2 (en) | Method of executing an application on a distributed computer system, a resource manager and a distributed computer system | |
CN103092682A (zh) | 异步网络应用程序处理方法 | |
CN101510165B (zh) | 看门狗电路的喂狗方法、装置和单板 | |
CN111580949B (zh) | 一种网络收包模式自动调节方法 | |
JPWO2009150815A1 (ja) | マルチプロセッサシステム | |
CN108885559A (zh) | 在多个处理器之间快速转移工作负载 | |
CN111429033A (zh) | 一种工作流任务调度系统、方法及服务终端 | |
WO2016177081A1 (zh) | 通知消息处理方法及装置 | |
CN106843890B (zh) | 基于智能决策的传感器网络、节点及其运行方法 | |
CN112948088A (zh) | 一种云计算平台中的云工作流智能管理与调度系统 | |
JP2013084169A (ja) | コントローラ、およびタスクとラダーの処理方法 | |
CN114167823B (zh) | 机器人控制方法、装置、电子设备和存储介质 | |
CN104021041A (zh) | 一种多任务操作环境状态的计算机调度方法 | |
KR20130052230A (ko) | 실시간 운영체제의 테스크 스케줄링 테이블을 이용한 테스크 관리장치 및 관리방법 | |
CN107239417B (zh) | 基于异步事件框架机制处理低速外设访问的系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |