一种实时指示计算机系统运行状态的装置及方法

文档序号:6642753阅读:177来源:国知局
专利名称:一种实时指示计算机系统运行状态的装置及方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种实时指示计算机系统运行状态的装置及方法。
背景技术
在计算机系统运行过程中,通常需要了解中央处理器(CPU)的负荷状态,来掌握计算机系统运行状态,通过查看和记录CPU负荷状态,可以了解系统运行状态是繁忙,还是空闲,或者是否异常,用于改进和优化计算机系统软硬件设计,以及定位系统问题。
从物理意义上来说,计算机系统上电后,CPU只要在运行指令就处于运行状态,没有运行指令就处于空闲状态。但在实际的应用系统,需要区分CPU正在执行我们所要求的工作任务还是在等待任务,如果CPU正在执行我们所要求的任务,就认为CPU处在运行状态,如果CPU正在等待任务的执行,就认为CPU处在空闲状态。
在运行了多任务操作系统的计算机系统中,当有数据需要处理时,多任务操作系统就会使CPU处于运行状态,当没有数据处理时,多任务操作系统就会使CPU处于空闲状态,CPU的运行状态就在多任务操作系统的控制下在运行状态和空闲状态间快速频繁切换。计算机系统需要处理的数据量越大,在单位时间内CPU处于运行状态的时间就会越长,处于空闲状态的时间就会越短。通常在统计周期内CPU处于运行状态的时长与统计周期的百分比值称为CPU负荷或者称为CPU占用率。
CPU负荷是一个统计值,CPU负荷的计算一般由操作系统实现,也可以由应用程序实现,计算CPU负荷比较常用的一种方法是在多任务操作系统中启动一个优先级最低的空闲任务,当系统没有数据处理时,操作系统就会使CPU执行空闲任务;当系统有数据需要处理时,操作系统就会使CPU执行其它任务,对执行空闲任务的时长或者执行其它任务的时长进行统计,就可以计算出统计周期内的CPU负荷。CPU负荷的统计周期可以设置,对一般的应用来说通常设置为1秒至5秒之间。
在多任务操作系统中,通常可以注册任务切换钩子处理程序,多任务操作系统通常以任务为单位对CPU进行调度,在具体操作系统中任务可以是线程或者进程。当操作系统在进行任务切换,即中断当前正在运行的任务转而去执行另外一个任务时,就会自动执行任务切换钩子处理程序,并会把切换前后两个任务的信息作为参数传到任务切换钩子处理程序中。不同的操作系统提供的任务切换钩子的形式和用法可能会不同。
现有技术一关于指示计算机系统运行状态的方案为在多任务操作系统中,CPU负荷计算出来后,应用程序读取CPU负荷,通过显示装置以文本或者图形的方式指示出来;显示装置通常包括显示卡、显示接口、监视器等装置;在服务器应用系统中,显示卡通常安装或者嵌入在计算机系统中,监视器通过通用的物理显示接口与计算机系统中的显示卡相连,或者通过网口、串口等方式与远程的显示装置相连;在嵌入式系统应用系统中,显示装置通常都安装在计算机系统外部,需要通过网口、串口等方式与外部或者远程显示装置相连。
该现有技术一的缺点在于1)需要一些复杂的显示装置才能够获取和指示CPU负荷信息和系统状态信息,操作和使用不方便;2)如果系统出现异常或者故障,或者通信接口不能正常通信,或者没有合适的外部显示装置的情况下,用户将无法获得系统的运行状态,不利于用户对系统故障的定位和解决;3)由于CPU负荷的计算基于统计原理,得出结果都是上一统计周期的CPU负荷,实时性不强。
现有技术二关于指示计算机系统运行状态的方案为在计算机系统中,用一个简易的指示装置,如LED(发光二极管)来指示系统运行状态。指示的方式如当系统正常运行时LED周期性的一亮一灭,或者周期性的闪烁。LED的点亮和熄灭操作是通过定时装置产生的中断来控制的,当系统出现程序跑飞、死机或者硬件出现故障等情况,并导致CPU不能正确响应定时装置产生的硬中断时,LED因没有得到正确控制就会出现常亮、常灭或者其它异常状态,用户就可以通过观察LED指示的状态来大致判断系统是否出现故障或者异常情况。指示方式也可以是通过LED常亮表示系统正常,LED熄灭表示系统异常。或者采用多个LED来指示系统的多种异常情况。
该现有技术二的缺点在于由于LED指示灯通常只用周期性的点亮和熄灭或者常亮常灭来指示系统是否在正常运行,用户只能通过它来了解系统是否出现故障,而无法通过它来获取CPU的运行负荷信息。

