书签 分享 收藏 举报 版权申诉 / 30

进程属性的三维实时监控.pdf

  • 上传人:Y94****206
  • 文档编号:654617
  • 上传时间:2018-03-01
  • 格式:PDF
  • 页数:30
  • 大小:1.29MB
  • 摘要
    申请专利号:

    CN96112409.1

    申请日:

    1996.09.24

    公开号:

    CN1155695A

    公开日:

    1997.07.30

    当前法律状态:

    撤回

    有效性:

    无权

    法律详情:

    |||公开

    IPC分类号:

    G06F11/28; G06F11/30

    主分类号:

    G06F11/28; G06F11/30

    申请人:

    太阳微系统有限公司;

    发明人:

    H·穆勒; G·B·努恩斯; 赵强; N·辛哈尔

    地址:

    美国加利福尼亚州

    优先权:

    1995.09.25 US 533,175

    专利代理机构:

    中国专利代理(香港)有限公司

    代理人:

    王勇;傅康

    PDF完整版下载: PDF下载
    内容摘要

    这是一种改进的技术,该技术使用三维图像来监控计算机进程及其属性。这种三维图像是通过显示与计算机进程及其属性相关的图形对象来形成的。图像中各种图形对象之间的物理关系较好地描述了各进程及其属性之间的实际关系。在图像中,运行或激活进程的计算机也可以由图形对象来表示。当所监控的计算机进程的属性发生变化时,迅速调整图形对象的特征并更新三维图像,以反映这一变化。通过改变图形对象的特征,可以使用户直观地注意到三维图像中图形对象所发生的变化,而这种变化指示所监控的进程的属性所发生的变化。

    权利要求书

    1: 一种性能监控系统,用于与计算机网络相关的各个计算机进程,其中 的计算机网络至少应有一台第一计算机和一台第二计算机并且每台计算机 都能同时运行多个计算机进程,上述系统包括: 一个第一监控进程,位于拥有第一进程集的第一台计算机上,用于监控 第一进程集的属性; 一个第二监控进程,位于拥有第二进程集的第二台计算机上,用于监控 第二进程集的属性;以及 一个可视化进程,该进程能够与上述第一和第二监控进程进行通讯,用 于生成包含图形对象的三维图像,其中的图形对象表示所监控的第一和第 二进程集及其属性。
    2: 如权利要求1所述的系统,其中,对于图像中的一个或多个图形对象, 当所监控的相应属性发生变化时,该图形对象至少应有一个特征跟着变 化。
    3: 如权利要求2所述的系统,其中,发生变化的图形对象属性选自如下 之一:高、宽、颜色、透明度、形状、角度、纹理、运动和声音。
    4: 如权利要求2所述的系统,其中,三维图像实时更新以反映第一和第 二进程集中属性的变化。
    5: 如权利要求2所述的系统,其中,由上述可视化进程生成的三维图像 对于一个或多个所监控的属性包括一个在视觉上可区分的图形对象。
    6: 如权利要求2所述的系统,其中,上述三维图像中还包括表示第一和 第二计算机的图形对象,并且,由上述可视化进程生成的三维图像对于进 程和计算机分别包括在视觉上可区分的图形形状,以便观察该图像的用户 能够区分出进程和计算机来。
    7: 如权利要求2所述的系统,其中,由上述可视化进程生成的三维图像 对于一个或多个所监控的属性包括多种在视觉上可区分的图形形状。
    8: 如权利要求2所述的系统,其中,由上述可视化进程生成的三维图像 对于某一特定计算机上的一个或多个所监控的属性包括多种在视觉上可区 分的颜色。
    9: 如权利要求2所述的系统,其中,由上述可视化进程生成的三维图像 中还使用动画来表示一个或多个属性的特征。
    10: 如权利要求2所述的系统,其中,由上述可视化进程生成的三维图像 中还使用声音来表示一个或多个进程的状态或者其中一个或多个属性的特 征。
    11: 如权利要求2所述的系统,其中,上述三维图像显示在一个计算机系 统的显示屏幕上。
    12: 一个在计算机上实现的方法,用于可视化计算机系统中进程的性能, 上述方法包括:     (a)提供计算机系统的三维图形模型,对计算机系统中的每个进程都有一 个图形对象; (b)在显示屏幕上显示上述三维图形模型; (c)监控所监视的进程的属性;以及 (d)根据所监控的属性变更图形对象的特征,更新显示屏幕上的三维图形 模型。
    13: 如权利要求12所述的方法,其中,上述方法还包括:(e)重复(c)和(d)。
    14: 如权利要求13所述的方法,其中,上述重复(e)的频率应使用户在观 察显示屏幕时有这样一种印象,即相应于所监控的进程性能的变化,对所 显示的三维模型的更新是近于实时的。
    15: 如权利要求12所述的方法,其中,上述更新(d)包括: (d1)判断所监控的属性是否发生了变化; (d2)当在上述(d1)中判定所监控的属性发生了变化时,根据所监控的属 性变更图形对象的特征;以及 (d3)如果变更了(d2)上述图形对象,则通过重新显示至少是变更过的图 形对象,在显示屏幕上更新显示的三维图形模型。
    16: 如权利要求15所述的方法,其中,变更的图形对象的特征是下述性 质之一:高、宽、颜色、透明度、形状、角度、纹理、运动和声音。
    17: 如权利要求16所述的方法,其中,变更的图形对象的特征是下述两 个或多个性质的组合:高、宽、颜色、透明度、形状、角度、纹理、运动 和声音。
    18: 如权利要求12所述的方法,其中,上述三维图形模型直观地显示所 监控的进程性能是近于实时的。
    19: 如权利要求12所述的方法,其中,上述图形模型还包括用于直观地 表示进程的暂停或阻塞情况的图形对象。
    20: 一个计算机上实现的方法,用于监控计算机系统中的计算机进程,上 述方法包括: (a)为所监控的计算机进程及其属性提供图形对象; (b)获取相应于所监控的计算机进程属性的数据; (c)根据(b)中所获取的数据更新图形对象;以及 (d)将更新的图形对象直观地显示成所监控的计算机进程及其属性的三 维图像。
    21: 如权利要求20所述的方法,其中,上述计算机系统包括很多计算机, 而至少有一台计算机具有显示屏幕和输入设备,并且在该显示屏幕上提供 上述三维图像。
    22: 如权利要求21所述的方法,其中,上述方法还包括: (e)允许用户通过输入设备与三维图像进行交互,在所监控的计算机进程 中选择一个第一计算机进程,然后将该第一计算机进程从第一计算机移到 第二计算机上,这里的第一和第二计算机都在上述计算机系统中。
    23: 如权利要求22所述的方法,其中,上述允许(e)包括: (e1)在相应的显示屏幕上从显示出的图形对象中选择上述第一计算机进 程;以及 (e2)将所选取的图形对象拖至与第二计算机相对应的图形对象。
    24: 如权利要求20所述的方法,其中,上述方法还包括: (e)重复(b)至(d)。
    25: 如权利要求20所述的方法,其中,上述图形对象中有一个或多个是 三维图形对象。
    26: 如权利要求20所述的方法,其中,上述更新(c)和上述显示(d)共同操 作,以便能够以近于实时的速度直观地监控所监视的计算机进程及其属 性。
    27: 如权利要求20所述的方法,其中,上述更新(c)更新图形对象的特征, 上述特征选自如下性质:高、宽、颜色、透明度、形状、角度、纹理、运 动和声音。
    28: 如权利要求20所述的方法,其中,上述提供(a)还提供一图形对象用 于直观地表示计算机进程的暂停或阻塞情况。
    29: 一种计算机程序产品,包括: 一种计算机可用的媒介,上有计算机可读的代码,用于在一个计算机系 统中监控计算机进程。 上述计算机可读的代码包括: 第一计算机可读的程序代码设备,该设备经配置使一台计算机为所监控 的计算机进程及其属性有效地提供图形对象; 第二计算机可读的程序代码设备,该设备经配置使一台计算机有效地获 取对应于所监控的计算机进程属性的数据; 第三计算机可读的程序代码设备,该设备经配置使一台计算机根据所获 取的数据有效地更新图形对象;以及 第四计算机可读的程序代码设备,该设备经配置使一台计算机将经过更 新的图形对象有效、直观地显示成所监控的计算机进程及其属性的三维图 像。

    说明书


    进程属性的三维实时监控

        本发明涉及计算机程序的性能,更确切地说,涉及对计算机进程属性的监控。    

        为高性能计算机(如工作站)编写的计算机程序越来越复杂,要监控计算机上运行的计算机程序的性能也越来越困难。如今,因有面向对象的程序设计、并行程序设计、分布计算等,致使监控计算机上执行的操作变得十分复杂。

        在某些计算机上(如基于UNIX地计算机)计算机程序产生各种进程,或者说计算机进程,来完成程序设计的任务。因此,为了监控这种计算机程序的性能,就有必要在计算机系统上对该程序所产生的各种进程进行监控。通常,对这些计算机进程的检查很有限,仅能显示或打印这些进程及其某些属性的一个清单。这种清单可能列出进程是否正在运行、进程驻留内存的大小、状态、CPU使用情况、等等。但是,对这种清单或表格以及其它关于进程及其属性的二维表示,用户理解起来比较困难。并且,随着计算机程序复杂性的增加,对于这种清单(或其它二维视图)的理解的困难程度也随之增加。因此,对计算机系统的进程进行监控的传统技术面临着这样一个问题:没能按照一种有效的方式来表示与进程相关的数据,以便用户易理解这些数据及其与其它进程的关系,尤其是当计算机系统包含大量的进程和多个计算机时更是如此。

        另外,用于监控计算机程序的进程的传统监控技术基于快照的方式对进程进行监控。也就是说,对于进程的监视是在某一时刻。对于用户来说,清单、图表或其它二维视图中的进程信息已经有了一段延时。传统快照技术存在的问题是无法对进程的性能进行精确的监控,因为进行快照的速度总是比进程性能的变化速度要慢的多。

        由此可见,不管是关于进程的信息的表示方面,还是监控的频率方面,都显示出传统监控技术的不足之处。因此,需要一种近于实时的进程监控技术,其中关于进程的信息的表达方式能使用户快速、容易地理解所表达的内容。

        简单来说,本发明为计算机系统中计算机进程的直观监控产生一幅三维图像。

        具体来说,本发明涉及一种改进的技术,该技术使用三维图像来监控计算机进程及其属性。这种三维图像是通过显示与计算机进程及其属性相关的图形对象来形成的。图像中各种图形对象之间的物理关系较好地描述了各进程及其属性之间的实际关系。在图像中,运行或激活进程的计算机也可以由图形对象来表示。当所监控的计算机进程的属性发生变化时,迅速调整图形对象的特征并更新三维图像,以反映这一变化。通过改变图形对象的特征,可以使用户直观地注意到三维图像中图形对象所发生的变化,而这种变化指示所监控的进程的属性所发生的变化。

        本发明可以通过诸如一个系统、一种方法或一种计算机可读媒体等多种方式来实现。    

        作为一种监控各个计算机进程性能的系统(其中的进程与某个计算机网络相关,该网络至少有一个第一计算机和一个第二计算机,该第一和第二计算机都可能有许多并行运行的计算机进程),本发明的一个实施例包括:一个第一监控进程,位于有第一进程集的第一计算机上,用于监控第一进程集的属性;一个第二监控进程,位于有第二进程集的第二计算机上,用于监控第二进程集的属性;以及一个可视化进程,该进程能与第一和第二监控进程进行通讯,用于生成包括图形对象的三维图像,其中的图形对象表示第一和第二进程集以及第一和第二进程集的属性。当所监控的属性发生变化时,图像中相应的一个或多个图形对象的特征最好至少有一个随着变化。三维图像也最好实时更新,以反映第一和第二进程集中各属性的变化。进一步地,由可视化进程所生成的三维图像最好至少对一定数量的所监控的进程包括一个视觉上可区分的图形对象。监控进程通常使用一个或多个执行线程等来实现监控。

        作为计算机实现的、用于将计算机系统的进程性能可视化的一种方法,本发明的一个实施例包括:提供计算机系统的一个三维图形模型,其中有要监控的计算机系统的每个进程的图形对象;在显示屏幕上显示三维图形对象;监控所监控的进程的属性;以及根据所监控属性变更图形对象的特征,在显示屏幕上更新三维图形对象。此外,图形模型最好还包含一个用于直观地表示一个进程阻塞情况的图形对象。

        作为计算机实现的、用于监控计算机系统中计算机进程的一种方法,本发明的一个实施例包括:为所监控的计算机进程提供图形对象;获取对应于所监控的计算机进程属性的数据;根据所获取的数据更新图形对象;以及将更新的图形对象直观地显示成所监控的计算机进程及其属性的三维图像。作为可选项,该方法还可以允许用户通过输入设备与三维图像进行交互,选择所监控的一个第一计算机进程,然后将其从第一计算机移至第二计算机,其中第一和第二计算机都在上述计算机系统中。

        作为计算机程序产品,本发明的一个实施例包含一种计算机可用的媒体,上有计算机可读的代码,用于在一计算机系统中监控计算机进程。上述计算机可读的代码包括:第一计算机可读的程序代码设备,该设备经配置使一台计算机为所监控的计算机进程及其属性有效地提供图形对象;第二计算机可读的程序代码设备,该设备经配置使一台计算机有效地获取对应于所监控的计算机进程属性的数据;第三计算机可读的程序代码设备,该设备经配置使一台计算机根据所获取的数据有效地更新图形对象;以及第四计算机可读的程序代码设备,该设备经配置使一台计算机将经过更新的图形对象有效、直观地显示成所监控的计算机进程及其属性的三维图像。

        由本发明所生成的三维图像不仅便于显示有关计算机进程的较之以前更多的信息,而且以一种极容易理解和极逼真的方式来显示这些信息。本发明具有计算机进程及其属性的直观表示,这使得对于计算机系统中计算机进程的监控变得更加容易了。此外,负载平衡也可以由用户(例如系统管理员)很直观地来完成。

        下面的详细描述将结合附图和关于本发明原理的例示,由此将可看到本发明的其它方面和优点。

        根据下面结合附图的详细描述可以更容易地理解本发明。附图中的引用数字是依据结构单元来指定的。

        图1是本发明所使用的一种典型的网络分布的结构图;

        图2是适合于本发明使用的一台典型计算机的结构图;

        图3是依据本发明实施例的一个用于按三维方式可视化各个进程属性的进程监控系统的结构图;

        图4是实现图3中进程监控系统的进程的示意图;

        图5是依据本发明实施例的一个可视化进程和相关用户输入及图形对象的结构图;

        图6是依据本发明实施例的一个统计量收集线程的流程图;

        图7是依据本发明实施例的一个绘制线程的流程图;

        图8是一个视图,例示由本发明的实施例所生成的三维图像。

        下面将引用附图讲述本发明的实施例。不过,该领域的熟练技术人员将会很快地体会到这里参照附图给出的详细描述只是用于解释性目的的,本发明的范围远远超出这些实施例。

        本发明涉及监控计算机进程性能的一种改进技术。这种改进的技术使用三维图像来表示计算机进程及其属性。具体来说,就是为计算机进程及其属性建立图形对象。能够监控和以三维方式直观地显示给用户的属性包括:进程大小、消息流量、机器负载、进程中的对象个数、驻留进程大小、CPU使用情况和阻塞情况等。三维图像是通过在显示屏幕上显示图形对象来形成的。图像中各个图形对象之间的物理关系最好能表达各进程及其属性之间的实际关系。运行或激活进程的计算机也可以在图像中被表示成一个图形对象。

        此后,当计算机进程的属性发生变化时,迅速调整图形对象的特征并更新三维图像以反映所监控的计算机进程的属性的变化。通过变更图形对象的特征,可使用户直观地注意到三维图像中图形对象所发生的变化,这些变化指示所监控的进程的属性所发生的变化。图形对象的可以变更的特征包括形状、尺寸、分布、光线、纹理、表面属性、声音和行为(动画)。使用这种三维图像时,还按极易理解的方式来显示关于计算机进程的更多的信息(如属性)。

        下面首先定义几个术语,接着讨论适合于本发明的典型计算机系统,然后详细讨论本发明的实施例。

        这里所使用的术语“对象”是指封装的代码和数据包,可通过与该对象相关的预先定义的接口对其进行操纵。因此,对于该领域的熟练技术人员来说,这里的对象包含了用于定义通常的程序设计对象的基本性质。但是,“分布式对象”一般不同于通常的程序设计对象,它包括两个重要的特性。第一,分布式对象是多语言的。例如,分布式对象的接口可以使用一种接口定义语言来定义,该语言可以映射成很多种不同的程序设计语言。这种接口定义语言中有一个是OMG的IDL。第二,分布式对象一般是位置无关的,即分布式对象一般可以位于网络中的任何地方。这一点与通常的程序设计对象明显不同,后者一般与客户存在于同一地址空间。分布式对象可以是对象客户,也可以是对象服务器,这依赖于它们是在向其它对象发出请求还是在应答来自其它对象的请求。请求和应答一般通过一个对象请求中介(ORB)来完成。ORB知道各个对象的位置和状态。

        “分布式对象系统”或“分布式对象操作环境”是指一个包含分布式对象的系统,其中的对象通过ORB一类的中介进行通讯。

        这里所定义的“客户”是指向一个第二对象发出请求的实体。在该模型中,第二对象是指一个“服务器对象”或“目标对象”。因此,客户是从服务器那里引发操作或实现的。在一个分布式对象环境中,客户一般不需要具备实现一方的程序设计语言知识,而实现方通常也不必具备客户一方的程序设计语言知识,因为这里的对象要求具有多语言的特征。分布式对象环境中的客户和服务器只需按接口定义语言进行通讯。如上所述,客户向服务器发出的请求以及服务器给客户的应答是由ORB来处理的。应当指出的是,客户和服务器可以存在于同一个进程中、在同一台主机上或在两台不同的主机上。

        “对象接口”是一种由对象所提供的操作、属性和异常的规范。分布式对象的对象接口最好使用IDL来书写。如上面所提到的,对象是通过它们的接口来执行事务的。因此,使用接口可以使对象在事务中不必知道用于定义对象的方法和数据的程序设计语言。

        本发明最好用在一个基于面向对象程序设计的分布式操作环境(DOE或NEO)中。因此,就要考虑分布式对象。一般来说,分布式对象是在计算机进程下(由ORB和/或主计算机)实现的。计算机进程提供一熟知的和通用的框架,在该框架下计算机系统实现不同的执行线程。如果作一类比的话,计算机进程可以认为是一个计算机系统中所划分的一个域。

        在实际中,一个进程一般包括地址空间(即分配给该进程的那部分内存)、文件描述符集、进程标识号以及一个或多个执行线程(通常称为线程)。熟悉面向对象程序设计技术的人都知道,执行线程实质上就是计算机进程中执行点的顺序流。多线程系统允许在一个进程中并行地运行多个线程。关于线程、多线程进程和并行原理的详细描述请参阅RobertHagmann博士的“Concurrency Within DOE Object Implementations”一书,该书由SunSoft于1993年5月27日出版,版本号是0.91。此处对该书作为整体进行引用。

        通常(但不是必需的),依据本发明的分布式对象和计算机进程与其它计算机进程客户驻留在由网络连接在一起的一台或多台计算机上。其中的网络可以有各种适当的形式。图1例示了一个典型的网络结构10。网络结构10包括一个第一计算机12,该计算机与传输线14相连。除了计算机18、20和22外,网络结构10还包括一台服务器、路由器之类的东西16,以便数据和指令能够在各个网络计算机之间进行传输。计算机网络的设计、构造和实现是该领域的技术人员所熟知的。

        图2例示适合作为图1中计算机12、18、20和/或22来使用的一台典型的计算机30。计算机30包含一个中央处理单元(CPU)32。中央处理单元32与随机存取存储器(RAM)34之间存在着双向连接,而与只读存储器(ROM)36之间存在着单向连接。一般来说,RAM34用作“便笺”式存储器,为CPU32中当前正在操作的进程存放程序指令和数据以及分布式对象和与其相关的代码和状态。ROM36一般存有计算机为完成其功能所使用的基本操作指令、数据和对象。另外,海量存储设备38(如硬盘、CD ROM、光磁(软)驱、磁带机等)与CPU32之间存在着双向连接。海量存储器38一般存有CPU暂时不用的其它程序指令、数据和对象,尽管其地址空间也可以由CPU32访问到(如作为虚拟内存等)。计算机32还可有选择地含有输入/输出源40。输入/输出源40一般包括键盘、定位设备(如鼠标或光笔)一类的输入媒介和/或网络联接。其它的海量存储设备(未画出)也可以通过网络与CPU32相连。对于该领域的熟练技术人员来说,上面所描述的软、硬部件及网络设备都是一些标准的设计和构造,是他们所熟知的。

        图3是进程监控系统100的结构图。该系统根据本发明的实施例用于按三维形式可视化各个进程的属性。进程监控系统100包括计算机A102、计算机B104和计算机C106。计算机102、104和106最好是UNIX机器。例如,计算机102、104和106可以是Sun Microsystems公司所生产的工作站计算机。计算机102、104和106通过传输介质108互联,形成一计算机网络。该计算机网络可以是一有线网(如局域网),也可以是一无线网(如光或无线电的)。

        计算机A102包括进程A110、进程B112和进程E114。进程110、112和114是计算机A102上活动的计算机进程。这种进程是该领域中所熟知的,不仅包括与应用程序相关的计算机进程,还包括与操作系统相关的计算机进程。进程110、112和114都与统计服务器进程116相连。统计服务器进程116用于收集计算机A102上活动的进程110、112和114的统计信息。这些统计信息是关于进程110、112和114的属性的。统计服务器进程116最好还与一管理进程117相连。管理进程117管理计算机102上的进程。例如,管理进程117是DOE系统中所使用的一个计算机进程,用于跟踪ORB所知道的关于计算机A102的所有服务器进程。管理进程117还便于用户启动或关闭进程、设置跟踪标志以及指定调试输出。

        计算机B104包括进程C118和进程D120。进程118和进程120是计算机B104上活动的计算机进程。进程118和进程120都与统计服务器进程122相连。统计服务器进程122又与管理进程123相连。统计服务器进程122与统计服务器进程116的操作方式相同。管理进程123与管理进程117的操作方式相同。

        第三计算机C106包括一个全局统计服务器进程124和一个可视化进程126。可视化进程126和全局统计服务器进程124相互配合执行与本发明相关的操作。全局统计服务器进程124是一个计算机进程。它通过请求统计服务器进程116和122来收集统计信息。作为响应,统计服务器进程116和122分别获取与驻留在计算机102和104上的进程的属性相关的统计信息。从统计服务器进程116和122获取的统计信息一般称作属性数据。

        可视化进程126实际上是一个客户进程。它接收计算机系统中各个受监控进程的属性数据,并促成显示出一幅三维图像来。全局统计服务器进程124的操作将在下面结合图2作更详细的说明,而可视化进程126的操作将在下面结合图5-8作更详细的说明。

        图4是依据本发明实施例的进程监控系统100中所使用的各个计算机进程之间相互配合的示意图。一般来说,可视化进程126是一个客户进程,它向全局统计服务器进程124发出数据请求。该请求导致全局统计服务器进程124要求从计算机102和104上活动的进程那里获得属性数据。具体来说,全局统计服务器进程124为每台计算机102和104产生一个执行线程。第一个执行线程向统计服务器进程116发出请求并等待回答。而统计服务器进程116从管理进程117那里获取可用的属性数据。第二个执行线程向统计服务器进程122发出请求并等待回答。统计服务器进程122从管理进程123那里获取可用的属性数据。

        全局统计服务器进程124最好是一个ORB统计服务器。这种服务器属于DOE服务器进程,可以驻留在任何机器和计算机系统(即工作组)上。ORB统计服务器使用标准的DOE调用来查询统计进程服务器,获取与进程性能相关的统计量(即属性数据)。因此全局统计服务器进程124最好是一个DOE服务器,DOE结构提供了一个用于在计算机系统(即工作组)中不同计算机之间进行通讯的框架结构。

        管理进程117和123中的信息包括在各台计算机上活动的进程个数以及各个进程的标识符和名字。管理进程117和123还跟踪活动进程的某些属性。例如,当管理进程117和123由DOE系统提供时,它们定期地跟踪进程中诸如进程标识符和活动对象个数的属性。此后,使用从管理进程117和123处获取的进程标识符,其它的属性可以从/proc文件系统中获得。/proc文件系统是Sun Microsystems公司所生产的Solaris操作系统中的一部分。从/proc文件系统中可以找到的关于进程(由进程标识符指定)的其它属性包括:驻留大小、总体大小、发出和接收到的消息条数、CPU时间总数、睡眠时间总数等。

        除了来自管理进程117和123的可用的属性数据外,统计服务器进程116还可能直接从进程110、112和114处获取属性数据,统计服务器进程122也可能直接从进程118和120处获取属性数据。虽然从执行效率的角度来看对进程的过量的直接请求并不好,但是直接请求能够用于从进程处获取间接请求(如通过管理进程)所无法获取的属性数据。

        图5是依据本发明实施例的可视化进程126的结构图,图中还有相关的用户输入和图形输出。可视化进程126包括两个主要的执行线程。第一个线程是统计量收集线程302。它与全局统计进程124相互配合,为所监控的进程获取必要的属性数据。第二个线程是绘制线程304。它接收用户的输入306和来自统计量收集线程302的属性数据。绘制线程304使图形对象308在计算机系统(最好是在可视化进程126所在的计算机C106上)的显示屏幕上画出来,以形成计算机系统中活动进程及其属性的三维图像。绘制线程304还使形成三维视图的图形对象308的特征发生变化、变更、改变或者更新,以便所监控的进程的属性能够以视觉上可区分的方式显示出来。图形对象308中可发生变化、变更、改变或者更新的特征包括高、宽、颜色、透明度、形状、转角、纹理、运动和声音等。

        图6是依据本发明实施例的可视化进程126中统计量收集线程302的流程图。统计量收集线程302开始于判定框400,在这里判定标志render_ready是否已被置位。标志render_ready被置位之前,统计量收集线程302只是简单地处于等待状态,直至标志render_ready被置位为止。一旦标志render_ready被置位,统计量收集线程302便继续往下执行。其后,标志render_ready被清除402,并为每个进程请求属性数据404。此时,可视化进程126正使用全局统计服务器进程124为所监控的进程请求属性数据。全局统计服务器进程124将请求分别输出给位于计算机102和104上的统计服务器进程116和122。全局统计服务器进程124带着来自计算机系统中各台计算机的可用的属性数据返回后,统计量收集线程302便开始判断406自统计量收集线程302上一次被调用后属性数据是否发生及发生了多少变化。当判定406属性数据中有变化时,便将由全局统计服务器进程124所提供的当前属性数据与先前获得的属性数据进行比较。此后,当前的属性数据被存放408起来,以备下一次当做先前获得的属性数据来使用。最后,设置410标志data_ready,以通知绘制线程304属性数据发生了变化,现在可以根据这些变化来更新三维图像。在410框之后,便完成和结束了统计量收集线程302。

        图7是依据本发明实施例的可视化进程126中绘制线程304的流程图。绘制线程304从设置500标志render_ready开始。通过设置标志render_ready,绘制线程304通知统计量收集线程302它已可以为所监控的进程获取属性数据了。标志render_ready和标志data_ready是信号装置,用于控制统计量收集线程302和绘制线程304之间的并行操作。

        在500框之后是判定框502,在此判断是否有用户输入。用户输入包括鼠标事件和键盘事件等。如果接收到了用户输入,则根据该用户输入来更新504图形对象308。例如,用户可以缩小、放大、左移、右移、上移和下移三维图像。用户的这种动作会导致三维图像的视图、方向或大小的变化。另外,对三维图像用户还可以有其它操作,如出于负载平衡的原因选择一个进程并将其从一台计算机移至另一台计算机。关于负载平衡下面还将详细讲述。

        在504框之后,或者当没有接收到用户输入时在判定框502之后,是判定框506,在此判断标志data_ready是否已被置位。回想一下,标志data_ready是在统计量收集线程302为各个进程获取了属性数据并判断哪里发生了变化之后被置位的。如果标志data_ready已被置位,判定框506使得图形对象308根据属性数据中的变化进行更新508。这里,绘制线程304获取属性数据中的变化信息并将其提供给图形对象308,以便能够更新三维图像。图形对象308可以,比方说,在现有的图形库里找到。一个包含表示三维形体的对象及其绘制支持的典型的图形库是英国CriterionSoftware公司的RenderWare。附录A有使用RenderWare的图形对象模型的一个例子。然后,清除510标志data_ready。在508框之后,或者当标志data_ready没有被置位时在判定框506之后,绘制线程304返回至500框,并重复500及其后续各框。

        图8示意一幅与一个被监控的计算机系统相关的计算机、进程和进程属性的三维图像。三维图像显示在显示屏幕600上,或者更准确一些来说,是在显示屏幕600上的一个屏幕601上(或一个窗口中)。在图8所示的典型的三维图像中,计算机602被显示成一个三维的矩形盒子602。放在矩形盒子602的上表面上的是盒子604、606和608,它们表示计算机上的活动进程。在一个DOE系统中,这些活动进程最好是由ORB注册了的进程。这种进程称为已注册的服务器进程。当ORB关闭已注册服务器进程中的某个进程时,与其相应的矩形盒子也将被删除(即不再显示它)。类似地,如果有另一进程注册,将会在矩形盒子602的上表面上显示出另外一个矩形盒子。因此,在该例中计算机和进程都由三维盒子这种图形对象来表示。不过,应当指出的是,在此也可使用其它类型的图形对象。

        每个盒子604、606和608都有一个与其相关的图符610。图符610包含表示与其相关的进程的一个符号或一张图画等。例如,盒子604上有一图符610,图符610中有一字符“A”,而该字符是与由盒子604所表示的进程相关的。

        进程的属性也可以表示成图形对象。在上述典型图像中示意了以下属性:进程大小、活动对象个数、驻留进程大小、运行/闲置和消息传递速率。

        进程大小是监控进程性能时一个有用的进程属性。例如,对于由矩形盒子604所表示的进程来说,可以通过改变矩形盒子604的厚度来直观地显示该进程的大小。对于较大的进程,可以增加矩形盒子604的高度。另一方面,对于小进程,可以减小矩形盒子604的高度。

        进程中活动对象的个数是监控时另外一个有用的进程属性。例如,图8中,位于矩形盒子604的上表面上的直立圆柱体612表示活动对象的个数。直立圆柱体612的高度表示与矩形盒子604相关的进程中活动对象的个数。直立圆柱体612最好以不同于矩形盒子604的颜色来显示。

        平台614可以作为装饰特征放在直立圆柱体612的上面。另一方面,平台614可以与另一属性相关,即与矩形盒子604相关的进程的驻留进程大小。在这种情况下,平台614的厚度可以直观地显示出驻留进程大小。

        进程当前是否正在运行或闲置是另外一个值得监控的属性。在图8中,平台614的上面有一锥体616,当进程正在运行时它按照一种颜色来显示,而当进程处于闲置状态时它以另外一种颜色来显示。

        还有另外一种有用的属性值得监控,就是消息传递速率。在图8中,从平台614的上表面立起了一支标柱618。标柱618的高度表示消息传递速率。另外一种方法是,用一个立方体来替代标柱618。该立方体可以根据消息传递速率来改变其旋转速率和/或尺寸。该立方体也可以使用除了旋转以外的其它方法来运动和变化。

        阻塞与否是另外一个有用的属性值得监控。阻塞发生在进程暂停、通常是等待某把锁(如mutex锁)时。因此,参考图8,一个暂停或阻塞的进程可以通过在直立圆柱体612前显示一堵阻挡的墙来直观地显示。更进一步地,受阻塞的程度可以通过该墙的透明程度来直观地显示。

        附录A有一个使用RenderWare的图形对象模型的例子。例如,在附录A中,“#Server”是指一个服务器进程模型,“#Base”指表示该服务器进程的矩形盒子602,“#Icon”指图符610,“#Wall”指阻挡墙,“#Cylinder”指直立圆柱体612,“#Run Light”指锥体616,而“#TrafficIndicator”是指表示消息传递速率的立方体(代替了标柱618)。

        本发明监控并以三维形式直观地显示进程的属性。通过将进程的属性可视化,可以使开发者和系统管理员发现各台机器上的使用率和负载以及进程在哪里过载或阻塞。

        使用本发明,系统管理员可以依据三维图像判定出两台不同计算机上的两个进程之间的消息通讯情况如果在同一台计算机上执行的话情况将会更好,因为图像直观地显示出在两个进程之间正进行着大量的数据交换。在这种情况下,最有用的进程属性是该进程与其它进程之间的消息通讯情况。为向用户直观地显示该通讯情况,系统可以在进程之间建立起三维的管道。管道最好位于进程的矩形盒子的下面,象一条自来水管道。如果进程是服务器,则当出于负载平衡的原因移动该服务器时,必需通知该服务器的客户已经发生了这一移动,以便它们能够在新的计算机上与该服务器进程进行通讯。

        系统管理员还可以决定将一个阻塞的进程从一台计算机上移到另一台计算机上,在第二台计算机上该进程将不必再去竞争在第一台计算机上使其受阻的同一资源(如mutex锁)。

        当可视化进程126请求属性数据时,通过用户输入,用户可以影响到所获属性数据的广度或深度。将注意力集中在某一特定的计算机或进程或某些进程的属性上,而不去考虑其它的有一个好处,即可以提高获取属性数据的速率。获取属性数据所需时间越短,更新三维图像的速度就越快。更新三维图像的速度越快也就越接近真正的实时操作。例如,用户可以使得可视化进程126要求全局统计服务器进程124获取计算机系统中所有进程的所有属性数据。这时,用户是表示他或她希望获取所有的属性数据,并且愿意等待直到获得所要的属性数据时为止。用户也可以使得可视化进程126要求全局统计服务器进程124获取它在某一固定的时间段内所能获取的所有数据。在这种情况下,用户是想获取所有的数据,但是只愿意等待某一固定的时间段(例如用户也许希望只等待0.5秒)。再有,用户也可以使得可视化进程126只要求全局统计服务器进程124从某些计算机那里获取属性数据信息。这时,用户可以将监控集中在他所感兴趣的某些计算机上,而希望仔细分析这些计算机上活动的进程的性能。

        通过使用三维图像,可以显示出计算机系统的一幅立体视图。其中有很多计算机、进程和进程属性,但它们在视觉上都是可以区分开的。通过使用三维形式,不仅图像看起来更加逼真,还可以比通常的二维方法提供更多的空间来提供视觉信息。

        通过使用三维图像来监控一台计算机的进程,可以向用户显示更多的与进程相关的属性。另外,对于这些属性的显示可以按照这样一种方式来进行:其中用户对性能的理解可以通过与进程相关的模型中的图形对象的图形变化来实现。

        三维图像中所使用的图形对象可以具有多种形式,不必局限于图8中所示的例子。不过,最好能使图形对象能以表示它们之间实际物理关系的方式彼此相关。例如,所有属性的图形对象都应和与其相关的进程的图形对象相互关联。性质不同的图形对象在使用时最好前后一致,以便在视觉上能够很容易地区分出它们相应地是计算机、进程或属性。此外,图形对象中变更、变化或更新的特征可以变化大一些,并且一般依赖于该图形对象的类型。

        本发明的许多特征和优点在本书面描述中是显而易见的,后面所附的权利要求力图涵盖本发明的所有这些特征和优点。另外,因为该领域的熟练技术人员可以很容易地对此作出很多修改和变化,本发明并不严格受限于上述例示和描述中的结构和操作。因此,所有适当的变化形式和等效形式都应属于本发明的范围。

        附录A

        # Server Visualization

        ModelBegin

          LightSampling Facet

          GeometrySampling Solid

          Texture NULL

          # Base   height=0.2

          ClumpBegin

             Tag 1

             Color 0.11 0.15 0.36

             Surface 0.32 0.36 0.48

             Translate 0.0 0.1 0.0       # self to Y=0

             Block 2.0 0.2 2.0

             Translate 0.0 0.1 0.0       # stack child

             # Icon  width,height=1.0 depth=0.12

             ClumpBegin

                Tag 8

                Color 0.5 0.5 0.5

                Surface 0.32 0.36 0.48

                Translate-.95 0.01 0.88    # base front left corner

                TransformBegin

                   Translate 0.375 0.375 0.05   # self to X=Y=Z=0

                   Block 0.75 0.75 0.1

             TransformEnd

             Translate 0.00 0.00 0.11    # move to the front of previousblock

             TransformBegin

                Translate 0.375 0.375 0.0  # self to X=Y=0

                Vertex -0.375 -0.375 0.0 UV 0.0 1.0

                Vertex 0.375 -0.375 0.0 UV 1.0 1.0

                Vertex 0.375 0.375 0.0 UV 1.0 0.0

                Vertex -0.375 0.375 0.0 UV 0.0 0.0

                Surface 0.5 0.5 0.0

                TextureModes Foreshorten Lit

                Texture item

                QuadExt 1 2 3 4 Tag 1

             TransformEnd

          ClumpEnd     # Icon

          # Wall height=2.0

          # Vary opacity between 0.0,0.5-values:0.0,0.14,0.26,0.5

          ClumpBegin

             Tag 7

             Color 0.58 0.14 0.15

             Surface 0.64 0.42 0.53

             Opacity 0.0

             Tanslate 0.0 1.0 0.0       # self to Y=0

             TransformBegin

                Translate -0.70 0.0 0.0

                Block 0.1 2.0 1.3

             TransformEnd

             TransformBegin

          Translate 0.70 0.0 0.0

          Block 0.1 2.0 1.3

        TransformEnd

        TransformBegin

          Translate 0.0 0.0 0.70

          Block 1.50 2.0 0.1

        TransformEnd

        TransformBegin

          Translate 0.0 0.0-0.70

          Block 1.50 2.0 0.1

        TransformEndClumpEnd    # Wall# Lower Cap   height=0.1ClumpBegin

        Tag 2

        Color 0.5 0.5 0.5

        Surface 0.32 0.36 0.48

        Translate 0.0 0.05 0.0       # self to Y=0

        Block 1.25 0.1 1.25

        Translate 0.0 0.05 0.0       # stack child

        # Cylinder      height=2.0

        ClumpBegin

          Tag 3

          Color 0.56 0.71 0.39

          Surface 0.70 0.17 1.0

          Cylinder 2.0 0.45 0.45 8

          Translate 0.0 2.0 0.0     # stack child# Upper Cap   height=0.1ClumpBegin

        Tag 4

        Color 0.5 0.5 0.5

        Surface 0.32 0.36 0.48

        Translate 0.0 0.05 0.0      # self to Y=0

        Block 1.25 0.1 1.25

        Translate 0.0 0.05 0.0      # stack child

        # Run Light

        ClumpBegin

          Tag 5

          Color 0.30 0.65 0.20

          Surface 0.64 0.42 1.0

          Translate 0.3 0.0 0.3    # self to corner of upper

          Cone 0.1 0.18

        ClumpEnd      # Run Light

        # Traffic Indicator

        ClumpBegin

          Tag 6

          Color 0.04 0.84 0.66

          Surface 0.17 0.4 1.0

          Scale 0.5 0.5 0.5

          Translate 0.0 0.35 0.0   # self to Y=0.2

          Rotate 1.0 0.0 0.0 45

          Rotate 0.0 0.0 1.0 45

          Block 0.3 0.3 0.3

        ClumpEnd       # Traffic Indicator

                 ClumpEnd # Upper Cap

              ClumpEnd # Cylinder

           ClumpEnd # Lower Cap

        ClumpEnd # BaseModelEnd

    关 键  词:
    进程 属性 三维 实时 监控
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:进程属性的三维实时监控.pdf
    链接地址:https://www.zhuanlichaxun.net/p-654617.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1