首页> 中国专利> 一种分布式系统环境下的多任务进程监视方法和监视系统

一种分布式系统环境下的多任务进程监视方法和监视系统

摘要

本发明公开了分布式系统环境下的多任务进程监视方法,包括以下步骤:对分布式系统环境下的各任务执行终端的任务执行进程的五种状态进行监视;将所述XML格式描述文件传输到任务汇集处理服务器过滤后的任务执行情况写入数据库,同时发送任务变化消息通知任务调度中心;任务调度中心收到任务变化消息后将这些消息直接提交到任务调度模块,任务调度模块将收到的消息加入消息等待队列;调度控制单元查找线程索引表获取该任务的执行线程并交由该线程执行;线程控制模块在系统运行过程中实时对工作线程池中的多线程进行监视。本发明还公开了多任务进程监视系统,包括多个分布式任务执行终端、任务汇集处理服务器以及任务调度中心。

著录项

  • 公开/公告号CN102360310A

    专利类型发明专利

  • 公开/公告日2012-02-22

    原文格式PDF

  • 申请/专利号CN201110302232.9

  • 发明设计人 高翔;吴振锋;彭向阳;

    申请日2011-09-28

  • 分类号G06F9/46(20060101);G06F9/50(20060101);

  • 代理机构32237 江苏圣典律师事务所;

  • 代理人胡建华

  • 地址 210007 江苏省南京市苜蓿园东街1号1406信箱07分箱

  • 入库时间 2023-12-18 04:34:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-03-26

    授权

    授权

  • 2012-04-04

    实质审查的生效 IPC(主分类):G06F9/46 申请日:20110928

    实质审查的生效

  • 2012-02-22

    公开

    公开

说明书

技术领域

本发明涉及一种任务进程监视技术,特别是一种分布式系统环境下的多任务进程 监视方法和多任务进程监视系统。

背景技术

随着现代计算机和通讯网络技术的成熟和发展,现代信息系统的构建方式和体系 结构也从原来的简单集中处理方式向更高效的分布式架构转变,这种趋势导致从注重 程序设计转向更复杂系统功能的集成,以及如何把各层面业务模块进行组装,使其协 同工作。

基于分布式任务处理的业务流程管理系统是一种面向流程的信息系统,主要基于 网络方式实现信息传递、数据同步、流程监控和业务流程的持续管理优化等功能。业 务流程管理的提出避免了把工作流固化在定制的应用程序中,支持从程序设计到应用 组装的转变,此外还支持面向流程、流程再设计以及组织增长(organic growth)。

目前使用广泛的工作流程管理系统有Staffware、MQSeries和COSA,案例处理系 统FLOWer,ERP系统也提供了工作流程管理的模块,SAP、Baan、PeopleSoft、Oracle 和JD Edwards的工作流引擎也可被视为集成的业务流程管理系统。然而对工作流程的 监控只是作为单一的模块集成在系统中,在不同环境下的流程监控缺乏统一的标准, 有的尚不具备流程监控能力,更可惜的是多数工作流管理系统基于不同范例(paradigms) 使用多种语言和概念,各类工具间的使用方式存在差异,这样使其相应功能的扩展和 易用性受到限制。本发明提出了一种建立在业务流程管理系统之外通用的流程监控体 系,使其脱离了各工作流程管理系统间的限制,同时提出了一种多任务调度策略,使 其对大型分布式任务处理环境下海量任务流程的实时监控问题提供了一种有效的解决 方法。

发明内容

本发明的目的在于提供一种分布式系统环境下的多任务进程监视方法和监视系 统,通过对分布式终端各任务状态的自动采集,经多线程任务调度策略对计算资源进 行合理的分配,从而实现多任务进程监视的快速响应。

本发明公开了一种分布式系统环境下的多任务进程监视方法,包括以下步骤:

第一步,对分布式系统环境下的各任务执行终端的任务执行进程的五种状态进行 监视,所述五种状态包括就绪、等待、挂起、创建、消失五种;根据任务执行进程的 状态顺序地将各任务执行阶段的任务执行情况与之相应的定义为五类:任务准备、任 务等待、任务中断、任务执行、任务结束;将进程监视获取到的任务执行情况通过格 式化的XML描述文件进行保存;

