CN101458640B - 可监控多线程状态的系统及其监控方法 - Google Patents

可监控多线程状态的系统及其监控方法 Download PDF

Info

Publication number
CN101458640B
CN101458640B CN2007101723703A CN200710172370A CN101458640B CN 101458640 B CN101458640 B CN 101458640B CN 2007101723703 A CN2007101723703 A CN 2007101723703A CN 200710172370 A CN200710172370 A CN 200710172370A CN 101458640 B CN101458640 B CN 101458640B
Authority
CN
China
Prior art keywords
thread
refreshing frequency
monitoring
refresh activity
operating system
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.)
Expired - Fee Related
Application number
CN2007101723703A
Other languages
English (en)
Other versions
CN101458640A (zh
Inventor
臧东明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitac Research Shanghai Ltd
Mitac International Corp
Original Assignee
Mitac International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitac International Corp filed Critical Mitac International Corp
Priority to CN2007101723703A priority Critical patent/CN101458640B/zh
Publication of CN101458640A publication Critical patent/CN101458640A/zh
Application granted granted Critical
Publication of CN101458640B publication Critical patent/CN101458640B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明揭示一种可监控多线程状态的系统及其监控方法。此系统包含:一用以产生一计数值的计时单元;一监控第一线程及其它线程所进行的一刷新动作的监控单元。此方法包含步骤:通过一计时单元产生一计数值;利用一监控单元监控第一线程及其它线程所进行的一刷新动作;当第一线程进行刷新动作时,若其它线程的刷新次数其中之一未达一特定要求,则监控单元对操作系统进行一复位动作。若其它线程的刷新次数达到特定要求,则第一线程更新其一第一刷新次数,并对计时单元进行刷新动作以重数计数值;当其它线程进行刷新动作时,则其它线程更新其刷新次数。从而除可轻易监控所有线程外,亦不需耗费资源维护一监控线程及一信息表,作法简单容易。

Description

可监控多线程状态的系统及其监控方法
【技术领域】
本发明系提供一种可监控多线程状态的系统及其监控方法,特别是有关于利用一看门狗(watch dog)定时器,以监控多个线程的技术领域。
【背景技术】
现代的电子装置或信息系统中,操作系统(如Linux或Windows)常需要同时处理许多重要的任务,而这些任务亦常经由多个线程(Thread)分头并进来加以完成。如果这些线程其中的一出现问题,例如:操作系统的资源被单一线程全部占用或锁住(Lock)而使得其它线程无法使用、线程处于无穷循环状态而许久没有响应、或者是硬件出现问题而造成线程无法顺利执行…等等,皆会导致操作系统无法正常运作甚至当机,若此时又无人监控并立刻处理,便很容易地造成个人和企业莫大的损失。因此,如何利用监控线程的状态,来达到监控操作系统的运作情形,乃至于发现线程出现异常时,能立即且自动地对线程或操作系统进行处理,以随时保持操作系统正常运作,非常值得大家的重视和深入探讨。
请参阅图1,为现有技术监控多线程状态的方法示意图。图中,此方法主要设定一线程为监控线程11,而其它线程为被监控线程12。此监控线程11系用以定时与被监控线程12联系,以获得每个线程的工作状态,每个被监控线程12都需于监控线程11发出点名消息141时,实时回馈点名应答消息142,以告知本线程的工作状态和其它信息。另外,监控线程11亦维护一个包含每个线程状态的信息表,操作系统则根据各个线程的不同状态采取不一样的策略。再者,监控线程11设置一定时器,用以定时触发点名事件,以发送点名消息141给所有被监控线程12,并设置等待应答的超时长度。当被监控线程12发生点名应答超时143时,监控线程11累加被监控线程12的超时次数,于超时次数超过一默认值时,便将被监控线程12变为僵死状态,同时进行通知系统144的动作,以通知系统主控线程13。
上述现有技术的缺点,在于此方法并未对监控线程11进行监控,若是监控线程11本身出现异常时,则无法得知问题所在。另外,此方法需耗费部份资源,以维护一条监控线程11及一个包含每个线程状态的信息表,作法复杂且维护不易。
【发明内容】
有鉴于上述课题,本发明的目的系提供一种可监控多线程状态的系统及其监控方法,特别是有关于利用一看门狗定时器,来监控多个线程的技术领域,来满足使用者监控多线程状态的需求,并解决现有技术的缺点,除可轻易监控所有线程外,亦不需耗费资源维护一监控线程及一信息表,作法简单容易。
因此,为达上述目的,本发明提出一种可监控多线程状态的系统,用以监控于一操作系统下运作的多个线程,且一第一线程于这些线程的刷新(Recount)频率中具有一最大刷新频率。此系统至少包含一计时单元及一监控单元,计时单元用以产生一计数值,而监控单元则监控第一线程及其它线程所进行的一刷新动作。其中当第一线程进行刷新动作时,若其它线程的刷新次数其中之一未达一特定要求,则监控单元对操作系统进行一复位(Reset)动作。若其它线程的刷新次数达到特定要求,则第一线程更新其一第一刷新次数,并对计时单元进行刷新动作以重数计数值。另当其它线程进行刷新动作时,则其它线程更新其刷新次数。
为达上述目的,本发明提出一种监控多线程状态的方法,用以监控于一操作系统下运作的多个线程,且一第一线程于这些线程的刷新频率中具有一最大刷新频率,此方法至少包含步骤如下:
(a)通过一计时单元产生一计数值;
(b)利用一监控单元监控第一线程及其它线程所进行的一刷新动作;
(c)当第一线程进行刷新动作时,若其它线程的刷新次数其中之一未达一特定要求,则监控单元对操作系统进行一复位动作。若其它线程的刷新次数达到特定要求,则第一线程更新其一第一刷新次数,并对计时单元进行刷新动作以重数计数值;
(d)当其它线程进行刷新动作时,则其它线程更新其刷新次数。
相较于现有技术,利用本发明,除可轻易监控所有线程外,亦不需耗费资源维护一监控线程及一信息表,作法简单容易。
为对本发明的目的、构造特征及其功能有进一步的了解,兹配合附图详细说明如下:
【附图说明】
图1为现有技术的监控多线程状态的方法的示意图。
图2显示本发明的可监控多线程状态的系统的示意图。
图3显示本发明的可监控多线程状态的系统的较佳实施例示意图。
图4显示本发明的监控多线程状态的方法的流程图。
【具体实施方式】
为让本发明的上述目的、特征和优点能更明显易懂,下文依本发明的可监控多线程状态的系统及其监控方法,特举较佳实施例,并配合所附相关图示,作详细说明如下,其中相同的组件将以相同的组件符号加以说明。
请参阅图2,显示本发明的可监控多线程状态的系统的示意图。图中,此系统21用以监控于一操作系统23(如Linux或Windows)下运作的多个线程22,而这些线程22的刷新频率由大到小或由小到大被排序,且一第一线程221于这些线程22的刷新频率中具有一最大刷新频率2211。另外,系统21至少包含一计时单元211及一监控单元212,计时单元211用以产生一计数值2111,而监控单元212则监控第一线程221及其它线程222所进行的一刷新动作。
当第一线程221进行刷新动作时,若其它线程222的刷新次数2222其中之一未达一特定要求2223,例如其它线程222的刷新次数2222未与第一刷新次数2212成一比例关系,或者是说,其它线程222的刷新次数2222除以刷新频率2221未大约等于第一刷新次数2212除以最大刷新频率2211,则监控单元212对操作系统23进行一复位动作,一般为重新启动(Reboot)或关闭(Shutdown)操作系统23。同时,第一线程221亦会设置一标志,以标明其它线程222其中的一出现异常,而导致操作系统23被复位。若其它线程222的刷新次数2222全部达到特定要求2223,则第一线程221更新其第一刷新次数2212,并对计时单元211进行刷新动作以重数计数值2111。
另外,当其它线程222进行刷新动作时,则其它线程222更新其刷新次数2222。除此之外,上述的第一刷新次数2212及其它线程222的刷新次数2222于第一刷新次数2212产生溢位(Overflow)前会被归零(Zero)。
请参阅图3,显示本发明的可监控多线程状态的系统的较佳实施例示意图。图中,此实施例系以一看门狗定时器31来实现本发明的系统,用以监控于一Linux操作系统33下运作的多个线程32。看门狗定时器31至少包含一计时单元311及一监控单元312,此计时单元311用以产生一计数值3111,而监控单元312则监控第一线程321及其它线程322所进行的一刷新动作。
一开始时,先对需要被监控的线程32,依照其刷新频率由大到小排序完成。假设这些线程32共有第一线程321、第二线程、…、第n线程,其刷新频率各为第一刷新频率(f1)、第二刷新频率(f2)、…、第n刷新频率(fn),且f1>=f2>=…>=fn。其中,第一线程321具有一最大刷新频率3211,即第一刷新频率(f1)等于最大刷新频率3211,而第二线程~第n线程则归为其它线程322。在Linux操作系统33启动后,按照最大刷新频率3211设置看门狗定时器31,亦即将看门狗定时器31的刷新周期设定为1/f1。
当第一线程321进行刷新动作时,先检测其它线程322的刷新次数3222是否符合特定要求3223。例如,其它线程322的刷新次数3222是否与第一刷新次数3212成一比例关系,或者是说,其它线程322的刷新次数3222除以刷新频率3221是否大约等于第一刷新次数3212除以最大刷新频率3211。举个例子,假设第一线程321的第一刷新次数3212为t1,而其它线程322如第m线程(2=<m=<n)的刷新次数为tm,刷新频率为fm,那么tm/fm应大约等于t1/f1,即(tm/fm)
Figure 2007101723703_0
(t1/f1)。如果tm/fm远小于t1/f1,例如(tm/fm)<(t1/f1+1),则表示第m线程的刷新次数tm不够,亦即第m线程未定时进行刷新动作。这个时候,第一线程321便会设置一标志3213以标明第m线程未定时进行刷新动作,同时第一线程321不进行刷新动作而直接返回。如此一来,因为第一线程321未定时进行刷新动作,故计时单元311中的计数值3111在达到一指定计数值后,便会由监控单元312对Linux操作系统33进行一复位动作,而重新启动Linux操作系统33。
在Linux操作系统33重新启动后,检测到第一线程321设置的标志3213,也就知道是第m线程出现异常而导致Linux操作系统33被复位。当然,如果第一线程321未设置任何的标志3213,以标明第二线程~第n线程其中的一出现异常,就表示说是第一线程321导致了Linux操作系统33被复位。若其它线程322的刷新次数3222全部达到特定要求3223,则第一线程321更新其第一刷新次数3212,并对计时单元311进行刷新动作以重数计数值3111。
另外,当其它线程322进行刷新动作时,则其它线程322仅更新其刷新次数3222,而不真正对计时单元311的计数值3111进行刷新动作以重数计数值3111。还有,第一刷新次数3212在产生溢位前会被归零,以避免第一刷新次数3212及其它线程322的刷新次数3222发生溢位现象。
请参阅图4,显示本发明的监控多线程状态的方法的流程图。图中,此方法对应图2所示的可监控多线程状态的系统,用以监控于一操作系统23(如Linux或Windows)下运作的多个线程22,而这些线程22的刷新频率由大到小或由小到大被排序,且一第一线程221于这些线程22的刷新频率中具有一最大刷新频率2211,此方法至少包含下列步骤:
步骤S41:通过一计时单元211产生一计数值2111;
步骤S42:利用一监控单元212监控第一线程221及其它线程222所进行的一刷新动作;
步骤S43:当第一线程221进行刷新动作时,若其它线程222的刷新次数2222其中之一未达一特定要求2223,例如其它线程222的刷新次数2222未与第一刷新次数2212成一比例关系,或者是说,其它线程222的刷新次数2222除以刷新频率2221未大约等于第一刷新次数2212除以最大刷新频率2211,则监控单元212对操作系统23进行一复位动作,一般为重新启动或关闭操作系统23。同时,第一线程221亦会设置一标志,以标明其它线程222其中的一出现异常,而导致操作系统23被复位。若其它线程222的刷新次数2222达到特定要求2223,则第一线程221更新其第一刷新次数2212,并对计时单元211进行刷新动作以重数计数值2111;
步骤S44:当其它线程222进行刷新动作时,则其它线程222更新其刷新次数2222。
除此之外,上述的第一刷新次数2212及其它线程222的刷新次数2222于第一刷新次数2212产生溢位前会被归零。

Claims (13)

1.一种可监控多线程状态的系统,用以监控于一操作系统下运作的若干个线程,且一第一线程于这些线程的刷新频率中具有一最大刷新频率,其特征在于,该系统至少包含:
一计时单元,用以产生一计数值;以及
一监控单元,系监控该第一线程及其它线程所进行的一刷新动作,其中当该第一线程进行该刷新动作时,若其它线程的刷新次数其中之一未达一特定要求,也就是说其它线程未定时进行刷新动作,则第一线程不进行刷新动作而直接返回,由于第一线程未定时进行刷新动作,该计时单元中的计数值在达到一指定计数值后,该监控单元对该操作系统进行一复位(Reset)动作;若其它线程的刷新次数达到该特定要求,则该第一线程更新其一第一刷新次数,并对该计时单元进行该刷新动作以重数该计数值,当其它线程进行该刷新动作时,则其它线程更新其刷新次数;其中,所述特定要求为其它线程的刷新次数与第一刷新次数成一比例关系。
2.如权利要求1所述的系统,其特征在于,该系统包括为一看门狗定时器。
3.如权利要求1所述的系统,其特征在于,该操作系统包括为一Linux操作系统或一Windows操作系统。
4.如权利要求1所述的系统,其特征在于,这些线程的刷新频率由大到小或由小到大被排序。
5.如权利要求1所述的系统,其特征在于,该第一刷新次数及其它线程的刷新次数于该第一刷新次数产生溢位前被归零。
6.如权利要求1所述的系统,其特征在于,非第一线程的线程其中的一刷新次数未达该特定要求时,则该第一线程系设置一标志,以标明其它线程其中的一出现异常,而导致该操作系统执行一复位动作。
7.如权利要求1所述的系统,其特征在于,该复位动作包括为重新启动或关闭该操作系统。
8.一种监控多线程状态的方法,用以监控于一操作系统下运作的若干个线程,且一第一线程于这些线程的刷新频率中具有一最大刷新频率,其特征在于,该方法至少包含:
通过一计时单元产生一计数值;
利用一监控单元监控该第一线程及其它线程所进行的一刷新动作;
当该第一线程进行该刷新动作时,若其它线程的刷新次数其中之一未达一特定要求,也就是说其它线程未定时进行刷新动作,则该第一线程不进行刷新动作而直接返回,由于第一线程未定时进行刷新动作,该计时单元中的计数值在达到一指定计数值后,该监控单元对该操作系统进行一复位动作;若其它线程的刷新次数达到该特定要求,则该第一线程更新其一第一刷新次数,并对该计时单元进行该刷新动作以重数该计数值;其中,所述特定要求为其它线程的刷新次数未与第一刷新次数成一比例关系;以及
当其它线程进行该刷新动作时,则其它线程更新其刷新次数。
9.如权利要求8所述的方法,其特征在于,该操作系统包括为一Linux操作系统或一Windows操作系统。
10.如权利要求8所述的方法,其特征在于,这些线程的刷新频率由大到小或由小到大被排序。
11.如权利要求8所述的方法,其特征在于,该第一刷新次数及其它线程的刷新次数于该第一刷新次数产生溢位前被归零。
12.如权利要求8所述的方法,其特征在于,若其它线程其中的一刷新次数未达该特定要求,则该第一线程系设置一标志,以标明其它线程其中的一出现异常,而导致该操作系统被复位。
13.如权利要求8所述的方法,其特征在于,该复位动作包括为重新启动或关闭该操作系统。
CN2007101723703A 2007-12-14 2007-12-14 可监控多线程状态的系统及其监控方法 Expired - Fee Related CN101458640B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101723703A CN101458640B (zh) 2007-12-14 2007-12-14 可监控多线程状态的系统及其监控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101723703A CN101458640B (zh) 2007-12-14 2007-12-14 可监控多线程状态的系统及其监控方法

Publications (2)

Publication Number Publication Date
CN101458640A CN101458640A (zh) 2009-06-17
CN101458640B true CN101458640B (zh) 2012-05-23

Family

ID=40769514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101723703A Expired - Fee Related CN101458640B (zh) 2007-12-14 2007-12-14 可监控多线程状态的系统及其监控方法

Country Status (1)

Country Link
CN (1) CN101458640B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073572B (zh) * 2009-11-24 2015-10-21 中兴通讯股份有限公司 用于多核处理器的监控方法及系统
JP5951429B2 (ja) * 2012-02-01 2016-07-13 ルネサスエレクトロニクス株式会社 ウォッチドッグ回路、電源ic、及びウォッチドッグ監視システム
CN103246589B (zh) * 2012-02-03 2015-07-15 京信通信系统(中国)有限公司 一种多线程的监控方法及装置
CN103501471B (zh) * 2013-09-22 2017-04-12 国家电网公司 一种远程集中控制10g epon设备的方法及其系统
CN109766131B (zh) * 2017-11-06 2022-04-01 上海宝信软件股份有限公司 基于多线程技术实现软件智能化自动升级的系统及方法
CN116708139B (zh) * 2023-07-21 2023-10-20 北京六方云信息技术有限公司 网络设备故障处理方法、装置、设备以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1277387A (zh) * 1999-06-10 2000-12-20 国际商业机器公司 监视和处理数据处理系统中相关线程事件的方法和设备
CN1400529A (zh) * 2001-07-30 2003-03-05 华为技术有限公司 一种实时嵌入系统的故障定位方法
CN1595368A (zh) * 2003-09-13 2005-03-16 华为技术有限公司 多任务系统的异常监控装置及其方法
CN1605987A (zh) * 2004-11-17 2005-04-13 中兴通讯股份有限公司 一种多线程系统中实现实时监控各线程状态的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1277387A (zh) * 1999-06-10 2000-12-20 国际商业机器公司 监视和处理数据处理系统中相关线程事件的方法和设备
CN1400529A (zh) * 2001-07-30 2003-03-05 华为技术有限公司 一种实时嵌入系统的故障定位方法
CN1595368A (zh) * 2003-09-13 2005-03-16 华为技术有限公司 多任务系统的异常监控装置及其方法
CN1605987A (zh) * 2004-11-17 2005-04-13 中兴通讯股份有限公司 一种多线程系统中实现实时监控各线程状态的方法

Also Published As

Publication number Publication date
CN101458640A (zh) 2009-06-17

Similar Documents

Publication Publication Date Title
CN101458640B (zh) 可监控多线程状态的系统及其监控方法
CN100359481C (zh) 多任务系统的异常监控装置及其方法
US7827560B2 (en) System and method for time controlled program execution
WO2022007594A1 (zh) 分布式任务调度的方法及系统
US8504753B2 (en) Suspendable interrupts for processor idle management
CN102779072B (zh) 一种嵌入式系统及其应用进程的休眠与唤醒方法
CN108536531B (zh) 一种基于单片机的任务调度和电源管理方法
CN102455940B (zh) 一种定时器和异步事件的处理方法及系统
CN109684060B (zh) 一种多类型时间关键任务的混合调度方法
US20160357539A1 (en) Device context monitoring
US8713348B2 (en) Apparatus for performing timer management regarding a system timer scheduler service, and associated method
CN112530056A (zh) 降低智能门锁功耗的方法、智能门锁和存储介质
US10558402B2 (en) Terminal apparatus, operation information collection system, non-transitory computer-readable storage medium, and method of operating terminal apparatus
TW201737084A (zh) 異常監控方法及裝置
CN105204857A (zh) 一种基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法
US8132171B2 (en) Method of controlling thread access to a synchronization object
CN105786552A (zh) 一种内存清理方法和电子设备
CN104346563A (zh) 一种信息处理的方法及电子设备
WO2014136182A1 (ja) 空気調和機の管理装置及び方法
WO2013079472A2 (en) Processing event data streams to recognize event patterns, with conditional query instance shifting for load balancing
CA2767782C (en) Suspendable interrupts for processor idle management
CN109947015B (zh) 任务的执行方法及主控制器
JP2008217628A (ja) Cpuの省電力システム及び省電力方法
CN115640136A (zh) 变电站系统的控制方法、主处理器、协作处理器及系统
US7809968B2 (en) Method and system for managing ecosystem sleep

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120523

Termination date: 20121214