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

上传人:a**** 文档编号:975368 上传时间:2018-03-22 格式:PDF 页数:14 大小:460.81KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110302232.9

申请日:

2011.09.28

公开号:

CN102360310A

公开日:

2012.02.22

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/46申请日:20110928|||公开

IPC分类号:

G06F9/46; G06F9/50

主分类号:

G06F9/46

申请人:

中国电子科技集团公司第二十八研究所

发明人:

高翔; 吴振锋; 彭向阳

地址:

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

优先权:

专利代理机构:

江苏圣典律师事务所 32237

代理人:

胡建华

PDF下载: PDF下载
内容摘要

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

权利要求书

1: 一种分布式系统环境下的多任务进程监视方法, 其特征在于, 包括以下步骤 : 第一步, 对分布式系统环境下的各任务执行终端的任务执行进程的五种状态进行监 视, 所述五种状态包括就绪、 等待、 挂起、 创建、 消失五种 ; 根据任务执行进程的状态顺序地 将各任务执行阶段的任务执行情况与之相应的定义为五类 : 任务准备、 任务等待、 任务中 断、 任务执行、 任务结束 ; 将进程监视获取到的任务执行情况通过格式化的 XML 描述文件进 行保存 ; 第二步、 将所述 XML 格式描述文件传输到任务汇集处理服务器进行数据的汇总检验, 过滤掉冗余和异常数据, 将过滤后的任务执行情况写入数据库, 同时发送任务变化消息通 知任务调度中心 ; 第三步, 任务调度中心收到任务变化消息后将这些消息直接提交到任务调度模块, 任 务调度模块将收到的消息加入消息等待队列, 调度控制单元对消息等待队列进行实时扫描 在发现消息后按照先进先出的原则进行响应 ; 第四步, 调度控制单元响应到任务变化消息后, 查找线程索引表获取该任务的执行线 程并交由该线程执行, 如在线程索引表中未查询到该任务对应的执行线程则根据任务等级 添加到调度控制单元中消息等待队列等待线程的分配, 并将已经分配线程执行的任务送往 工作线程池执行 ; 第五步, 线程控制模块在系统运行过程中实时对工作线程池中的多线程进行监视, 并 根据当前系统负载状态通过容量调节单元对线程池中线程数量进行相应的增减使计算资 源达到最优的负载平衡, 同时对长时间未执行的线程进行删除, 同时对工作异常的线程进 行回收。
2: 根据权利要求 1 所述的分布式系统环境下的多任务进程监视方法, 其特征在于, 调 度控制单元执行以下步骤实现任务调度 : 步骤 1、 根据接收到的任务变更消息解析出该任务的任务标识, 根据任务标识遍历线程 索引链表获取该任务与之对应的工作线程, 转到步骤 5 ; 如果未查询到该任务的工作线程, 转到步骤 2 ; 步骤 2、 遍历线程索引表, 通过对线程索引表中各任务标识进行纵向遍历从而获取未分 配任务的空闲线程, 转到步骤 5 ; 如果仍未有空闲的工作线程, 转到步骤 3 ; 步骤 3、 将该消息加入调度控制单元中的消息等待队列, 并按照任务等级进行排序, 任 务等级计算公式如下 : , 其中 : R 表示任务优先级, 取值范围 1 ~ 9 ; J 表示任务执行阶段的关键程度, 取值范围 1 ~ 9 ; , 表示任务优先级和任务执行阶段的关键程度各自权值 ; p 表示计算出的任务等级 ; 步骤 4、 调度控制单元实时扫描等待队列, 并返回步骤 2 ; 步骤 5、 根据分配到的工作线程标识和任务变更消息中的任务标识编辑该任务的执行 消息并发送至工作线程池执行, 任务调度结束。
3: 根据权利要求 2 所述的分布式系统环境下的多任务进程监视方法, 其特征在于, 线 程池执行如下步骤 : 2 步骤 1、 创建工作线程池, 根据预设的线程池容量创建相应数量的工作线程, 同时为每 个工作线程开辟与之对应的消息队列, 线程运行过程中实时扫描该消息队列获取任务参数 完成数据计算以及数据显示等操作 ; 步骤 2、 创建线程索引表, 线程索引表以链表形式将任务标识、 线程标识、 下级节点地址 以及线程消息队列的对应关系进行保存, 遍历工作线程池将各线程标识和相对应的消息队 列加入线程索引表中 ; 步骤 3、 工作线程池将调度控制单元送来的任务执行消息经解析获取要送往执行的线 程标识, 根据线程标识获取线程索引链表中该节点地址 ; 步骤 4、 根据获取的节点地址, 将任务执行消息送往该链表节点所指向的消息队列等待 线程执行, 同时修改该链表节点的任务标识 ; 步骤 5、 当线程消息队列中所有消息执行完成后, 将该节点中任务标识清空恢复初始状 态, 任务执行结束。
4: 根据权利要求 3 所述的分布式系统环境下的多任务进程监视方法, 其特征在于, 所 述容量调节单元执行以下步骤实现容量调节 : 步骤 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、 减少线程池容量, 释放线程池中空闲线程并将线程索引表中该线程所在节点删 除。
5: 一种实现权利要求 1 所述方法的多任务进程监视系统, 其特征在于, 包括多个分布 式任务执行终端、 任务汇集处理服务器以及任务调度中心 ; 所述分布式任务执行终端与任务汇集处理服务器之间通过 XML 格式描述文件传输任 务执行情况 ; 所述任务调度中心包括任务调度模块、 工作线程池以及线程控制模块 ; 所述任务调度模块用于接收所述任务汇集处理服务器传来的任务变更消息, 其包括任 务控制单元和消息等待缓冲区 ; 所述消息等待缓冲区用于存放消息 ; 所述任务控制单元用 于扫描消息并做出响应 ; 所述工作线程池用于处理任务, 其包括线程索引表, 线程控制单元、 任务控制单元以及 任务执行单元 ; 所述线程索引表包括任务标识、 线程标识、 下级节点地址以及线程消息队 3 列; 所述线程控制单元用于对各工作线程的创建和释放 ; 所述任务控制单元用于对线程索 引表中各线程所对应的线程消息队列进行扫描并将获取的消息送往任务执行单元执行 ; 所 述任务执行单元用于对送达的任务变更消息进行响应并将任务执行情况数据进行编码最 后送往显示可视化进程监视终端显示 ; 所述线程控制模块用于实时对工作线程池中的多线程进行监视, 其包括容量调节单 元, 线程监视单元以及线程干预单元 ; 所述容量调节单元对系统性能进行监测并根据监测 结果调节线程池中工作线程数量 ; 所述线程监视单元用于对工作线程池中工作线程进行监 视, 将长时间空闲和长时间中断的线程进行记录并以日志形式进行保存 ; 所述线程干预单 元用于对线程监视单元所记录的异常线程进行释放和重新分配。