发明内容
本发明的目的在于提供一种实时指示计算机系统运行状态的装置及方法,通过指示装置的闪烁频率实时地指示计算机系统的运行状态和CPU的运行负荷,对有效定位系统故障带来方便。
本发明的目的是通过以下技术方案实现的一种实时指示计算机系统运行状态的装置,包括指示装置,还包括定时控制装置,与指示装置相连,用于根据CPU负荷状态信息获取装置发来的指示装置的闪烁频率控制指示装置的闪烁;CPU负荷状态信息获取装置,与所述定时控制装置相连,用于获取CPU负荷状态信息,确定系统状态,并根据所述系统状态确定指示装置的闪烁频率,传送给定时控制装置。
所述指示装置用于指示系统运行状态,可以动态显示两种状态,并且能够在两种状态间快速切换实现闪烁显示,两种状态的显示被CPU负荷状态信息获取装置控制。
所述定时控制装置包括中断处理模块,用于定时产生中断,通过中断处理模块控制指示装置的闪烁频率。
所述定时控制装置还包括中断计数器,用于累计所述定时控制装置的中断次数。
一种实时指示计算机系统运行状态的方法,包括A、CPU负荷状态信息获取装置获取CPU负荷状态信息,并根据所述CPU负荷状态信息确定系统状态;B、根据所述系统状态确定指示装置闪烁频率,传送给定时控制装置;C、定时控制装置中的中断处理模块根据所述确定的指示装置闪烁频率控制指示装置的闪烁。
所述步骤A获取CPU负荷状态信息的方法包括A1、CPU负荷状态信息获取装置运行一空闲任务,并注册一任务切换钩子处理程序来获取CPU负荷状态信息。
所述步骤A1包括A11、系统从当前任务切换到另一任务时,执行任务切换钩子处理程序;A12、任务切换钩子处理程序获取切换前后两个任务的信息,判断系统状态;
A13、任务切换钩子处理程序根据系统状态信息确定指示装置闪烁频率,传送给定时控制装置。
所述步骤A12包括A121、任务切换钩子处理程序根据任务切换前后两个任务的优先级判断系统状态;和/或,根据任务切换前后两个任务的任务名称或任务标识判断系统状态。
所述步骤A121具体包括A1211、系统从空闲任务切换到非空闲任务时,判定系统从空闲态切换到运行态;或,A1212、系统从非空闲任务切换到空闲任务时,判定系统从运行态切换到空闲态;或,A1213、系统切换前后两个任务都为非空闲任务,判定系统仍然处于运行态。
所述步骤A包括A2、CPU负荷状态信息获取装置直接定期获取系统计算出来的CPU负荷统计值。
所述步骤B包括B1、设置CPU负荷状态信息与指示装置闪烁频率的对应关系;B2、根据所述CPU负荷状态信息及所述对应关系确定指示装置的闪烁频率。
当选择任务切换钩子处理程序获取CPU负荷状态信息时,所述步骤B1包括B11、设置CPU空闲态时,指示装置的闪烁频率为最小值;B12、设置CPU运行态时,指示装置的闪烁频率为最大值;B13、设置CPU在所述空闲态与运行态之间切换时,指示装置闪烁频率为所述最大值与最小值之间的中间值。
当选择直接获取系统计算出来的CPU负荷统计值时,所述步骤B1包括B14、将CPU负荷范围分段,每一段对应一个指示装置闪烁频率;B15、设置CPU负荷在两段之间切换时,指示装置闪烁频率为两段对应的闪烁频率的中间值。
所述步骤B2包括定期获取系统计算出来的CPU负荷统计值,根据所述对应关系确定指示装置闪烁频率。
所述步骤B1还包括B16、设置CPU在所述空闲态与运行态之间切换时,指示装置闪烁频率从中间值到最大值的递增步长;B17、设置CPU在所述空闲态与运行态之间切换时,指示装置闪烁频率从中间值到最小值的递减步长。
所述步骤C包括C1、由所述确定的指示装置的闪烁频率计算两次闪烁的间隔时长,由间隔时长计算两次闪烁间隔需要的中断处理模块的中断次数;C2、将所述中断处理模块中断次数与实际中断计数器统计的中断次数比较,当所述中断处理模块中断次数小于实际中断计数器统计的中断次数时,点亮当前熄灭的指示装置;C3、当判定为需要点亮指示装置时,中断计数器值清零;C4、根据递增/递减步长更新闪烁频率。
所述步骤C2包括点亮指示装置后在下一次中断处理模块中断处理过程中将指示装置熄灭,实现指示装置的闪烁。
所述方法还包括
D、根据指示装置的闪烁频率判断系统运行状态。
由上述本发明提供的技术方案可以看出,本发明通过控制指示装置的闪烁频率来指示计算机系统的运行状态,用户通过观察指示装置就能够知道系统是否故障,并能够了解CPU负荷状态,而不需要通常的显示装置,对定位系统故障带来极大方便。