第二步、将所述XML格式描述文件传输到任务汇集处理服务器进行数据的汇总检 验,过滤掉冗余和异常数据,将过滤后的任务执行情况写入数据库,同时发送任务变 化消息通知任务调度中心;

第三步,任务调度中心收到任务变化消息后将这些消息直接提交到任务调度模块, 任务调度模块将收到的消息加入消息等待队列,调度控制单元对消息等待队列进行实 时扫描在发现消息后按照先进先出的原则进行响应;

第四步,调度控制单元响应到任务变化消息后,查找线程索引表获取该任务的执 行线程并交由该线程执行,如在线程索引表中未查询到该任务对应的执行线程则根据 任务等级添加到调度控制单元中消息等待队列等待线程的分配,并将已经分配线程执 行的任务送往工作线程池执行;

第五步,线程控制模块在系统运行过程中实时对工作线程池中的多线程进行监视, 并根据当前系统负载状态通过容量调节单元对线程池中线程数量进行相应的增减使计 算资源达到最优的负载平衡,同时对长时间未执行的线程进行删除,同时对工作异常 的线程进行回收。

本发明中,调度控制单元执行以下步骤实现任务调度:

步骤1、根据接收到的任务变更消息解析出该任务的任务标识,根据任务标识遍历 线程索引链表获取该任务与之对应的工作线程,转到步骤5;如果未查询到该任务的工 作线程,转到步骤2;

步骤2、遍历线程索引表,通过对线程索引表中各任务标识进行纵向遍历从而获取 未分配任务的空闲线程,转到步骤5;如果仍未有空闲的工作线程,转到步骤3;

步骤3、将该消息加入调度控制单元中的消息等待队列,并按照任务等级进行排序, 任务等级计算公式如下:

p=1R+2J

其中:R表示任务优先级,取值范围1~9;

J表示任务执行阶段的关键程度,取值范围1~9;

,表示任务优先级和任务执行阶段的关键程度各自权值;

p表示计算出的任务等级;

步骤4、调度控制单元实时扫描等待队列,并返回步骤2;

步骤5、根据分配到的工作线程标识和任务变更消息中的任务标识编辑该任务的执 行消息并发送至工作线程池执行,任务调度结束。

本发明中,线程池执行如下步骤:

步骤1、创建工作线程池,根据预设的线程池容量创建相应数量的工作线程,同时 为每个工作线程开辟与之对应的消息队列,线程运行过程中实时扫描该消息队列获取 任务参数完成数据计算以及数据显示等操作;

步骤2、创建线程索引表,线程索引表以链表形式将任务标识、线程标识、下级节 点地址以及线程消息队列的对应关系进行保存,遍历工作线程池将各线程标识和相对 应的消息队列加入线程索引表中;

步骤3、工作线程池将调度控制单元送来的任务执行消息经解析获取要送往执行的 线程标识,根据线程标识获取线程索引链表中该节点地址;

步骤4、根据获取的节点地址,将任务执行消息送往该链表节点所指向的消息队列 等待线程执行,同时修改该链表节点的任务标识;

步骤5、当线程消息队列中所有消息执行完成后,将该节点中任务标识清空恢复初 始状态,任务执行结束。

利用多线程技术创建系统工作线程池以及线程索引表,并根据各工作线程所执行 的任务信息实时更新线程索引表,当任务监视信息送往工作线程池等待线程分配时根 据执行任务的优先级、监视节点的关键程度对待执行任务进行等级确定并按由高到低 的原则建立任务等待队列,当等待队列中任务执行时,对线程索引表进行遍历确定执 行该任务的工作线程,并送往相应线程的消息队列等待执行。

本发明中,所述容量调节单元执行以下步骤实现容量调节:

步骤1、计算某个时间段CPU工作时间计算CPU使用率:

对于单核CPU计算公式为:(T-I)/T*100%,其中,T表示某个时间段,I表示在这 个时间段中CPU处于空闲状态的时间;

对于多核CPU计算公式为:(T*N-I)/T*N*100%,其中,T表示某个时间段,I表 示在这个时间段中全部CPU核心的总空闲时间的和,N表示CPU到核心数量;