说明书


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

    技术领域 本发明涉及一种任务进程监视技术, 特别是一种分布式系统环境下的多任务进程 监视方法和多任务进程监视系统。
     背景技术 随着现代计算机和通讯网络技术的成熟和发展, 现代信息系统的构建方式和体系 结构也从原来的简单集中处理方式向更高效的分布式架构转变, 这种趋势导致从注重程序 设计转向更复杂系统功能的集成, 以及如何把各层面业务模块进行组装, 使其协同工作。
     基于分布式任务处理的业务流程管理系统是一种面向流程的信息系统, 主要基于 网络方式实现信息传递、 数据同步、 流程监控和业务流程的持续管理优化等功能。业务流 程管理的提出避免了把工作流固化在定制的应用程序中, 支持从程序设计到应用组装的转 变, 此外还支持面向流程、 流程再设计以及组织增长 (organic growth)。
     目前使用广泛的工作流程管理系统有 Staffware、 MQSeries 和 COSA, 案例处理系 统 FLOWer, ERP 系统也提供了工作流程管理的模块, SAP、 Baan、 PeopleSoft、 Oracle 和 JD Edwards 的工作流引擎也可被视为集成的业务流程管理系统。然而对工作流程的监控只是 作为单一的模块集成在系统中, 在不同环境下的流程监控缺乏统一的标准, 有的尚不具备 流程监控能力, 更可惜的是多数工作流管理系统基于不同范例 (paradigms) 使用多种语言 和概念, 各类工具间的使用方式存在差异, 这样使其相应功能的扩展和易用性受到限制。 本 发明提出了一种建立在业务流程管理系统之外通用的流程监控体系, 使其脱离了各工作流 程管理系统间的限制, 同时提出了一种多任务调度策略, 使其对大型分布式任务处理环境 下海量任务流程的实时监控问题提供了一种有效的解决方法。
     发明内容
     本发明的目的在于提供一种分布式系统环境下的多任务进程监视方法和监视系 统, 通过对分布式终端各任务状态的自动采集, 经多线程任务调度策略对计算资源进行合 理的分配, 从而实现多任务进程监视的快速响应。
     本发明公开了一种分布式系统环境下的多任务进程监视方法, 包括以下步骤 :
     第一步, 对分布式系统环境下的各任务执行终端的任务执行进程的五种状态进行 监视, 所述五种状态包括就绪、 等待、 挂起、 创建、 消失五种 ; 根据任务执行进程的状态顺序 地将各任务执行阶段的任务执行情况与之相应的定义为五类 : 任务准备、 任务等待、 任务中 断、 任务执行、 任务结束 ; 将进程监视获取到的任务执行情况通过格式化的 XML 描述文件进 行保存 ;
     第二步、 将所述 XML 格式描述文件传输到任务汇集处理服务器进行数据的汇总检 验, 过滤掉冗余和异常数据, 将过滤后的任务执行情况写入数据库, 同时发送任务变化消息 通知任务调度中心 ;
     第三步, 任务调度中心收到任务变化消息后将这些消息直接提交到任务调度模块, 任务调度模块将收到的消息加入消息等待队列, 调度控制单元对消息等待队列进行实 时扫描在发现消息后按照先进先出的原则进行响应 ;
     第四步, 调度控制单元响应到任务变化消息后, 查找线程索引表获取该任务的执 行线程并交由该线程执行, 如在线程索引表中未查询到该任务对应的执行线程则根据任务 等级添加到调度控制单元中消息等待队列等待线程的分配, 并将已经分配线程执行的任务 送往工作线程池执行 ;
     第五步, 线程控制模块在系统运行过程中实时对工作线程池中的多线程进行监 视, 并根据当前系统负载状态通过容量调节单元对线程池中线程数量进行相应的增减使计 算资源达到最优的负载平衡, 同时对长时间未执行的线程进行删除, 同时对工作异常的线 程进行回收。
     本发明中, 调度控制单元执行以下步骤实现任务调度 :
     步骤 1、 根据接收到的任务变更消息解析出该任务的任务标识, 根据任务标识遍历 线程索引链表获取该任务与之对应的工作线程, 转到步骤 5 ; 如果未查询到该任务的工作 线程, 转到步骤 2 ;
     步骤 2、 遍历线程索引表, 通过对线程索引表中各任务标识进行纵向遍历从而获取 未分配任务的空闲线程, 转到步骤 5 ; 如果仍未有空闲的工作线程, 转到步骤 3 ;
     步骤 3、 将该消息加入调度控制单元中的消息等待队列, 并按照任务等级进行排 序, 任务等级计算公式如下 : , 其中 : 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、 将该消息加入调度控制单元中的消息等待队列, 并按照任务等级进行排 序, 任务等级计算公式如下 :
     , 其中 : 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 所示线程索引表结构组成如下 :
     所述线程索引表包括任务标识、 线程标识、 下级节点地址以及线程消息队列 ;
     所述任务标识用于保存送往线程池执行的任务唯一标识 ; 所述线程标识用于保存 执行相应任务的线程标识, 该标识于任务标识相互对应 ; 所述线程消息队列用于保存对应 任务标识的执行消息, 线程运行过程中遍历该消息队列并根据获取到到任务执行消息进行 相应操作 ; 所述下级节点地址在执行链表遍历操作时可获取下级数据保存地址, 如获取到 下级节点地址为空则表明该节点已经是链表底部。
     本实施例通过对分布式终端各任务状态的收集, 经多线程任务调度策略对计算资 源进行合理的分配, 从而实现多任务进程监视的快速响应。
     本发明提供了一种分布式系统环境下的多任务进程监视方法和监视系统的思路, 具体实现该技术方案的方法和途径很多, 以上所述仅是本发明的优选实施方式, 应当指出, 对于本技术领域的普通技术人员来说, 在不脱离本发明原理的前提下, 还可以做出若干改 进和润饰, 这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分 均可用现有技术加以实现。