图1为本发明所述装置结构示意图;图2为本发明所述方法操作流程图。
具体实施例方式
本发明的核心思想是提供一种实时指示计算机系统运行状态的装置及方法,通过指示装置的闪烁频率实时地指示计算机系统的运行状态和CPU的运行负荷,指示装置闪烁频率越高表示系统越忙CPU负荷越重;指示装置闪烁频率越低表示系统越空闲CPU负荷越轻;当指示装置常亮或者常灭时表示系统出现了故障;当指示装置长时间不间断地快速闪烁时,说明系统超负荷运行,或者系统已经出现故障。
本发明提供一种实时指示计算机系统运行状态的装置,如图1所示,所述装置包括指示装置、定时控制装置、CPU负荷状态信息获取装置。所述指示装置嵌入到计算机硬件系统中,可以动态显示系统两种状态,并且能够在两种状态间快速切换来实现闪烁,两种状态的显示能够被CPU负荷状态信息获取装置控制,该指示装置可以为LED;所述定时控制装置与指示装置和CPU负荷状态信息获取装置相连,其包括终端处理模块可以定时产生中断,根据CPU负荷状态信息获取装置确定的指示装置的闪烁频率控制指示装置的闪烁过程,所述定时中断的频率可以根据需要设置,如每秒100次,该定时控制装置还包括中断计数器,用于累计中断次数;所述CPU负荷状态信息获取装置与所述定时控制装置相连,用于在操作系统进行任务切换,即中断当前任务执行另一个任务时,获取任务切换前后两个任务的信息,通过切换前后两个任务的优先级、任务名称或任务标识等信息,判断CPU运行状态,并根据所述CPU运行状态确定指示装置的闪烁频率,传送给定时控制装置;该过程的完成可通过注册任务切换钩子处理程序来完成,或通过直接获取系统计算出来的CPU负荷统计值来完成。
本发明还提供一种实时指示计算机系统运行状态的方法,实施例一如图2所示,该方法具体包括如下步骤,下面以指示装置为LED为例进行说明步骤10CPU负荷状态信息获取装置运行一个空闲任务,并注册一个任务切换钩子处理程序;在多任务操作系统中启动一个优先级最低的空闲任务,当系统处于空闲状态时,操作系统会使CPU运行该空闲任务;如果系统中已经运行了一个优先级最低的任务,则此任务就是空闲任务,不需要再启动一个空闲任务;注册一个任务切换钩子处理程序,用于获取CPU负荷状态信息;当操作系统进行任务切换时,会自动执行该任务切换钩子处理程序,并把任务切换前后两个任务的相关信息,包括任务优先级、任务名称和任务标识等信息通知给任务切换钩子处理程序。
步骤11任务切换钩子处理程序获得CPU负荷状态信息,确定LED闪烁频率传送给定时控制装置;任务切换钩子处理程序获取切换前后两个任务的信息,通过比较两个任务的优先级、任务名称或者任务标识等信息,就可以判断系统是从其它任务切换到空闲任务,还是从空闲任务切换到其它任务;如果系统是从其它任务切换到空闲任务,则判定系统从运行态切换到空闲态;如果系统是从空闲任务切换到其它任务,则判定系统从空闲态切换到运行态;如果任务切换时的两个任务都不是空闲任务,则系统仍然处于运行态,CPU运行状态不用更新;当CPU运行状态需要更新时,将根据上述系统运行状态信息计算LED闪烁频率协同预先设置的递增/递减步长传送给定时控制装置;在任务切换钩子处理程序中根据上述系统运行状态信息计算LED闪烁频率的过程具体包括定义CPU处于空闲态时,LED闪烁频率最慢,最小闪烁频率可以根据需要设置,如设置每秒闪烁1次;CPU处于运行态时,LED闪烁频率最快,最大闪烁频率可以根据需要设置,如设置每秒闪烁20次。由于任务切换钩子处理程序只能判定CPU运行处于空闲和运行两种状态,CPU运行状态在计算机系统运行过程中动态频繁地在这两种状态下切换,LED闪烁频率也在最小值和最大值两者之间切换;为了使由状态切换控制的LED闪烁频率的变化看起来是平滑的,而且更能反映实际的CPU负荷状态的动态变化,在任务切换钩子处理程序中判定CPU进入运行态时,不是直接将LED闪烁频率设置为最大值,而是设置为最小值与最大值之间的某个中间值作为LED闪烁频率,再根据预先设定的递增步长逐渐递增到最大值;同样,当任务切换钩子处理程序中判定CPU进入空闲状态时,也不是直接将LED闪烁频率设置为最小值,而是设置最小值与最大值之间的某个中间值作为LED闪烁频率,再根据预先设定的递减步长逐渐递减到最小值;闪烁频率的递增/递减步长可以根据实际情况预先设置;步骤12定时控制装置获知上述LED闪烁频率后,由中断处理模块控制LED的闪烁;当LED处于点亮状态时,将LED熄灭,以实现LED闪烁的效果;中断处理模块控制LED点亮的过程具体包括由上述任务切换钩子处理程序确定的LED闪烁频率或经递增/递减更新后的LED闪烁频率,可以计算出两次闪烁的间隔时长,由闪烁间隔时长和中断处理模块的定时中断频率可以计算出两次闪烁间隔需要的中断处理模块中断次数,将该中断次数与中断计数器值比较,当中断计数器值大于/等于上述计算出的中断次数值时,将LED点亮,并把中断计数器值清零;所述中断计数器,在每次中断处理模块中断处理程序中加1;当LED闪烁频率既不是最大值也不是最小值时,根据递增/递减步长更新闪烁频率,当计算出来的闪烁频率小于最小值时,置闪烁频率为最小值,当计算出来的闪烁频率大于最大值时,置闪烁频率为最大值;更新后的LED闪烁频率将用于下次中断处理程序中对LED闪烁频率的控制;在LED点亮后的几次中断处理模块中断处理流程中将LED熄灭,通常如果定时中断频率为100次/秒,在点亮LED后的下一次中断处理模块中断处理过程中将LED熄灭即可,当LED点亮后在短时间内熄灭,我们看起来就是LED在闪烁,LED从点亮到熄灭的时长可以根据情况确定;步骤13根据LED闪烁情况,判断CPU运行状态;根据LED闪烁状态可以判断系统是否出现异常情况,当LED常亮或LED常灭,说明CPU不能正常控制LED的状态,可判定系统出现了故障;当LED长时间不间断的以最快的速度闪烁,则说明CPU长时间处于高负荷状态,可判定为系统超负荷运行,有必要对系统进行优化或处理;出现这种情况也可能说明系统程序进入了某个死循环,或者操作系统已经无法正常进行任务调度,可判定为系统已经出现故障,再结合其他的定位信息,能够为定位系统故障提供有益的帮助;当指示装置的闪烁频率长时间一直处于同一种状态时,也说明系统可能已经出现故障。
根据LED闪烁频率还可以大致了解CPU负荷状态,闪烁频率越快表示CPU负荷越重,系统越繁忙;闪烁频率越慢表示CPU负荷越轻,系统越空闲,而且闪烁频率指示的是实时的CPU负荷状态。
上述为采用任务切换钩子处理程序实现获取系统运行状态,本发明另一所述实施例二,同样实现了用LED闪烁频率指示系统运行状态和CPU负荷状态的功能,在CPU负荷统计周期小于1秒的情况下能够得到较好的效果,统计周期设置一个较小的值如0.5秒可以使实时性更强。
综上所述,本发明通过控制指示装置的闪烁频率来指示计算机系统的运行状态,用户通过观察指示装置的状态就能够知道系统是否故障,并能够了解CPU负荷状态,而不需要通常的复杂的显示装置,对定位系统故障带来极大方便。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种实时指示计算机系统运行状态的装置,包括指示装置,其特征在于,还包括定时控制装置,与指示装置相连,用于根据CPU负荷状态信息获取装置发来的指示装置的闪烁频率控制指示装置的闪烁;CPU负荷状态信息获取装置,与所述定时控制装置相连,用于获取CPU负荷状态信息,确定系统状态,并根据所述系统状态确定指示装置的闪烁频率,传送给定时控制装置。
2.如权利要求1所述的一种实时指示计算机系统运行状态的装置,其特征在于,所述指示装置用于指示系统运行状态,可以动态显示两种状态,并且能够在两种状态间快速切换实现闪烁显示,两种状态的显示被CPU负荷状态信息获取装置控制。
3.如权利要求1所述的一种实时指示计算机系统运行状态的装置,其特征在于,所述定时控制装置包括中断处理模块,用于定时产生中断,通过中断处理模块控制指示装置的闪烁频率。
4.如权利要求3所述的一种实时指示计算机系统运行状态的装置,其特征在于,所述定时控制装置还包括中断计数器,用于累计所述定时控制装置的中断次数。
5.一种实时指示计算机系统运行状态的方法,其特征在于,包括A、CPU负荷状态信息获取装置获取CPU负荷状态信息,并根据所述CPU负荷状态信息确定系统状态;B、根据所述系统状态确定指示装置闪烁频率,传送给定时控制装置;C、定时控制装置中的中断处理模块根据所述确定的指示装置闪烁频率控制指示装置的闪烁。
6.如权利要求5所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述步骤A获取CPU负荷状态信息的方法包括A1、CPU负荷状态信息获取装置运行一空闲任务,并注册一任务切换钩子处理程序来获取CPU负荷状态信息。
7.如权利要求6所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述步骤A1包括A11、系统从当前任务切换到另一任务时,执行任务切换钩子处理程序;A12、任务切换钩子处理程序获取切换前后两个任务的信息,判断系统状态;A13、任务切换钩子处理程序根据系统状态信息确定指示装置闪烁频率,传送给定时控制装置。
8.如权利要求7所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述步骤A12包括A121、任务切换钩子处理程序根据任务切换前后两个任务的优先级判断系统状态;和/或,根据任务切换前后两个任务的任务名称或任务标识判断系统状态。
9.如权利要求8所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述步骤A121具体包括A1211、系统从空闲任务切换到非空闲任务时,判定系统从空闲态切换到运行态;或,A1212、系统从非空闲任务切换到空闲任务时,判定系统从运行态切换到空闲态;或,A1213、系统切换前后两个任务都为非空闲任务,判定系统仍然处于运行态。
10.如权利要求5所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述步骤A包括A2、CPU负荷状态信息获取装置直接定期获取系统计算出来的CPU负荷统计值。
11.如权利要求5所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述步骤B包括B1、设置CPU负荷状态信息与指示装置闪烁频率的对应关系;B2、根据所述CPU负荷状态信息及所述对应关系确定指示装置的闪烁频率。
12.如权利要求11所述的一种实时指示计算机系统运行状态的方法,其特征在于,当选择任务切换钩子处理程序获取CPU负荷状态信息时,所述步骤B1包括B11、设置CPU空闲态时,指示装置的闪烁频率为最小值;B12、设置CPU运行态时,指示装置的闪烁频率为最大值;B13、设置CPU在所述空闲态与运行态之间切换时,指示装置闪烁频率为所述最大值与最小值之间的中间值。
13.如权利要求11所述的一种实时指示计算机系统运行状态的方法,其特征在于,当选择直接获取系统计算出来的CPU负荷统计值时,所述步骤B1包括B14、将CPU负荷范围分段,每一段对应一个指示装置闪烁频率;B15、设置CPU负荷在两段之间切换时,指示装置闪烁频率为两段对应的闪烁频率的中间值。
14.如权利要求13所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述步骤B2包括定期获取系统计算出来的CPU负荷统计值,根据所述对应关系确定指示装置闪烁频率。
15.如权利要求12或13所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述步骤B1还包括B16、设置CPU在所述空闲态与运行态之间切换时,指示装置闪烁频率从中间值到最大值的递增步长;B17、设置CPU在所述空闲态与运行态之间切换时,指示装置闪烁频率从中间值到最小值的递减步长。
16.如权利要求5所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述步骤C包括C1、由所述确定的指示装置的闪烁频率计算两次闪烁的间隔时长,由间隔时长计算两次闪烁间隔需要的中断处理模块的中断次数;C2、将所述中断处理模块中断次数与实际中断计数器统计的中断次数比较,当所述中断处理模块中断次数小于实际中断计数器统计的中断次数时,点亮当前熄灭的指示装置;C3、当判定为需要点亮指示装置时,中断计数器值清零;C4、根据递增/递减步长更新闪烁频率。
17.如权利要求16所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述步骤C2包括点亮指示装置后在下一次中断处理模块中断处理过程中将指示装置熄灭,实现指示装置的闪烁。
18.如权利要求5所述的一种实时指示计算机系统运行状态的方法,其特征在于,所述方法还包括D、根据指示装置的闪烁频率判断系统运行状态。
全文摘要
本发明涉及计算机技术领域中一种实时指示计算机系统运行状态的装置及方法,通过指示装置的闪烁状态实时地指示计算机系统的运行状态和CPU的运行负荷,能对有效定位系统故障提供有益的帮助。本发明通过控制指示装置的闪烁情况来指示计算机系统的运行状态,用户通过观察指示装置闪烁情况就能够知道系统是否故障,并能够了解CPU负荷状态,而不需要通常的复杂的显示装置和设备,对定位系统故障带来极大方便。
文档编号G06F11/32GK1862506SQ20051009930
公开日2006年11月15日 申请日期2005年9月9日 优先权日2005年9月9日
发明者郑小春 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1