一种遥感卫星地面处理系统任务动态创建与分配的方法技术方案

技术编号:12653436 阅读:58 留言:0更新日期:2016-01-06 11:20
一种遥感卫星地面处理系统任务动态创建与分配的方法,包括:通过实验估算各项任务的任务消耗值、各个节点的节点能力值;创建配置文件定义节点信息表、订单信息表、任务信息表和订单分解表;通过订单分解表建立初始任务队列;实时收集遥感卫星地面处理系统各个节点的剩余能力值;遍历任务队列,将队列中的任务按其最小数目创建,计算节点剩余能力值是否大于任务消耗值;再按任务单次增长数目进行任务创建;直到节点剩余能力值为0或所有任务均达到其最大数目;任务一旦创建成功,就根据节点信息表将任务下发到相应的节点上。通过本方法,该系统根据当前节点情况,动态计算各类任务的数目,缩短数据处理过程的执行时间,使系统资源得到充分利用。

【技术实现步骤摘要】

本专利技术属于分布式系统任务调度领域,是一种可以根据系统中各个节点的当前工作能力,以及任务分配要求,动态完成任务创建与分配过程的方法,能够使分布式系统资源得到最大化利用。
技术介绍
近年来,随着我国卫星事业的快速发展,遥感卫星地面处理系统从单星单站发展成单星多站、多星多站,处理任务与日俱增。需要相应的任务调度过程,能够根据系统的节点数量和能力,动态进行任务创建和分配,最大化提高系统并发性,充分发挥系统能力,并具有一定的灵活性。将异构任务调度到异构资源上的问题属于任务调度问题,存在许多任务调度问题具体实例的启发式算法,如网格计算中的遗传算法、按优先级顺序调度、轮转法、负载最小优先算法,更多的是讨论任务集合中任务数量一定的情况下,如何进行任务分配,能够使总体执行时间最短、或是使任务的等待时间最短、或是使传输时间最短。而遥感卫星地面处理系统需要根据系统能力动态进行任务的创建,每类任务的数量在进行任务分配之前是不确定的,同时还要满足某些任务按固定节点执行、某些任务按固定数量执行、某些任务之间的数量有约束关系等要求。因此,需要设计相应的方法,满足系统要求并易于工程实现。
技术实现思路
本专利技术的技术解决问题是:根据分布式系统中各个节点的当前工作能力,以及任务分配要求,合理完成遥感卫星地面处理系统中任务的创建与分配,保证系统资源的最大利用。该方法主要包括以下步骤:(I)该系统由多台型号相同或不同的服务器组成,服务器之间通过千兆交换机实现网络相通;选定其中一台服务器为主节点,其余服务器为处理节点;(2)主节点完成任务的动态创建与分配过程,处理节点接收并完成主节点分配的任务,主节点和处理节点之间通过WebService方式通讯;(3)主节点建立节点信息配置表NodeConfig,包括:节点代号NodelD、节点名NodeName、节点上可运行的任务代号TaskID、节点IP地址IPAddress、节点服务端口 Port、节点能力值NodeCapacity ;(4)主节点建立订单配置表OrderConfig,包括:订单代号OrderlD、订单名OrderName ;(5)主节点建立任务配置表TaskConfig,包括:任务代号TaskID、任务名TaskName、任务消耗值TaskCapacity ;(6)主节点建立订单任务分解配置OrderTaskXRefConfig,配置信息包括订单代号OrderlD、任务代号TaskID、任务的最小数目MinNum、任务的最大数目MaxNum、任务单次增长数目AddNum ;定义了每个订单需要分解的任务种类,以及每个任务的最小数目、最大数目、单次增长数目;(7)步骤(3)中所述的节点能力值NodeCapacity和步骤(5)中所述的任务消耗值TaskCapacity是根据实验估算出的,为整数;(8)主节点建立订单分解线程、任务下发线程;(9)订单分解线程遍历步骤(6)中所述的订单任务分解配置OrderTaskXRefConfig,查找该订单代号OrderID所对应的所有任务代号TaskID,组成任务队列TaskList ;初始情况时,任务队列TaskList中每个任务的任务数目tasknum = O ;(1)TaskList中的每个任务按步骤(6)中所述任务的最小数目MinNum创建,统计节点的剩余资源是否大于O ;节点的剩余资源为节点能力值NodeCapacity之和减去所有运行任务的任务消耗值TaskCapacity之和;(11)如果当前系统节点的剩余资源小于0,则订单不能运行,需要等待;(12)如果当前系统节点的剩余资源大于或等于O,则TaskList中每个任务的任务数目tasknum均等于其MinNum ;按MinNum创建任务,并将任务添加到任务等待队列WatingTaskList ;继续按步骤(6)中所述的任务单次增长数目AddNum创建任务,将任务添加到任务等待队列WatingTaskList,每当有新任务创建成功都要重新计算系统的剩余资源,直到系统的剩余资源为0,或者所有任务都已达到OrderTaskXRefConfig中规定的任务的最大数目MaxNum ;(13)由任务下发线程,根据步骤(3)中所述的NodeConfig,将WatingTaskList中的每个任务分配到相应的处理节点上。本专利技术遥感卫星地面处理系统任务动态创建与分配的方法的优点在于:(I)静态调度和动态调度相结合的混合调度方法,过程简单,容易实现;(2)根据系统内的节点能力,实现任务数量的动态计算,最大化发挥系统性能;(3)可满足任务数量固定、任务数量可变、任务数量有约束关系情况下的任务创建情况;(4)能够满足遥感卫星地面处理系统节点数量变化、任务种类变化、任务数量要求变化(任务数量固定、任务数量可变、任务数量有约束关系)的情况。【附图说明】图1为遥感卫星地面处理系统任务动态创建与分配方法的流程图;【具体实施方式】在下文中,参照附图来更充分地描述本专利技术的实施例,附图中示出了本专利技术的实施例。然而,本专利技术的实施例可以以许多不同的形式来实施,而不应该本解释为限于在此列出的实施例。,该系统由多台型号相同或不同的服务器组成,服务器之间通过千兆交换机实现网络相通;参照图1对该方法主要步骤作出说明:(I)首先,选定其中一台服务器为主节点,其余服务器为处理节点;(2)主节点完成任务的动态创建与分配过程,处理节点接收并完成主节点分配的任务,主节点和处理节点之间通过WebService方式通讯;(3)主节点建立节点信息配置表NodeConfig,包括:节点代号NodelD、节点名NodeName、节点上可运行的任务代号TaskID、节点IP地址IPAddress、节点服务端口 Port、节点能力值NodeCapacity ;(4)主节点建立订单配置表OrderConfig,包括:订单代号OrderlD、订单名OrderName ;(5)主节点建立任务配置表TaskConfig,包括:任务代号TaskID、任务名TaskName、任务消耗值TaskCapacity ;(6)主节点建立订单任务分解配置OrderTaskXRefConfig,配置信息包括订单代号OrderlD、任务代号TaskID、任务的最小数目MinNum、任务的最大数目MaxNum、任务单次增长数目AddNum ;规定了每个订单可以分解的任务,以及每个订单创建每个任务的最小数目、最大数目、单次增长数目;(7)步骤(3)中所述的节点能力值NodeCapacity和步骤(5)中所述的任务消耗值TaskCapacity是根据实验估算出的,为整数;估算的方法为:1.统计每个任务在运行过程中的最大使用内存Tm,即运行时所耗内存的峰值;i1.获得各个节点的实际物理内存,设置可用系数为0.7,实际物理内存乘以可用系数为该节点的可用内存Nm ;ii1.取Tm最小的任务,其Tm为Tm_min,设置该任务消耗值TaskCapacity为I,则其他任务的任务消耗值TaskCapacity =任务的Tm/Tm_min ;iv.各节点的节点能力值 NodeCapacity = Nm/Tm_min ;v.取一恰当整数,乘以ii1、iv步骤获得的TaskCapac本文档来自技高网...