一种分布式系统环境下的多任务进程监视方法和监视系统.pdf_第1页
第1页 / 共14页
一种分布式系统环境下的多任务进程监视方法和监视系统.pdf_第2页
第2页 / 共14页
一种分布式系统环境下的多任务进程监视方法和监视系统.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种分布式系统环境下的多任务进程监视方法和监视系统.pdf》由会员分享,可在线阅读,更多相关《一种分布式系统环境下的多任务进程监视方法和监视系统.pdf(14页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102360310A43申请公布日20120222CN102360310ACN102360310A21申请号201110302232922申请日20110928G06F9/46200601G06F9/5020060171申请人中国电子科技集团公司第二十八研究所地址210007江苏省南京市苜蓿园东街1号1406信箱07分箱72发明人高翔吴振锋彭向阳74专利代理机构江苏圣典律师事务所32237代理人胡建华54发明名称一种分布式系统环境下的多任务进程监视方法和监视系统57摘要本发明公开了分布式系统环境下的多任务进程监视方法,包括以下步骤对分布式系统环境下的各任务执行终端的任务执行进。

2、程的五种状态进行监视;将所述XML格式描述文件传输到任务汇集处理服务器过滤后的任务执行情况写入数据库,同时发送任务变化消息通知任务调度中心;任务调度中心收到任务变化消息后将这些消息直接提交到任务调度模块,任务调度模块将收到的消息加入消息等待队列;调度控制单元查找线程索引表获取该任务的执行线程并交由该线程执行;线程控制模块在系统运行过程中实时对工作线程池中的多线程进行监视。本发明还公开了多任务进程监视系统,包括多个分布式任务执行终端、任务汇集处理服务器以及任务调度中心。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书7页附图3页CN102360327A1/3页2。

3、1一种分布式系统环境下的多任务进程监视方法,其特征在于,包括以下步骤第一步,对分布式系统环境下的各任务执行终端的任务执行进程的五种状态进行监视,所述五种状态包括就绪、等待、挂起、创建、消失五种;根据任务执行进程的状态顺序地将各任务执行阶段的任务执行情况与之相应的定义为五类任务准备、任务等待、任务中断、任务执行、任务结束;将进程监视获取到的任务执行情况通过格式化的XML描述文件进行保存;第二步、将所述XML格式描述文件传输到任务汇集处理服务器进行数据的汇总检验,过滤掉冗余和异常数据,将过滤后的任务执行情况写入数据库,同时发送任务变化消息通知任务调度中心;第三步,任务调度中心收到任务变化消息后将这。

4、些消息直接提交到任务调度模块,任务调度模块将收到的消息加入消息等待队列,调度控制单元对消息等待队列进行实时扫描在发现消息后按照先进先出的原则进行响应;第四步,调度控制单元响应到任务变化消息后,查找线程索引表获取该任务的执行线程并交由该线程执行,如在线程索引表中未查询到该任务对应的执行线程则根据任务等级添加到调度控制单元中消息等待队列等待线程的分配,并将已经分配线程执行的任务送往工作线程池执行;第五步,线程控制模块在系统运行过程中实时对工作线程池中的多线程进行监视,并根据当前系统负载状态通过容量调节单元对线程池中线程数量进行相应的增减使计算资源达到最优的负载平衡,同时对长时间未执行的线程进行删除。

5、,同时对工作异常的线程进行回收。2根据权利要求1所述的分布式系统环境下的多任务进程监视方法,其特征在于,调度控制单元执行以下步骤实现任务调度步骤1、根据接收到的任务变更消息解析出该任务的任务标识,根据任务标识遍历线程索引链表获取该任务与之对应的工作线程,转到步骤5;如果未查询到该任务的工作线程,转到步骤2;步骤2、遍历线程索引表,通过对线程索引表中各任务标识进行纵向遍历从而获取未分配任务的空闲线程,转到步骤5;如果仍未有空闲的工作线程,转到步骤3;步骤3、将该消息加入调度控制单元中的消息等待队列,并按照任务等级进行排序,任务等级计算公式如下,其中R表示任务优先级,取值范围19;J表示任务执行阶。

6、段的关键程度,取值范围19;,表示任务优先级和任务执行阶段的关键程度各自权值;P表示计算出的任务等级;步骤4、调度控制单元实时扫描等待队列,并返回步骤2;步骤5、根据分配到的工作线程标识和任务变更消息中的任务标识编辑该任务的执行消息并发送至工作线程池执行,任务调度结束。3根据权利要求2所述的分布式系统环境下的多任务进程监视方法,其特征在于,线程池执行如下步骤权利要求书CN102360310ACN102360327A2/3页3步骤1、创建工作线程池,根据预设的线程池容量创建相应数量的工作线程,同时为每个工作线程开辟与之对应的消息队列,线程运行过程中实时扫描该消息队列获取任务参数完成数据计算以及数。

7、据显示等操作;步骤2、创建线程索引表,线程索引表以链表形式将任务标识、线程标识、下级节点地址以及线程消息队列的对应关系进行保存,遍历工作线程池将各线程标识和相对应的消息队列加入线程索引表中;步骤3、工作线程池将调度控制单元送来的任务执行消息经解析获取要送往执行的线程标识,根据线程标识获取线程索引链表中该节点地址;步骤4、根据获取的节点地址,将任务执行消息送往该链表节点所指向的消息队列等待线程执行,同时修改该链表节点的任务标识;步骤5、当线程消息队列中所有消息执行完成后,将该节点中任务标识清空恢复初始状态,任务执行结束。4根据权利要求3所述的分布式系统环境下的多任务进程监视方法,其特征在于,所述。

8、容量调节单元执行以下步骤实现容量调节步骤1、计算某个时间段CPU工作时间计算CPU使用率对于单核CPU计算公式为TI/T100,其中,T表示某个时间段,I表示在这个时间段中CPU处于空闲状态的时间;对于多核CPU计算公式为TNI/TN100,其中,T表示某个时间段,I表示在这个时间段中全部CPU核心的总空闲时间的和,N表示CPU到核心数量;容量调节单元实时对CPU使用率进行监测,如果监测一时间段内CPU使用率一直大于50,则判定系统负载过重需减小线程池容量,执行步骤3;如果监测一时间段内CPU使用率一直小于30,则判定系统负载过轻需增加线程池容量提升系统处理能力,执行步骤2;如果监测一时间段内。

9、CPU使用率保持在3050,则判定系统工作稳定,对线程池容量不进行操作;步骤2、增加线程池容量,创建工作线程以及对应的线程响应队列同时根据线程标识在线程索引表中增加响应节点;步骤3、减少线程池容量,释放线程池中空闲线程并将线程索引表中该线程所在节点删除。5一种实现权利要求1所述方法的多任务进程监视系统,其特征在于,包括多个分布式任务执行终端、任务汇集处理服务器以及任务调度中心;所述分布式任务执行终端与任务汇集处理服务器之间通过XML格式描述文件传输任务执行情况;所述任务调度中心包括任务调度模块、工作线程池以及线程控制模块;所述任务调度模块用于接收所述任务汇集处理服务器传来的任务变更消息,其包括。

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

11、制模块用于实时对工作线程池中的多线程进行监视,其包括容量调节单元,线程监视单元以及线程干预单元;所述容量调节单元对系统性能进行监测并根据监测结果调节线程池中工作线程数量;所述线程监视单元用于对工作线程池中工作线程进行监视,将长时间空闲和长时间中断的线程进行记录并以日志形式进行保存;所述线程干预单元用于对线程监视单元所记录的异常线程进行释放和重新分配。权利要求书CN102360310ACN102360327A1/7页5一种分布式系统环境下的多任务进程监视方法和监视系统技术领域0001本发明涉及一种任务进程监视技术,特别是一种分布式系统环境下的多任务进程监视方法和多任务进程监视系统。背景技术000。

12、2随着现代计算机和通讯网络技术的成熟和发展,现代信息系统的构建方式和体系结构也从原来的简单集中处理方式向更高效的分布式架构转变,这种趋势导致从注重程序设计转向更复杂系统功能的集成,以及如何把各层面业务模块进行组装,使其协同工作。0003基于分布式任务处理的业务流程管理系统是一种面向流程的信息系统,主要基于网络方式实现信息传递、数据同步、流程监控和业务流程的持续管理优化等功能。业务流程管理的提出避免了把工作流固化在定制的应用程序中,支持从程序设计到应用组装的转变,此外还支持面向流程、流程再设计以及组织增长ORGANICGROWTH。0004目前使用广泛的工作流程管理系统有STAFFWARE、MQ。

13、SERIES和COSA,案例处理系统FLOWER,ERP系统也提供了工作流程管理的模块,SAP、BAAN、PEOPLESOFT、ORACLE和JDEDWARDS的工作流引擎也可被视为集成的业务流程管理系统。然而对工作流程的监控只是作为单一的模块集成在系统中,在不同环境下的流程监控缺乏统一的标准,有的尚不具备流程监控能力,更可惜的是多数工作流管理系统基于不同范例PARADIGMS使用多种语言和概念,各类工具间的使用方式存在差异,这样使其相应功能的扩展和易用性受到限制。本发明提出了一种建立在业务流程管理系统之外通用的流程监控体系,使其脱离了各工作流程管理系统间的限制,同时提出了一种多任务调度策略,。

14、使其对大型分布式任务处理环境下海量任务流程的实时监控问题提供了一种有效的解决方法。发明内容0005本发明的目的在于提供一种分布式系统环境下的多任务进程监视方法和监视系统,通过对分布式终端各任务状态的自动采集,经多线程任务调度策略对计算资源进行合理的分配,从而实现多任务进程监视的快速响应。0006本发明公开了一种分布式系统环境下的多任务进程监视方法,包括以下步骤0007第一步,对分布式系统环境下的各任务执行终端的任务执行进程的五种状态进行监视,所述五种状态包括就绪、等待、挂起、创建、消失五种;根据任务执行进程的状态顺序地将各任务执行阶段的任务执行情况与之相应的定义为五类任务准备、任务等待、任务中。

15、断、任务执行、任务结束;将进程监视获取到的任务执行情况通过格式化的XML描述文件进行保存;0008第二步、将所述XML格式描述文件传输到任务汇集处理服务器进行数据的汇总检验,过滤掉冗余和异常数据,将过滤后的任务执行情况写入数据库,同时发送任务变化消息通知任务调度中心;0009第三步,任务调度中心收到任务变化消息后将这些消息直接提交到任务调度模说明书CN102360310ACN102360327A2/7页6块,任务调度模块将收到的消息加入消息等待队列,调度控制单元对消息等待队列进行实时扫描在发现消息后按照先进先出的原则进行响应;0010第四步,调度控制单元响应到任务变化消息后,查找线程索引表获取。

16、该任务的执行线程并交由该线程执行,如在线程索引表中未查询到该任务对应的执行线程则根据任务等级添加到调度控制单元中消息等待队列等待线程的分配,并将已经分配线程执行的任务送往工作线程池执行;0011第五步,线程控制模块在系统运行过程中实时对工作线程池中的多线程进行监视,并根据当前系统负载状态通过容量调节单元对线程池中线程数量进行相应的增减使计算资源达到最优的负载平衡,同时对长时间未执行的线程进行删除,同时对工作异常的线程进行回收。0012本发明中,调度控制单元执行以下步骤实现任务调度0013步骤1、根据接收到的任务变更消息解析出该任务的任务标识,根据任务标识遍历线程索引链表获取该任务与之对应的工作。

17、线程,转到步骤5;如果未查询到该任务的工作线程,转到步骤2;0014步骤2、遍历线程索引表,通过对线程索引表中各任务标识进行纵向遍历从而获取未分配任务的空闲线程,转到步骤5;如果仍未有空闲的工作线程,转到步骤3;0015步骤3、将该消息加入调度控制单元中的消息等待队列,并按照任务等级进行排序,任务等级计算公式如下0016,0017其中R表示任务优先级,取值范围19;0018J表示任务执行阶段的关键程度,取值范围19;0019,表示任务优先级和任务执行阶段的关键程度各自权值;0020P表示计算出的任务等级;0021步骤4、调度控制单元实时扫描等待队列,并返回步骤2;0022步骤5、根据分配到的工。

18、作线程标识和任务变更消息中的任务标识编辑该任务的执行消息并发送至工作线程池执行,任务调度结束。0023本发明中,线程池执行如下步骤0024步骤1、创建工作线程池,根据预设的线程池容量创建相应数量的工作线程,同时为每个工作线程开辟与之对应的消息队列,线程运行过程中实时扫描该消息队列获取任务参数完成数据计算以及数据显示等操作;0025步骤2、创建线程索引表,线程索引表以链表形式将任务标识、线程标识、下级节点地址以及线程消息队列的对应关系进行保存,遍历工作线程池将各线程标识和相对应的消息队列加入线程索引表中;0026步骤3、工作线程池将调度控制单元送来的任务执行消息经解析获取要送往执行的线程标识,根。

19、据线程标识获取线程索引链表中该节点地址;0027步骤4、根据获取的节点地址,将任务执行消息送往该链表节点所指向的消息队列等待线程执行,同时修改该链表节点的任务标识;0028步骤5、当线程消息队列中所有消息执行完成后,将该节点中任务标识清空恢复初始状态,任务执行结束。说明书CN102360310ACN102360327A3/7页70029利用多线程技术创建系统工作线程池以及线程索引表,并根据各工作线程所执行的任务信息实时更新线程索引表,当任务监视信息送往工作线程池等待线程分配时根据执行任务的优先级、监视节点的关键程度对待执行任务进行等级确定并按由高到低的原则建立任务等待队列,当等待队列中任务执行。

20、时,对线程索引表进行遍历确定执行该任务的工作线程,并送往相应线程的消息队列等待执行。0030本发明中,所述容量调节单元执行以下步骤实现容量调节0031步骤1、计算某个时间段CPU工作时间计算CPU使用率0032对于单核CPU计算公式为TI/T100,其中,T表示某个时间段,I表示在这个时间段中CPU处于空闲状态的时间;0033对于多核CPU计算公式为TNI/TN100,其中,T表示某个时间段,I表示在这个时间段中全部CPU核心的总空闲时间的和,N表示CPU到核心数量;0034容量调节单元实时对CPU使用率进行监测,如果监测某一时间段CPU使用率一直大于50则认为系统负载过重需减小线程池容量执行。

21、步骤3;如果监测某一时间段CPU使用率一直小于30则认为系统负载过轻需增加线程池容量提升系统处理能力执行步骤2;CPU使用率保持在3050之间则认为系统工作比较稳定对线程池容量不进行操作。0035步骤2、增加线程池容量,创建工作线程以及对应的线程响应队列同时根据线程标识在线程索引表中增加响应节点;0036步骤3、减少线程池容量,释放线程池中空闲线程并将线程索引表中该线程所在节点删除。0037本发明还公开了一种多任务进程监视系统,包括多个分布式任务执行终端、任务汇集处理服务器以及任务调度中心;0038所述分布式任务执行终端与任务汇集处理服务器之间通过XML格式描述文件传输任务执行情况;0039所。

22、述任务调度中心包括任务调度模块、工作线程池以及线程控制模块;0040所述任务调度模块用于接收所述任务汇集处理服务器传来的任务变更消息,其包括任务控制单元和消息等待缓冲区;所述消息等待缓冲区用于存放消息;所述任务控制单元用于扫描消息并做出响应;0041所述工作线程池用于处理任务,其包括线程索引表,线程控制单元、任务控制单元以及任务执行单元;所述线程索引表包括任务标识、线程标识、下级节点地址以及线程消息队列;所述线程控制单元用于对各工作线程的创建和释放;所述任务控制单元用于对线程索引表中各线程所对应的线程消息队列进行扫描并将获取的消息送往任务执行单元执行;所述任务执行单元用于对送达的任务变更消息进。

23、行响应并将任务执行情况数据进行编码最后送往显示可视化进程监视终端显示;0042所述线程控制模块用于实时对工作线程池中的多线程进行监视,其包括容量调节单元,线程监视单元以及线程干预单元;所述容量调节单元对系统性能进行监测并根据监测结果调节线程池中工作线程数量;所述线程监视单元用于对工作线程池中工作线程进行监视,将长时间空闲和长时间中断的线程进行记录并以日志形式进行保存;所述线程干预单元用于对线程监视单元所记录的异常线程进行释放和重新分配。0043本发明建立了分布式任务执行信息采集技术,对物理分散的各个任务执行终端进说明书CN102360310ACN102360327A4/7页8行任务状态收集;建。

24、立基于多线程的任务调度策略,根据执行任务的优先等级、监视节点的关键程度对执行线程进行合理的分配,实现多任务高效并行处理;建立多线程自适应调节技术,对分配线程进行动态管理,并根据系统的处理能力自适应的调整线程数量使系统运行效率达到最优值。0044本发明通过格式化的XML文件和任务执行终端进行数据交互完成任务执行情况的自动采集,并将采集到的结果通过网络汇总到任务汇集服务器,进行数据的汇总检验,过滤掉冗余和异常数据,最后将过滤后的任务执行情况入库保存。0045本发明系统运行过程中实时对工作线程池中的多线程进行监视,并根据当前系统负载状态通过调节工作线程池中线程数量,使系统效能达到最优的负载平衡,同时。

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

26、明的上述和/或其他方面的优点将会变得更加清楚。0048图1是多任务进程监视方法的流程图。0049图2是分布式任务执行情况数据采集的示意图。0050图3是多线程任务调度中心体系结构框图。0051图4是线程索引表结构图。具体实施方式0052如图1所示本发明分布式系统环境下的多任务进程监视方法,步骤如下0053第一步、由于在分布式执行环境下各任务执行阶段被物理分散在各任务执行终端,如图2所示,本发明利用现有进程监视技术对各任务执行终端的任务执行进程的五种状态就绪、等待、挂起、创建、消失进行监视从而确定该任务执行阶段的具体执行情况,根据任务执行进程的状态将各任务执行阶段的任务执行情况与之相应的定义为五。

27、类就绪任务准备、等待任务等待、挂起任务中断、创建任务执行、消失任务结束。最后将进程监视获取到的任务执行情况通过格式化的XML描述文件进行保存并完成任务执行情况的自动采集。其中约定任务执行阶段的关键程度和任务优先级由低到高为19级;0054第二步、将采集到的XML描述文件通过网络传输到任务汇集处理服务器进行数据的解析和检验,过滤掉冗余和异常数据,最后将过滤后的任务数据写入数据库,同时发送任务变更消息通知任务调度中心;0055第三步、任务调度中心收到任务变更消息后直接提交到多线程任务调度模块,多说明书CN102360310ACN102360327A5/7页9线程任务调度模块将收到的消息加入消息等待。

28、队列,调度控制单元对消息等待队列进行实时扫描在发现消息后按照先进先出的原则进行响应;0056第四步、调度控制单元响应到任务变化消息后,根据线程索引表中的内容确定送往的工作线程,线程索引表构成如图4所示各线程信息和各线程对应的消息等待队列以二维链表的形式保存。通过对线程索引表的遍历确定是否存在空闲线程,如果工作线程池中全部线程已被占用则根据任务等级采用高优先级先执行的策略进行调度,调度控制单元工作详细步骤如下0057步骤1、根据接收到的任务变更消息解析出该任务的任务标识,根据任务标识遍历线程索引链表获取该任务与之对应的工作线程,转到步骤5。如果未查询到该任务的工作线程,转到步骤2。0058步骤2。

29、、遍历线程索引表,通过对线程索引表中各任务标识进行纵向遍历从而获取未分配任务的空闲线程,转到步骤5。如果仍未有空闲的工作线程,转到步骤3。0059步骤3、将该消息加入调度控制单元中的消息等待队列,并按照任务等级进行排序,任务等级计算公式如下0060,0061其中R表示任务优先级,取值范围19;0062J表示任务执行阶段的关键程度,取值范围19;0063,表示任务优先级和任务执行阶段的关键程度各自权值;0064P表示计算出的任务等级;0065步骤4、调度控制单元实时扫描等待队列,并将消息依次送往步骤2执行。0066步骤5、根据分配到的工作线程标识和任务变更消息中的任务标识编辑该任务的执行消息并发。

30、送至工作线程池执行,任务调度结束。0067工作线程池接收到调度控制单元送来的任务执行消息后,经解析获取为该任务分配的执行线程标识,通过线程索引表完成任务的引导,最终完成任务的执行,线程池工作详细步骤如下0068步骤1、创建工作线程池,根据预设的线程池容量创建相应数量的工作线程,同时为每个工作线程开辟与之对应的消息队列,线程运行过程中实时扫描该消息队列获取相关任务参数完成数据计算以及数据显示等操作。0069步骤2、创建线程索引表,如错误未找到引用源。所示,线程索引表以链表形式将任务标识、线程标识和线程消息队列的对应关系进行保存,遍历工作线程池将各工作线程标识和相对应的消息队列加入线程索引表中,链。

31、表长度根据线程池容量进行设置。0070步骤3、工作线程池将调度控制单元送来的任务执行消息经解析获取要送往执行的线程标识,根据线程标识获取线程索引链表中该节点地址。0071步骤4、根据获取的节点地址,将任务执行消息送往该链表节点所指向的消息队列等待线程执行,同时修改该链表节点的任务标识。0072步骤5、当线程消息队列中所有消息执行完成后,将该节点中任务标识清空恢复初始状态,任务执行结束。0073第五步、系统运行时线程控制模块负责对工作线程进行管理,线程监视单元实时对工作线程进行监控当发现异常线程时通知线程干预模块终止该线程,同时将线程消息响说明书CN102360310ACN102360327A6。

32、/7页10应队列中未执行的任务消息发还任务调度模块进行线程的重新分配,容量调节单元对系统性能进行监测并根据监测结果调节线程池中工作线程数量,详细步骤如下0074步骤1、计算某个时间段CPU工作时间计算CPU使用率0075对于单核CPU计算公式为TI/T100,其中,T表示某个时间段,I表示在这个时间段中CPU处于空闲状态的时间;0076对于多核CPU计算公式为TNI/TN100,其中,T表示某个时间段,I表示在这个时间段中全部CPU核心的总空闲时间的和,N表示CPU到核心数量;0077容量调节单元实时对CPU使用率进行监测,如果监测某一时间段CPU使用率一直大于50则认为系统负载过重需减小线程。

33、池容量执行步骤3;如果监测某一时间段CPU使用率一直小于30则认为系统负载过轻需增加线程池容量提升系统处理能力执行步骤2;CPU使用率保持在3050之间则认为系统工作比较稳定对线程池容量不进行操作。0078步骤2、增加线程池容量,创建工作线程以及对应的线程响应队列同时根据线程标识在线程索引表中增加响应节点;0079步骤3、减少线程池容量,释放线程池中空闲线程并将线程索引表中该线程所在节点删除。0080本实施例所述的多任务进程监视系统,包括多个分布式任务执行终端、任务汇集处理服务器以及任务调度中心;0081如图2所示分布式任务执行情况数据采集模型组成如下0082所述分布式任务执行终端与任务汇集处。

34、理服务器之间通过XML格式描述文件传输任务执行情况;0083所述任务执行情况采集过程对各任务执行终端中任务执行进程状态进行收集,并通过格式化的XML描述文件进行保存;0084所述数据传输层用于将XML格式描述文件通过网络传输到任务汇集处理服务器;0085所述任务汇集处理服务器用于接收XML格式描述文件,并进行解析过滤掉冗余和异常数据,最后将过滤后的任务执行情况写入数据库;0086如图3所示多线程任务调度中心体系结构组成如下0087所述任务调度中心包括任务调度模块、工作线程池以及线程控制模块;0088所述任务调度模块用于接收所述任务汇集处理服务器传来的任务变更消息,其包括任务控制单元和消息等待缓。

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

36、元以及线程干预单元;所述容量调节单元对系统性能进行监测并根据监测结果调节线程池中工作线程数量;所述线程监视单元用于对工作线程池中工作线程进行说明书CN102360310ACN102360327A7/7页11监视,将长时间空闲和长时间中断的线程进行记录并以日志形式进行保存;所述线程干预单元用于对线程监视单元所记录的异常线程进行释放和重新分配。0091如图4所示线程索引表结构组成如下0092所述线程索引表包括任务标识、线程标识、下级节点地址以及线程消息队列;0093所述任务标识用于保存送往线程池执行的任务唯一标识;所述线程标识用于保存执行相应任务的线程标识,该标识于任务标识相互对应;所述线程消息队。

37、列用于保存对应任务标识的执行消息,线程运行过程中遍历该消息队列并根据获取到到任务执行消息进行相应操作;所述下级节点地址在执行链表遍历操作时可获取下级数据保存地址,如获取到下级节点地址为空则表明该节点已经是链表底部。0094本实施例通过对分布式终端各任务状态的收集,经多线程任务调度策略对计算资源进行合理的分配,从而实现多任务进程监视的快速响应。0095本发明提供了一种分布式系统环境下的多任务进程监视方法和监视系统的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。说明书CN102360310ACN102360327A1/3页12图1说明书附图CN102360310ACN102360327A2/3页13图2图3说明书附图CN102360310ACN102360327A3/3页14图4说明书附图CN102360310A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


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