实时交通信息处理的任务调度方法与系统的制作方法

文档序号:6584468阅读:196来源:国知局

专利名称::实时交通信息处理的任务调度方法与系统的制作方法
技术领域
:本发明属于智能交通系统(ITS),特别是一种ITS领域中实时交通信息处理的任务调度方法与系统。
背景技术
:现有的实时交通信息处理系统主要采用主机式的信息处理系统,即系统的各个任务都由交通指挥中心的中央服务器完成。随着交通采集技术的发展,检测周期的縮短,需要处理的交通数据成倍增加。在这种情况下,交通指挥中心的中央服务器将不能满足实时处理的要求,需要充分利用交通系统内部的网络资源,将复杂繁重的信息处理任务分发给系统内的各个任务服务器,采用分布式处理方式。本发明提出的实时交通信息处理系统包括一个中央服务器和多个任务服务器。任务调度系统安装在交通指挥中心的中央服务器上。实时交通信息处理系统具有周期性处理海量数据的特点,且对任务的截止期限、预算和可靠性有严格的要求。本发明提出实时交通信息处理的任务调度方法与系统,综合考虑了时间、费用和可靠性约束,依据子任务和任务服务器的对应关系,将信息处理的每个子任务分发给最合适的任务服务器,使得系统最后的执行时间、费用和可靠性最优。现有的任务调度方法很多,但大多数方法都是将任务分发给时间(响应时间或预计任务完成时间)最短的服务器上,未考虑系统对费用、可靠性等其他因素的要求。2007年11月7日公开的中国专利ZL200710052402.6(公告号CN101068157),介绍了一种基于时间和费用约束的网格任务调度方法。该方法将资源按带宽+速度从大到小排序,任务按任务长度从大到小排序,将任务与资源从左到右一一映射。该发明考虑了时间和费用的综合最优,但未考虑资源与任务的对应关系。在这种情况下,资源与分发的任务可能不匹配,不能保证任务能够成功完成。
发明内容本发明就是鉴于上述技术问题而完成的,其目的在于提供一种实时交通信息处理的任务调度方法与系统,能够把信息处理的周期性子任务合理高效地分发到实时交通信息处理系统的多个任务服务器上执行,在保证任务截止时间、预算和可靠性的前提下,完成周期性任务。为了实现本发明的目的,本发明采取的技术方案是实时交通信息处理的任务调度方法,首先,依据子任务的依赖关系,建立有向无环图(DAG图),确定任务的优先级,并将子任务放入提交任务池。然后,周期性提取子任务和任务服务器的属性,并计算子任务和各个任务服务器的综合效用函数。采用回溯算法将子任务分发给各个任务服务器。最后,根据各个任务服务器的任务运行状况,更新存放相关记录的数据结构。实时交通信息处理的任务调度系统,包括一个任务标记器模块按照子任务之间的依赖关系,确定任务优先级;一个提交任务池暂时存放按照优先级排序的子任务;一个任务分发器模块按照综合效用函数,采用回溯算法,将子任务分发到各个任务服务器上;一个运行监视器模块监控各个任务服务器上的任务运行状况,收集各任务服务器的任务执行信息,把这些信息反馈给任务分发器模块。本发明的有益效果在于通过计算效用函数,可以找出各个子任务与任务服务器之间的对应关系,为任务调度提供依据。通过回溯算法,在保证任务截止时间、预算和可靠性的前提下,找到系统最优的任务调度方案。通过本发明所描述的系统,可以将实时交通信息处理系统的周期性子任务合理高效地分发到实时交通信息处理系统的各个任务服务器上。针对本发明的描述和解释是通过以下附图进行的。图1本发明所提及的实时交通信息处理系统的整体图;图2实时交通信息处理的任务调度方法的步骤流程图;图3实时交通信息处理的任务调度系统的组成框图;图4子任务之间依赖关系示意图;图5回溯算法流程图;图6任务运行监视器的工作步骤流程图。具体实施例方式下面结合附图对本发明作进一步的详细描述实时交通信息处理系统的任务可以分解成一组周期性子任务(T1,T2,......,Tm),每个子任务都有一定的长度,用MI(MilllionInstruct,百万指令)表示。整个任务有截止期限D、预算B和可靠性R的要求。其中,截止期限D用S(Second,秒)表示,预算B用CU(CostUnit,费用单位)表示,可靠性用%表示。实时交通信息处理系统中有一组任务服务器(S1,S2,......,Sn),负责执行从任务分发器得到的子任务。图l是实时交通信息处理系统的整体图。整个系统由任务集合100、中央服务器101和任务服务器集合102组成。任务集合100显示了实时交通信息处理系统中各个相互依赖的子任务。任务调度系统安装在中央服务器101上,负责将提交到中央服务器的各个子任务分发给各个任务服务器。图中的任务服务器集合102,负责各个子任务的具体执行,并将任务的执行情况反馈给中央服务器。所有服务器之间通过物理的网络连接和某种网络协议连通。如图2所示,实时交通信息处理的任务调度方法包括以下步骤步骤200,依据子任务的依赖关系,建立有向无环图;步骤201,确定任务优先级,并将子任务放入提交任务池;步骤202,周期性提取子任务和任务服务器的属性,并计算子任务和各个任务服务器的综合效用函数;步骤203,采用回溯算法将子任务分发给各个任务服务器;步骤204,根据各个任务服务器的任务运行状况,更新存放相关记录的数据结构。本发明采用当前任务已耗费时间表、任务队列表、设备故障率表和任务计数器记录子任务和任务服务器的状态。以下对各种数据结构做详细解释当前任务已耗费时间表用来保存每个任务服务器上当前正在运行任务已经耗费的运行时间。表头表示各个任务服务器。第一行数据表示的是每个任务服务器上当前正在运行任务已经耗费的运行时间。例如,当前任务已经在任务服务器S2上运行了5s,那么任务服务器S2在表中对应的已耗费时间值就是5s。系统刚刚启动时,表中所有初始值都为0。任务队列表用来保存各个任务服务器上等待处理任务数。表头表示各个任务服务器。第一行数据表示的是每个任务服务器上当前任务队列的长度。设备故障率表用来保存各个任务服务器的故障率。表头表示各个任务服务器。第一行数据表示的是每个任务服务器成功完成任务数f,第二行数据表示的是每个任务服务器分配任务数d,第三行数据表示任务服务器的故障率,由(d-f)/d计算得到。图3显示了实时交通信息处理的任务调度系统,主要包括任务标记器模块300、提交任务池301、任务分发器模块302和任务运行监视器模块303。图中的任务标记器模块300会依据子任务之间的依赖关系,创建DAG图,确立任务的优先级,并将任务放入提交任务池301。提交任务池中的子任务按照优先级排序,优先级最高的子任务排在队首。任务分发器模块302是整个任务调度系统的核心。在每个周期,任务分发器计算每个子任务在各个任务服务器上时间、费用、可靠性效用函数。其中,时间效用函数的计算,是通过查询当前任务已耗费时间表305和任务队列表306来完成的。可靠性效用函数的计算,是通过查询设备故障率表307和任务计数器308来完成的。依据综合效用函数,采用回溯算法将各个子任务分发到合适的任务服务器上去。任务服务器集合304是由多个任务服务器组成,负责各个子任务的运行。每个任务服务器都有一个任务队列,如任务服务器l的任务队列为Taskl。任务服务器接收任务分发器分发的任务,从任务队列的队首一个接一个地取出任务,并运行它们。任务运行监视器模块305监控每个任务服务器的任务执行情况,收集实时任务执行信息发送回任务分发器。当前任务已耗费时间表305、任务队列表306、设备故障率表307和任务计数器308分别依据任务运行监视器的反馈信息进行更新。接下来的段落将按照图2标明的任务调度方法的步骤,依次详细介绍任务调度的各个环节和所涉及到的模块。对应于步骤200依据子任务的依赖关系,建立有向无环图。图4给出一个具体实施例,周期性子任务的数目m二9。其中,Tl是线圈检测器采集数据的预处理子任务,T2是微波检测器采集数据的预处理子任务,T3是视频检测器采集数据的预处理子任务,T4是数据融合子任务,T5是交通参数提取子任务,T6是交通流预测子任务,T7是交通状态判断子任务,T8是信息集成子任务,T9是数据存储子任务。各个子任务的具体功能如下子任务T1,子任务T2,子任务T3负责检测原始数据,剔除异常数据,修补残缺数据;子任务T4负责对不同采集方式得到的数据进行融合,为应用提供一个统一的数据源;子任务T5采用不同的交通模型,对处理后的交通数据进行统计计算,提取各种交通参数,如速度、流量、占有率、行程时间等;子任务T6依据子任务T4输出的动态交通流数据对未来时段的交通流数据进行预测;子任务T7根据子任务T5输出的交通参数和子任务T6输出的预测交通数据,对相应路段的交通状态进行判断;子任务T8对子任务T5输出的实时交通数据进行集成;子任务T9将子任务T8输出的集成交通数据和子任务T7输出的交通状态存放进核心数据库。对应于步骤201,确定任务优先级,并将子任务放入提交任务池。任务标记器根据有向无环图,确定任务优先级,并发送到提交任务池。在提交任务池中,子任务按优先级从高到底排序,优先级最高的子任务位于队首。对应于步骤202周期性提取子任务和任务服务器的属性,并计算子任务和各个任务服务器的综合效用函数。表1给出子任务和任务服务器的属性列表。表1子任务和任务服务器的属性列表<table>tableseeoriginaldocumentpage7</column></row><table>提取任务的三个属性任务长度X1,关联任务X2,优先级X3。任务服务器的四个属性任务队列Y1、执行速度Y2、单位指令执行成本Y3和故障率Y4。其中,任务队列Yl用等待处理的任务数表示;执行速度Y2,用MIPS(MillionInstructionsPerSecond,每秒百万条指令)表示;单位指令执行成本Y3,用CUPI(CostUnitPerInstruction,每条指令执行费用)表示;故障率Y4,采用没有成功完成的任务数与总的分发任务数的比值表示。任务调度模型由时间效用函数Ot、费用效用函数O。、可靠性效用函数Or组成的综合效用函数U组成,以下分别介绍。①为了尽快完成任务,应该将任务分发给完成时间最短的任务服务器。因此,将子任务Tt在任务服务器Sj上的预计完成时间作为时间效用函数Ot=EFy(1)其中,EFu表示任务Ti在任务服务器上Sj的预计完成时间,它由任务服务器的响应时间RTj和子任务1的预计执行时间ETy决定,EFy通过公式EFy=RTj+ETy计算得到。任务服务器响应时间RTj是指需要等待多久,任务服务器Sj才可以运行即将分发(叫的任务。任务服务器Sj的RTj值的计算,是通过公式<formula>formulaseeoriginaldocumentpage7</formula>进行的。在这个公式中,(Yl)j指任务服务器Sj的任务队列长度,<formula>formulaseeoriginaldocumentpage7</formula>是任务服务器Sj的任务队列中(Yi)j个任务的预计执行时间之和,可以通过J]M;^;^(zi),/(ra)/十算得到。其憂l/中,(Xl)k表示子任务Tk的任务长度,(Y2)j是任务服务器Sj的执行速度。T。是当前正在任务服务器Sj上运行的子任务,(ETq-PT。)表示T。全部完成预计还需要的时间。其中,ETq是任务T。的预计执行时间,由ETq=(Xl)。/(Y2)j计算得到;PT。是子任务T。已经执行的时间,可以从当前任务已耗费时间表中查到。待分发子任务Ti的预计执行时间ETu,可以通过ETu二(Xl)/(Y2)j计算得到。综上所述,时间效用函数可以表示为<formula>formulaseeoriginaldocumentpage8</formula>f两足<formula>formulaseeoriginaldocumentpage8</formula>为了保证任务在截止时间D约束条件下完成,未完成任务的平均执行速度V应<formula>formulaseeoriginaldocumentpage8</formula>(3)待分发任务Ti的预计F,-加Z艺糾,风2,…,m;其中,l是已经完成任务数,可以查询任务计数器得到执行时间ETu应满足ET-VX(XIX(4)综合(1)、(2)可以得到时间效用函数的约束条件骂卢(D—土j;)x(Il),/l](J1),,*=1,2,"',燃;②为了以最小的成本完成任务,子任务应该分发给费用最小的任务服务器此,将子任务Tt在任务服务器Sj上的执行成本作为费用效用函数Oc=(Xl乂X(Y3)j(6)为了保证任务在预算B内完成,任务服务器Sj的单位指令执行成本(Y3)j应该不大于平均执行成本。因此,费用效用函数的约束条件为(5)因<formula>formulaseeoriginaldocumentpage8</formula>其中,(Y3)。k表示执行任务Tk的相应任务服务器的单位指令执行成本。③为了保证任务的可靠性,最重要的子任务应该分发给故障率最小的任务服务器。因此采用子任务1对任务服务器Sj的可靠性满意度作为可靠性效用函数化=~(g)其中,^表示任务服务器Sj在可靠性方面与子任务Ti的匹配程度,通过~=[1—(y化〗代计算得到。|,表示子任务T,的重要度,山1,=[m-(X:"'+(X2)']/m计算得到。其中,m表示子任务总数。所以,可靠性效应函数可以表示为<formula>formulaseeoriginaldocumentpage8</formula>R的约束条件下完成,任务服务器Sj的故障率Y4应该不大于未完成任务的平均故障率。因此,可靠性效用函数的约束条件为(F4》,(1—i0/f|p—(F4)J,K2,…萬(10)其中,(Y4)。k表示执行任务Tk的相应任务服务器的故障率。④对时间效用函数Ot、费用效用函数0。取倒数,可靠性效用函数Or不变,得到采用F二(O'-0'腿)/(0'腿-O'腿)对O't、0'。和0'r进行归一到F。F。和&。综合①、②和③的约束条件,得到将子任务Ti分发到任务服务器间、费用和可靠性综合最优的效用函数,并建立任务调度的目标函数maxU=wiFt+co2FC+co3Fr(14)l/Ot;(11)o,c=i/oc;(12)0,r=or;(13)=(0'-O,化,得Sj的时s.t《13),(d-^i;岸ix/£跳;(5)(7)线S1—Xl^[l-,〗;(10)2,其中,分别表示时间、费用和可靠性效用函数的权值。k=l,…,m0i]对应于步骤203,采用回溯算法将子任务分发给各个任务服务器。图5给出回溯算法流程图。算法具体步骤如下步骤500,按照子任务之间的依赖关系,建立有向无环图,并确定任务优先级;步骤501,取出优先级最高的子任务;步骤502,提取该子任务和各个任务服务器的属性;步骤503,计算该子任务与各个任务服务器的综合效用函数;步骤504,检查是否有任务服务器满足时间、费用和可靠性效用函数的约束条乂牛.士n申.右imUit>m憨士n申.、、/U"右imiat>m憨c;nci'—一—'---'—u赵iHJ少殊ou丄,j^术汉A则逝珠r一厂乂r日」'!工力-口'丄力/乂力'」^^行任务调度;步骤508,休眠等待进入下一个周期;步骤509,返回上一个子任务重新确定任务分发对象;步骤510,检查是否有任务服务器满足约束条件,如果有则继续进入下一步骤511,如果没有则进入步骤513;步骤511,检查满足约束条件的任务服务器的综合效用函数值是否小于选定任务服务器,如果是则进入步骤512,如果否则进入步骤513;步骤512,在满足条件的任务服务器中,选择具有最大综合效用函数值的任务服务器作为该子任务的分发对象;步骤513,检查该子任务优先级是否最高,如果是则进入步骤514,如果否则返回步骤509;步骤514,本周期的任务不9能调度,返回步骤508。步骤204根据各个任务服务器的运行状况,更新存放相关记录的数据结构。这个步骤主要由任务运行监视器完成,图6描述了任务运行监视器的工作步骤。步骤600:实时监控各个任务服务器上的任务执行情况;步骤601:不断更新当前任务已耗费时间表,将各个任务服务器上当前任务的运行时间发送给任务分发器;步骤602:检查是否还有其他任务服务器没有被检查过,如果没有则返回步骤600,如果有则进入步骤603;步骤603:检查该任务服务器上是否有任务刚刚完成,如果没有则返回步骤602,如果有则进入步骤604;步骤604:更新任务计数器,将已经完成任务数发送给任务分发器;步骤605,更新任务队列表,把该任务服务器上等待处理任务数发送给任务分发器;步骤606:更新设备故障率表,将该任务服务器的故障率发送给任务分发器。权利要求实时交通信息处理的任务调度系统,其特征是包含以下模块一个任务标记器模块按照子任务之间的依赖关系,确定任务优先级;一个提交任务池暂时存放按照优先级排序的子任务;一个任务分发器模块按照综合效用函数,采用回溯算法,将子任务分发到各个任务服务器上;一个运行监视器模块监控各个任务服务器上的任务运行状况,收集各个任务服务器的任务执行信息,把这些信息反馈给任务分发器模块。2.根据权利要求1所述的实时交通信息处理的任务调度系统,其特征是所述综合效用函数确定过程如下1)在截止期限的约束下,建立预计任务完成时间最短的时间效用函数;2)在预算的约束下,建立任务执行成本最省的费用效用函数;3)在任务可靠性的约束下,建立安全性最高的可靠性效用函数;4)在以上效用函数的基础上,建立使系统执行时间、费用和可靠性综合最优的效用函数。3.根据权利要求1所述的实时交通信息处理的任务调度系统,其特征是所述运行监视器模块工作步骤是步骤600:实时监控各个任务服务器上的任务执行情况;步骤601:不断更新当前任务已耗费时间表,将各个任务服务器上当前任务的运行时间发送给任务分发器;步骤602:检查是否还有其他任务服务器没有被检查过,如果没有则返回步骤600,如果有则进入步骤603;步骤603:检查该任务服务器上是否有任务刚刚完成,如果没有则返回步骤602,如果有则进入步骤604;步骤604:更新任务计数器,将已经完成任务数发送给任务分发器;步骤605,更新任务队列表,把该任务服务器上等待处理任务数发送给任务分发器;步骤606:更新设备故障率表,将该任务服务器的故障率发送给任务分发器。4.实时交通信息处理的任务调度方法,其特征是包括以下步骤步骤200,依据子任务的依赖关系,建立有向无环图;步骤201,确定任务优先级,并将子任务放入提交任务池;步骤202,周期性提取子任务和任务服务器的属性,并计算子任务和各个任务服务器的综合效用函数;步骤203,采用回溯算法将子任务分发给各个任务服务器;步骤204,根据各个任务服务器的任务运行状况,更新存放相关记录的数据结构。5.根据权利要求4所述的实时交通信息处理的任务调度方法,其特征是所述步骤202中子任务的属性包括任务长度、关联任务和优先级;任务服务器的属性包括任务队列、执行速度、单位指令执行成本和故障率。6.根据权利要求4所述的实时交通信息处理的任务调度方法,其特征是步骤203中所述回溯算法具体步骤是步骤500,按照子任务之间的依赖关系,建立有向无环图,并确定任务优先级;步骤501,取出优先级最高的子任务;步骤502,提取该子任务和各个任务服务器的属性;步骤503,计算该子任务与各个任务服务器的综合效用函数;步骤504,检查是否有任务服务器满足时间、费用和可靠性效用函数的约束条件,如果有则进入步骤505,如果没有则进入步骤509;步骤505,选择具有最大综合效用函数值的任务服务器作为该子任务的分发对象;步骤506,检查有向无环图中是否还有其他子任务,如果有则返回步骤501,如果没有则继续下一步骤507;步骤507,按照所有子任务的分发对象进行任务调度;步骤508,休眠等待进入下一个周期;步骤509,返回上一个子任务重新确定任务分发对象;步骤510,检查是否有任务服务器满足约束条件,如果有则继续进入下一步骤511,如果没有则进入步骤513;步骤511,检查满足约束条件的任务服务器的综合效用函数值是否小于选定任务服务器,如果是则进入步骤512,如果否则进入步骤513;步骤512,在满足条件的任务服务器中,选择具有最大综合效用函数值的任务服务器作为该子任务的分发对象;步骤513,检查该子任务优先级是否最高,如果是则进入步骤514,如果否则返回步骤509;步骤514,本周期的任务不能调度,返回步骤508。7.根据权利要求4所述的实时交通信息处理的任务调度方法,其特征是步骤204更新存放相关记录的数据结构的过程如下1)根据每个任务服务器最新的当前任务已耗费时间,更新当前任务已耗费时间表;2)根据已完成任务情况,更新任务计数器;3)根据每个任务服务器的任务队列情况,更新任务队列表;4)根据每个任务服务器的故障率,更新设备故障率表。全文摘要本发明涉及实时交通信息处理的任务调度方法与系统。本发明中的任务调度方法,主要依据子任务之间的依赖关系,确定任务优先级。周期性提取子任务和任务服务器的属性,并计算子任务和各个任务服务器的综合效用函数。采用回溯算法将子任务分发给各个任务服务器,并根据各个任务服务器上的任务运行状况,更新存放相关记录的数据结构。本发明中的任务调度系统,包含一个任务标记单元,能够根据子任务之间的依赖关系确定任务优先级;一个提交任务池单元,能够暂存按优先级排序的子任务;一个任务分发器单元,能够把子任务分发给各个任务服务器;一个任务运行监视器单元,能够监控每个任务服务器上的任务执行情况,并把反馈信息发送给任务分发器单元。文档编号G06F9/46GK101692208SQ20091023600公开日2010年4月7日申请日期2009年10月15日优先权日2009年10月15日发明者李娟,邵春福申请人:北京交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1