【技术保护点】
一种遥感卫星地面处理系统任务动态创建与分配的方法,其特征在于该方法步骤如下:(1)多台服务器之间通过千兆交换机实现网络相通;选定其中一台服务器为主节点,其余服务器为处理节点;(2)主节点完成任务的动态创建与分配过程,处理节点接收并完成主节点分配的任务,主节点和处理节点之间通过WebService方式通讯;(3)主节点建立节点信息配置表NodeConfig,包括:节点代号NodeID、节点名NodeName、节点上可运行的任务代号TaskID、节点IP地址IPAddress、节点服务端口Port、节点能力值NodeCapacity;(4)主节点建立订单配置表OrderConfig,包括:订单代号OrderID、订单名OrderName;(5)主节点建立任务配置表TaskConfig,包括:任务代号TaskID、任务名TaskName、任务消耗值TaskCapacity;(6)主节点建立订单任务分解配置OrderTaskXRefConfig,配置信息包括订单代号OrderID、任务代号TaskID、任务的最小数目MinNum、任务的最大数目MaxNum、任务单次增长数目AddNum;定义了每个订单需要分解的任务种类,以及每个任务的最小数目、最大数目、单次增长数目;(7)步骤(3)中所述的节点能力值NodeCapacity和步骤(5)中所述的任务消耗值TaskCapacity是根据实验估算出的,为整数;(8)主节点建立订单分解线程、任务下发线程;(9)订单分解线程遍历步骤(6)中所述的订单任务分解配置OrderTaskXRefConfig,查找该订单代号OrderID所对应的所有任务代号TaskID,组成任务队列TaskList;初始情况时,任务队列TaskList中每个任务的任务数目tasknum=0;(10)TaskList中的每个任务按步骤(6)中所述任务的最小数目MinNum创建,统计节点的剩余资源是否大于0;节点的剩余资源为节点能力值NodeCapacity之和减去所有运行任务的任务消耗值TaskCapacity之和;(11)如果当前系统节点的剩余资源小于0,则订单不能运行,需要等待;(12)如果当前系统节点的剩余资源大于或等于0,则TaskList中每个任务的任务数目tasknum均等于其MinNum;按MinNum创建任务,并将任务添加到任务等待队列WatingTaskList;继续按步骤(6)中所述的任务单次增长数目AddNum创建任务,将任务添加到任务等待队列WatingTaskList,每当有新任务创建成功都要重新计算系统的剩余资源,直到系统的剩余资源为0,或者所有任务都已达到OrderTaskXRefConfig中规定的任务的最大数目MaxNum;(13)由任务下发线程,根据步骤(3)中所述的NodeConfig,将WatingTaskList中的每个任务分配到相应的处理节点上。...

【技术特征摘要】

【专利技术属性】
技术研发人员:付春岭曾莎莎洪飞张爽娜
申请(专利权)人:航天恒星科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1