容量调节单元实时对CPU使用率进行监测,如果监测某一时间段CPU使用率一 直大于50%则认为系统负载过重需减小线程池容量执行步骤3;如果监测某一时间段 CPU使用率一直小于30%则认为系统负载过轻需增加线程池容量提升系统处理能力执 行步骤2;CPU使用率保持在30%~50%之间则认为系统工作比较稳定对线程池容量 不进行操作。

步骤2、增加线程池容量,创建工作线程以及对应的线程响应队列同时根据线程标 识在线程索引表中增加响应节点;

步骤3、减少线程池容量,释放线程池中空闲线程并将线程索引表中该线程所在节 点删除。

本发明还公开了一种多任务进程监视系统,包括多个分布式任务执行终端、任务 汇集处理服务器以及任务调度中心;

所述分布式任务执行终端与任务汇集处理服务器之间通过XML格式描述文件传 输任务执行情况;

所述任务调度中心包括任务调度模块、工作线程池以及线程控制模块;

所述任务调度模块用于接收所述任务汇集处理服务器传来的任务变更消息,其包 括任务控制单元和消息等待缓冲区;所述消息等待缓冲区用于存放消息;所述任务控 制单元用于扫描消息并做出响应;

所述工作线程池用于处理任务,其包括线程索引表,线程控制单元、任务控制单 元以及任务执行单元;所述线程索引表包括任务标识、线程标识、下级节点地址以及 线程消息队列;所述线程控制单元用于对各工作线程的创建和释放;所述任务控制单 元用于对线程索引表中各线程所对应的线程消息队列进行扫描并将获取的消息送往任 务执行单元执行;所述任务执行单元用于对送达的任务变更消息进行响应并将任务执 行情况数据进行编码最后送往显示可视化进程监视终端显示;

所述线程控制模块用于实时对工作线程池中的多线程进行监视,其包括容量调节 单元,线程监视单元以及线程干预单元;所述容量调节单元对系统性能进行监测并根 据监测结果调节线程池中工作线程数量;所述线程监视单元用于对工作线程池中工作 线程进行监视,将长时间空闲和长时间中断的线程进行记录并以日志形式进行保存; 所述线程干预单元用于对线程监视单元所记录的异常线程进行释放和重新分配。

本发明建立了分布式任务执行信息采集技术,对物理分散的各个任务执行终端进 行任务状态收集;建立基于多线程的任务调度策略,根据执行任务的优先等级、监视 节点的关键程度对执行线程进行合理的分配,实现多任务高效并行处理;建立多线程 自适应调节技术,对分配线程进行动态管理,并根据系统的处理能力自适应的调整线 程数量使系统运行效率达到最优值。

本发明通过格式化的XML文件和任务执行终端进行数据交互完成任务执行情况的 自动采集,并将采集到的结果通过网络汇总到任务汇集服务器,进行数据的汇总检验, 过滤掉冗余和异常数据,最后将过滤后的任务执行情况入库保存。

本发明系统运行过程中实时对工作线程池中的多线程进行监视,并根据当前系统 负载状态通过调节工作线程池中线程数量,使系统效能达到最优的负载平衡,同时对 工作异常的线程进行回收。

有益效果:本发明与现有技术相比,其显著优点:(1)通过分布式任务执行信息 采集技术,可以可靠而有效的对物理分散的各个任务执行终端进行任务状态收集,并 利用成熟的数据库技术对历史采集数据进行有效的管理。(2)利用多线程技术对多任 务流程的管理和监视进行计算资源的合理分配,实现多任务高效的并行处理。(3)建 立多线程任务调度策略,根据执行任务的优先等级、监视节点的关键程度对执行线程 进行合理的分配。(4)通过多线程自适应调节技术,对分配线程进行动态管理,并根 据系统的处理能力自适应的调整线程数量使系统运行效率达到最优值。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/ 或其他方面的优点将会变得更加清楚。

图1是多任务进程监视方法的流程图。

图2是分布式任务执行情况数据采集的示意图。

图3是多线程任务调度中心体系结构框图。

图4是线程索引表结构图。

具体实施方式

如图1所示本发明分布式系统环境下的多任务进程监视方法,步骤如下:

