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

文档序号:6613453阅读:189来源:国知局
专利名称:可监控多线程状态的系统及其监控方法
可监控多线程状态的系统及其监控方法
技术领域
本发明系提供一种可监控多线程状态的系统及其监控方法,特别是有关于
利用一看门狗(watch dog)定时器,以监控多个线程的技术领域。背景技术
现代的电子装置或信息系统中,操作系统(如Linux或Windows)常需要同时处理许多重要的任务,而这些任务亦常经由多个线程(Thread)分头并进来加以完成。如果这些线程其中的一出现问题,例如操作系统的资源被单一线程全部占用或锁住(Lock)而使得其它线程无法使用、线程处于无穷循环状态而许久没有响应、或者是硬件出现问题而造成线程无法顺利执行…等等,皆会导致操作系统无法正常运作甚至当机,若此时又无人监控并立刻处理,便很容易地造成个人和企业莫大的损失。因此,如何利用监控线程的状态,来达到监控操作系统的运作情形,乃至于发现线程出现异常时,能立即且自动地对线程或操作系统进行处理,以随时保持操作系统正常运作,非常值得大家的重视和深入探讨。
请参阅图l,为现有技术监控多线程状态的方法示意图。图中,此方法主要设定一线程为监控线程11,而其它线程为被监控线程12。此监控线程11系用以定时与被监控线程12联系,以获得每个线程的工作状态,每个被监控线程12都需于监控线程11发出点名消息141时,实时回馈点名应答消息142,以告知本线程的工作状态和其它信息。另外,监控线程ll亦维护一个包含每个线程状态的信息表,操作系统则根据各个线程的不同状态采取不一样的策略。再者,监控线程ll设置一定时器,用以定时触发点名事件,以发送点名消息141给所有被监控线程12,并设置等待应答的超时长度。当被监控线程12发生点名应答超时143时,监控线程11累加被监控线程12的超时次数,于超时次数超过一默认值时,便将被监控线程12变为僵死状态,同时进行通知系统144的动作,以通知系统主控线程13。
上述现有技术的缺点,在于此方法并未对监控线程ll进行监控,若是监控线程ll本身出现异常时,则无法得知问题所在。另外,此方法需耗费部份资源,以维护一条监控线程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来实现本发明的系统,用以监控于一Li皿x操作系统33下运作的多个线程32。看门狗定时器31至少包含一计时单元311及一监控单元312,此计时单元311用以产生一计数值3111,而监控单元312则监控第一线程321及其它线程322所进行的一刷新动作。
一开始时,先对需要被监控的线程32,依照其刷新频率由大到小排序完成。假设这些线程32共有第一线程321、第二线程、…、第n线程,其刷新频率各为第一刷新频率(fl)、第二刷新频率(f2)、…、第n刷新频率(fn),且fl>=f2〉= 〉=fn。其中,第一线程321具有一最大刷新频率3211,即第一刷新频率(fl)等于最大刷新频率3211,而第二线程一第n线程则归为其它线程322。在Linux操作系统33启动后,按照最大刷新频率3211设置看门狗定时器31,亦即将看门狗定时器31的刷新周期设定为1/fl。
当第一线程321进行刷新动作时,先检测其它线程322的刷新次数3222是否符合特定要求3223。例如,其它线程322的刷新次数3222是否与第一刷新次数3212成一比例关系,或者是说,其它线程322的刷新次数3222除以刷新频率3221是否大约等于第一刷新次数3212除以最大刷新频率3211。举个例子,假设第一线程321的第一刷新次数3212为tl,而其它线程322如第m线程(2=〈m=〈n)的刷新次数为tm,刷新频率为fm,那么tm/fm应大约等于tl/f 1,即(tm/fm) —(tl/fl)。如果tm/fm远小于tl/fl,例如(tm/fm) 〈 (tl/f 1+1),则表示第m线程的刷新次数tni不够,亦即第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产生溢位前会被归零。
权利要求
1、一种可监控多线程状态的系统,用以监控于一操作系统下运作的若干个线程,且一第一线程于这些线程的刷新频率中具有一最大刷新频率,其特征在于,该系统至少包含一计时单元,用以产生一计数值;以及一监控单元,系监控该第一线程及其它线程所进行的一刷新动作,其中当该第一线程进行该刷新动作时,若其它线程的刷新次数其中之一未达一特定要求,则该监控单元对该操作系统进行一复位(Reset)动作,若其它线程的刷新次数达到该特定要求,则该第一线程更新其一第一刷新次数,并对该计时单元进行该刷新动作以重数该计数值,当其它线程进行该刷新动作时,则其它线程更新其刷新次数。
2、 如权利要求1所述的系统,其特征在于,该系统包括为一看门狗定时器。
3、 如权利要求l所述的系统,其特征在于,该操作系统包括为一 Linux操 作系统或一 Windows操作系统。
4、 如权利要求l所述的系统,其特征在于,这些线程的刷新频率由大到小 或由小到大被排序。
5、 如权利要求l所述的系统,其特征在于,该第一刷新次数及其它线程的 刷新次数于该第一刷新次数产生溢位前被归零。
6、 如权利要求1所述的系统,其特征在于,该特定要求包括为其它线程的 刷新次数与该第一刷新次数成一比例关系。
7、 如权利要求l所述的系统,其特征在于,非第一线程的线程其中的一刷 新次数未达该特定要求时,则该第一线程系设置一标志,以标明其它线程其中 的一出现异常,而导致该操作系统执行一复位动作。
8、 如权利要求l所述的系统,其特征在于,该复位动作包括为重新启动或 关闭该操作系统。
9、 一种监控多线程状态的方法,用以监控于一操作系统下运作的若干个线 程,且一第一线程于这些线程的刷新频率中具有一最大刷新频率,其特征在于, 该方法至少包含通过一计时单元产生一计数值;利用一监控单元监控该第一线程及其它线程所进行的一刷新动作; 当该第一线程进行该刷新动作时,若其它线程的刷新次数其中之一未达一 特定要求,则该监控单元对该操作系统进行一复位动作,若其它线程的刷新次 数达到该特定要求,则该第一线程更新其一第一刷新次数,并对该计时单元进 行该刷新动作以重数该计数值;以及当其它线程进行该刷新动作时,则其它线程更新其刷新次数。
10、 如权利要求9所述的方法,其特征在于,该操作系统包括为一 Linux 操作系统或一 Windows操作系统。
11、 如权利要求9所述的方法,其特征在于,这些线程的刷新频率由大到 小或由小到大被排序。
12、 如权利要求9所述的方法,其特征在于,该第一刷新次数及其它线程 的刷新次数于该第一刷新次数产生溢位前被归零。
13、 如权利要求9所述的方法,其特征在于,该特定要求包括为其它线程 的刷新次数与该第一刷新次数成一比例关系。
14、 如权利要求9所述的方法,其特征在于,若其它线程其中的一刷新次 数未达该特定要求,则该第一线程系设置一标志,以标明其它线程其中的一出 现异常,而导致该操作系统被复位。
15、 如权利要求9所述的方法,其特征在于,该复位动作包括为重新启动 或关闭该操作系统。
全文摘要
本发明揭示一种可监控多线程状态的系统及其监控方法。此系统包含一用以产生一计数值的计时单元;一监控第一线程及其它线程所进行的一刷新动作的监控单元。此方法包含步骤通过一计时单元产生一计数值;利用一监控单元监控第一线程及其它线程所进行的一刷新动作;当第一线程进行刷新动作时,若其它线程的刷新次数其中之一未达一特定要求,则监控单元对操作系统进行一复位动作。若其它线程的刷新次数达到特定要求,则第一线程更新其一第一刷新次数,并对计时单元进行刷新动作以重数计数值;当其它线程进行刷新动作时,则其它线程更新其刷新次数。从而除可轻易监控所有线程外,亦不需耗费资源维护一监控线程及一信息表,作法简单容易。
文档编号G06F11/00GK101458640SQ200710172370
公开日2009年6月17日 申请日期2007年12月14日 优先权日2007年12月14日
发明者臧东明 申请人:环达电脑(上海)有限公司;神达电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1