第一步、由于在分布式执行环境下各任务执行阶段被物理分散在各任务执行终端, 如图2所示,本发明利用现有进程监视技术对各任务执行终端的任务执行进程的五种 状态(就绪、等待、挂起、创建、消失)进行监视从而确定该任务执行阶段的具体执 行情况,根据任务执行进程的状态将各任务执行阶段的任务执行情况与之相应的定义 为五类:就绪→任务准备、等待→任务等待、挂起→任务中断、创建→任务执行、消 失→任务结束。最后将进程监视获取到的任务执行情况通过格式化的XML描述文件进 行保存并完成任务执行情况的自动采集。其中约定任务执行阶段的关键程度和任务优 先级由低到高为1~9级;

第二步、将采集到的XML描述文件通过网络传输到任务汇集处理服务器进行数据 的解析和检验,过滤掉冗余和异常数据,最后将过滤后的任务数据写入数据库,同时 发送任务变更消息通知任务调度中心;

第三步、任务调度中心收到任务变更消息后直接提交到多线程任务调度模块,多 线程任务调度模块将收到的消息加入消息等待队列,调度控制单元对消息等待队列进 行实时扫描在发现消息后按照先进先出的原则进行响应;

第四步、调度控制单元响应到任务变化消息后,根据线程索引表中的内容确定送 往的工作线程,线程索引表构成如图4所示各线程信息和各线程对应的消息等待队列 以二维链表的形式保存。通过对线程索引表的遍历确定是否存在空闲线程,如果工作 线程池中全部线程已被占用则根据任务等级采用高优先级先执行的策略进行调度,调 度控制单元工作详细步骤如下:

步骤1、根据接收到的任务变更消息解析出该任务的任务标识,根据任务标识遍历 线程索引链表获取该任务与之对应的工作线程,转到步骤5。如果未查询到该任务的工 作线程,转到步骤2。

步骤2、遍历线程索引表,通过对线程索引表中各任务标识进行纵向遍历从而获取 未分配任务的空闲线程,转到步骤5。如果仍未有空闲的工作线程,转到步骤3。

步骤3、将该消息加入调度控制单元中的消息等待队列,并按照任务等级进行排序, 任务等级计算公式如下:

p=1R+2J

其中:R表示任务优先级,取值范围1~9;

      J表示任务执行阶段的关键程度,取值范围1~9;

      ,表示任务优先级和任务执行阶段的关键程度各自权值;

      p表示计算出的任务等级;

步骤4、调度控制单元实时扫描等待队列,并将消息依次送往步骤2执行。

步骤5、根据分配到的工作线程标识和任务变更消息中的任务标识编辑该任务的执 行消息并发送至工作线程池执行,任务调度结束。

工作线程池接收到调度控制单元送来的任务执行消息后,经解析获取为该任务分 配的执行线程标识,通过线程索引表完成任务的引导,最终完成任务的执行,线程池 工作详细步骤如下:

步骤1、创建工作线程池,根据预设的线程池容量创建相应数量的工作线程,同时 为每个工作线程开辟与之对应的消息队列,线程运行过程中实时扫描该消息队列获取 相关任务参数完成数据计算以及数据显示等操作。

步骤2、创建线程索引表,如错误!未找到引用源。所示,线程索引表以链表形式 将任务标识、线程标识和线程消息队列的对应关系进行保存,遍历工作线程池将各工 作线程标识和相对应的消息队列加入线程索引表中,链表长度根据线程池容量进行设 置。

步骤3、工作线程池将调度控制单元送来的任务执行消息经解析获取要送往执行的 线程标识,根据线程标识获取线程索引链表中该节点地址。

步骤4、根据获取的节点地址,将任务执行消息送往该链表节点所指向的消息队列 等待线程执行,同时修改该链表节点的任务标识。

步骤5、当线程消息队列中所有消息执行完成后,将该节点中任务标识清空恢复初 始状态,任务执行结束。

第五步、系统运行时线程控制模块负责对工作线程进行管理,线程监视单元实时 对工作线程进行监控当发现异常线程时通知线程干预模块终止该线程,同时将线程消 息响应队列中未执行的任务消息发还任务调度模块进行线程的重新分配,容量调节单 元对系统性能进行监测并根据监测结果调节线程池中工作线程数量,详细步骤如下:

步骤1、计算某个时间段CPU工作时间计算CPU使用率:

对于单核CPU计算公式为:(T-I)/T*100%,其中,T表示某个时间段,I表示在这 个时间段中CPU处于空闲状态的时间;

对于多核CPU计算公式为:(T*N-I)/T*N*100%,其中,T表示某个时间段,I表 示在这个时间段中全部CPU核心的总空闲时间的和,N表示CPU到核心数量;

容量调节单元实时对CPU使用率进行监测,如果监测某一时间段CPU使用率一 直大于50%则认为系统负载过重需减小线程池容量执行步骤3;如果监测某一时间段 CPU使用率一直小于30%则认为系统负载过轻需增加线程池容量提升系统处理能力执 行步骤2;CPU使用率保持在30%~50%之间则认为系统工作比较稳定对线程池容量 不进行操作。

步骤2、增加线程池容量,创建工作线程以及对应的线程响应队列同时根据线程标 识在线程索引表中增加响应节点;

步骤3、减少线程池容量,释放线程池中空闲线程并将线程索引表中该线程所在节 点删除。

本实施例所述的多任务进程监视系统,包括多个分布式任务执行终端、任务汇集 处理服务器以及任务调度中心;

如图2所示分布式任务执行情况数据采集模型组成如下:

所述分布式任务执行终端与任务汇集处理服务器之间通过XML格式描述文件传 输任务执行情况;

所述任务执行情况采集过程对各任务执行终端中任务执行进程状态进行收集,并 通过格式化的XML描述文件进行保存;

所述数据传输层用于将XML格式描述文件通过网络传输到任务汇集处理服务器;

所述任务汇集处理服务器用于接收XML格式描述文件,并进行解析过滤掉冗余和 异常数据,最后将过滤后的任务执行情况写入数据库;

如图3所示多线程任务调度中心体系结构组成如下:

所述任务调度中心包括任务调度模块、工作线程池以及线程控制模块;

所述任务调度模块用于接收所述任务汇集处理服务器传来的任务变更消息,其包 括任务控制单元和消息等待缓冲区;所述消息等待缓冲区用于存放消息;所述任务控 制单元用于扫描消息并做出响应;

所述工作线程池用于处理任务,其包括线程索引表,线程控制单元、任务控制单 元以及任务执行单元;所述线程索引表包括任务标识、线程标识、下级节点地址以及 线程消息队列;所述线程控制单元用于对各工作线程的创建和释放;所述任务控制单 元用于对线程索引表中各线程所对应的线程消息队列进行扫描并将获取的消息送往任 务执行单元执行;所述任务执行单元用于对送达的任务变更消息进行响应并将任务执 行情况数据进行编码最后送往显示可视化进程监视终端显示;

所述线程控制模块用于实时对工作线程池中的多线程进行监视,其包括容量调节 单元,线程监视单元以及线程干预单元;所述容量调节单元对系统性能进行监测并根 据监测结果调节线程池中工作线程数量;所述线程监视单元用于对工作线程池中工作 线程进行监视,将长时间空闲和长时间中断的线程进行记录并以日志形式进行保存; 所述线程干预单元用于对线程监视单元所记录的异常线程进行释放和重新分配。

如图4所示线程索引表结构组成如下:

所述线程索引表包括任务标识、线程标识、下级节点地址以及线程消息队列;

所述任务标识用于保存送往线程池执行的任务唯一标识;所述线程标识用于保存 执行相应任务的线程标识,该标识于任务标识相互对应;所述线程消息队列用于保存 对应任务标识的执行消息,线程运行过程中遍历该消息队列并根据获取到到任务执行 消息进行相应操作;所述下级节点地址在执行链表遍历操作时可获取下级数据保存地 址,如获取到下级节点地址为空则表明该节点已经是链表底部。

本实施例通过对分布式终端各任务状态的收集,经多线程任务调度策略对计算资 源进行合理的分配,从而实现多任务进程监视的快速响应。

本发明提供了一种分布式系统环境下的多任务进程监视方法和监视系统的思路, 具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当 指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以 做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明 确的各组成部分均可用现有技术加以实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号