一种多智能体平台的分层实时任务调度方法和系统与流程

文档序号:18564956发布日期:2019-08-30 23:57阅读:302来源:国知局
一种多智能体平台的分层实时任务调度方法和系统与流程
本发明属于多智能体平台实时任务调度
技术领域
,具体涉及一种基于实时操作系统的多智能体平台实时任务调度方法和系统。
背景技术
:多智能体平台由于其自主性、分布性、协调性特性,被广泛应用在许多复杂的控制场景中,如生产规划、制造控制、后勤、仿真、协调专家系统、分布式智能决策、空间探测、教育培训、分布式故障诊断、供应链集成和虚拟企业等。随着越来越多的复杂应用具有实时性要求,这些复杂实时应用通常运行于实时操作系统上,且系统中的任务必须在其截止期前完成。这就要求多智能体平台能在实时操作系统上运行,并能满足应用的时间约束,而智能体调度则是保证多智能体平台满足上层应用实时性的关键。在多智能体平台中,同时运行有多个智能体,智能体随时到达,智能体间既相互独立又彼此协作。每个智能体内部有多个任务,智能体内任务随机到达,智能体中的任务在执行过程中会向其他智能体发出服务请求,其他智能体响应该服务请求在内部产生新的任务,发起服务请求的任务称为请求任务,其他智能体为了响应服务请求而产生的任务称为响应任务。请求任务发出服务请求后悬挂等待,直到收到响应任务执行完回复的结果后才继续执行。当多智能体平台运行在实时操作系统上时,多智能体平台中的每个智能体被实时操作系统当做一个任务,操作系统将选择最高优先级的任务来进行调度,高优先级任务可以抢占低优先级任务所占有的cpu处理器。当一个智能体所对应的任务占有cpu处理器后,智能体独立对其内部任务进行调度。目前,多智能体平台,如jade、mobilec等的任务调度机制都只是针对智能体的任务进行了非抢占调度,而没有考虑实时操作系统对智能体的调度。此外,当智能体内的被调度任务向其他智能体发出服务请求,并悬挂等待其他智能体产生的响应任务执行,此时,若请求任务所在的智能体优先级高,响应任务所在智能体的优先级低,则出现了高优先级任务等待低优先级任务的情况,出现优先级倒置。而已有的多智能体平台调度算法没有考虑在任务请求协作过程中可能出现的优先级倒置情况。因此,现有多智能体平台的调度算法无法解决基于实时操作系统的多智能体平台的智能体任务调度问题,使多智能体平台难以在实时应用中发挥作用。技术实现要素:针对现有技术的不足,本发明结合实时操作系统与多智能体平台特性,提出了一种新的实时多智能体平台的分层任务调度方法(简称has方法)和系统,可使运行于实时操作系统上的多智能体平台中的任务尽可能地在其截止期之前完成,提高了多智能体平台的可靠性。本发明的一种多智能体平台的分层实时任务调度方法,其主要步骤包括:1)将基于实时操作系统的多智能体平台的任务调度抽象为两层调度模型,所述两层调度模型包含一级调度器和二级调度器,将智能体作为实时操作系统中的任务并由一级调度器进行调度,智能体内的任务由二级调度器进行调度;2)所述一级调度器从智能体集合中选择若干个优先级最高的智能体,当优先级相同时进行随机选取,并将其分配到同样个数的cpu核上运行;3)若某智能体被所述一级调度器选中占有cpu核,则该智能体的二级调度器以该智能体的就绪任务集中的任务按其优先级递减顺序在该cpu核上依次执行,相同优先级的任务随机排序;4)当某智能体的就绪任务集中的任务全部执行完后,释放其所占有的cpu核,一级调度器从未被完成且当前未占有处理器的智能体中选择一个优先级最高的智能体占有这个cpu核,并转到步骤3);若此时系统中已无未被完成且未占有处理器的智能体,则处理结束。进一步地,根据截止期最小的任务为智能体设置优先级,优先级高的智能体可被优先执行,使智能体内任务尽可能在其截止期前完成。进一步地,响应请求的任务继承请求任务的到达时间和截止期,避免优先级倒置。优选地,本发明方法采用以下方式实现:设系统中有m个cpu核,t时刻的多智能体平台中有m个智能体,设多智能体平台中的智能体集合为a={a1,..ai,..am},1≤i≤m;智能体ai可表示为ai={ti,pi};其中pi为智能体ai的优先级(pi计算方法见后)。ti为智能体ai的任务集,ti={τi,1,..τi,j,..τi,n(ti)};n(ti)为智能体ai就绪任务集的任务数,1≤j≤n(ti)。任务τi,j表示为τi,j={ri,j,ci,j,di,j};任务τi,j的就绪时间为ri,j,执行时间为ci,j,相对截止期为di,j,相对截止期指任务的截止时间与就绪时间之间的时间间隔,ci,j,di,j可在系统设计时根据具体应用给出。假设多智能体平台运行在实时操作系统之上(在此,假设运行于实时操作系统vxworks之上),且多智能体平台中的每个智能体被实时操作系统作为一个任务进行调度。此时,实时操作系统调度器(称为一级调度器)总是从智能体集合a中选择优先级最高的m个智能体在m个核上运行。同时,每个智能体均有一个调度器(称为二级调度器)负责调度智能体就绪任务集中的任务。has算法的具体步骤如下:1)初始时,一级调度器从智能体集合a中选择m个优先级最高的智能体(优先级相同时随机选取),并将其分配到m个cpu核上运行。(智能体的优先级计算方法见8))2)若智能体ai被一级调度器选中占有cpu核,则智能体ai的二级调度器将以就绪任务集ti中的任务按其优先级递减顺序在该cpu核上依次执行,相同优先级的任务随机排序,在此,任务优先级的计算方法见7)。2.1)当执行到任务τi,j={ri,j,ci,j,di,j}时,若τi,j开始执行时间t加任务执行时间ci,j大于任务到达时间ri,j加任务的相对截止期di,j,即,t+ci,j>ri,j+di,j则判断该任务一定不能完成,并丢弃该任务。2.2)当任务τi,j={ri,j,ci,j,di,j}被执行完成后,重新计算智能体ai的优先级(智能体ai的优先级计算方法见8))。若智能体ai的优先级发生变化,则转入5);2.3)重复2.1)-2.3)直至ai就绪任务集合中的所有任务均被完成。3)当智能体ai就绪任务集中的任务全部执行完后,释放其所占有的cpu核,一级调度器从未被完成且当前未占有处理器的智能体中选择一个优先级最高的智能体占有这个cpu核,并转到2);若此时系统中已无未被完成且未占有处理器的智能体,则处理结束。4)当新智能体ai产生时,根据智能体的任务集ti计算智能体ai的优先级。若此时系统中有空闲cpu核,则一级调度器选择ai占有该处理器,并转到2);若此时系统中无空闲处理器,且ai的优先级大于正在占有cpu核执行的某个智能体的优先级,则ai抢占该智能体的cpu核,并转到2);否则等待执行。(智能体的优先级计算方法见8))5)当智能体ai的优先级发生变化,一级调度器将进行如下处理:5.1)若智能体ai当前正在占有cpu核执行任务,如果ai优先级升高,则继续占有该cpu核执行任务。如果ai优先级降低,一级调度器检查正在等待的智能体(即,未被完成且当前未占有cpu核的智能体)是否有优先级高于ai的,若有,则将其所占有的cpu核分配给该智能体。5.2)若智能体ai当前处于等待状态(即,未被完成且当前未占有cpu核),如果智能体ai优先级升高,则检查是否高于某个正在占有cpu核执行的智能体的优先级,如果是,则抢占其cpu核并转到2)开始执行智能体ai的就绪任务;若ai优先级降低,则令其继续处于等待状态。6)当智能体ai中有新任务到达,设τi,j为智能体ai中新到达的任务6.1)若新到达的任务τi,j={ri,j,ci,j,di,j}是智能体ai为了响应某个智能体(记为am)的请求任务(记为τm,k)对其所发出的服务请求而产生的响应任务,则ri,j=rm,k,di,j=dm,k,ci,j根据应用设定。6.2)若新到达任务τi,j={ri,j,ci,j,di,j}是智能体ai中自身产生的任务,则ri,j,ci,j,di,j均根据应用设定。6.3)重新计算智能体ai的优先级(计算方法见7)),若智能体ai优先级发生变化,则转到到5)。7)智能体ai就绪任务集中任务的优先级根据其绝对截止期设定。设τi,k={ri,k,ci,k,di,k}为ai就绪任务集中的任务,则其绝对截止期为:di,k=ri,k+di,k。任务绝对截止期越小,优先级越高。8)智能体ai的优先级计算方法:设τi,k={ri,k,ci,k,di,k}是智能体ai就绪任务集中绝对截止期最小的任务,智能体ai优先级计算公式为:pi=255-(ri,k+di,k-500)%1000/5。与上面方法对应地,本发明还提供一种多智能体平台的分层实时任务调度系统,其包括实时操作系统调度器和智能体内调度器,所述实时操作系统调度器作为一级调度器,所述智能体内调度器作为二级调度器;将智能体作为实时操作系统中的任务并由所述一级调度器进行调度,智能体内的任务由所述二级调度器进行调度;所述一级调度器从智能体集合中选择若干个优先级最高的智能体,当优先级相同时进行随机选取,并将其分配到同样个数的cpu核上运行;若某智能体被所述一级调度器选中占有cpu核,则该智能体的二级调度器以该智能体的就绪任务集中的任务按其优先级递减顺序在该cpu核上依次执行,相同优先级的任务随机排序;当某智能体的就绪任务集中的任务全部执行完后,释放其所占有的cpu核,所述一级调度器从未被完成且当前未占有处理器的智能体中选择一个优先级最高的智能体占有这个cpu核;若此时系统中已无未被完成且未占有处理器的智能体,则处理结束。本发明的有益效果:本发明结合了实时操作系统与多智能体平台的特点,同时考虑由于智能体间协作而导致的任务调度过程中的优先级倒置问题,通过构建实时多智能体系统的分层任务模型,提出了一种多智能体平台的分层实时任务调度方法,可使运行于实时操作系统上的多智能体平台中的任务尽可能地在其截止期之前完成,满足了复杂应用的实时性需求,增加了多智能体系统的可靠性和可预测性。附图说明图1是分层调度模型的结构示意图。图2是智能体占有cpu核后任务执行流程图。图3是有新智能体到达后处理流程图。图4是智能体优先级变化后处理流程图。图5是有新任务到达时处理流程图。具体实施方式下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明分析实时操作系统中多智能体平台智能体和任务的特点,将多智能体平台中的智能体和任务抽象为带服务请求的两层实时任务模型,相应地,将基于实时操作系统的多智能体平台的任务调度抽象为两层调度模型,如图1所示,智能体当做实时操作系统中的一个任务,由实时操作系统调度器(图1中称为系统调度器)进行调度,智能体内调度器(图1中称为智能体调度器)对内部任务进行调度。将实时操作系统调度器称为一级调度器,智能体内调度器称为二级调度器。调度算法描述了智能体平台中的智能体和任务被调度的过程,调度算法的具体步骤如下:1)初始时,一级调度器从智能体集合a中选择m个优先级最高的智能体(优先级相同时随机选取),并将其分配到m个cpu核上运行(智能体优先级计算方式如前文所述)。2)图2给出了当智能体ai被选中占有cpu核后的具体流程。若智能体ai被一级调度器选中占有cpu核,则智能体ai的二级调度器将以就绪任务集ti中的任务按其优先级递减顺序在该cpu核上依次执行,相同优先级的任务随机排序。2.1)当执行到任务τi,j时,若判断该任务一定不能完成,并丢弃该任务。2.2)当任务τi,j被执行完成后,重新计算智能体ai的优先级。若优先级发生变化,则转到步骤5)。2.3)重复2.1)-2.3)直至ai就绪任务集合中的所有任务均被完成。3)若该智能体就绪任务集合中的所有任务均被完成,则释放占有的处理器。4)图3给出了当新智能体ai产生后的具体流程,包括:4.1)若此时系统中有空闲cpu核,则一级调度器选择ai占有该处理器,并转到2);若此时系统中无空闲处理器,则计算ai的优先级。4.2)若ai的优先级大于正在占有cpu核执行的某个智能体的优先级,则ai抢占该智能体的cpu核,并转到2);否则等待执行。5)图4给出了当智能体ai的优先级发生变化后的具体流程,包括:5.1)若智能体ai正在占有cpu处理器,且智能体ai优先级升高,则继续占有cpu处理器执行2);若智能体优先级降低,则判断是否有正在等待的智能体优先级高于当前智能体,如果有,则抢占当前智能体占有的处理器,并进入步骤2)。5.2)若智能体ai当前处于等待状态,如果智能体ai优先级升高,则检查是否高于某个正在占有cpu核执行的智能体的优先级,如果是,则抢占其cpu核并转到2)开始执行智能体ai的就绪任务;若ai优先级ai降低,则令其继续处于等待状态。6)图5给出了智能体中有任务新到达时的处理流程,包括:6.1)若新到达的任务τi,j={ri,j,ci,j,di,j}是智能体ai为了响应某个智能体(记为am)的请求任务(记为τm,k)对其所发出的服务请求而产生的响应任务,则ri,j=rm,k,di,j=dm,k,ci,j根据应用设定。6.2)若新到达任务τi,j={ri,j,ci,j,di,j}是智能体ai中自身产生的任务,则ri,j,ci,j,di,j均根据应用设定。6.3)重新计算智能体ai的优先级(计算方法见7)),若智能体ai优先级发生变化,则转到到5)。下面结合表1、表2、表3、表4、表5给出的,在2核cpu环境中,多智能体a、b、c、d、e的相关任务数据,来对本发明提出的实时任务调度方法做进一步说明。表1智能体a中到达任务集合到达时间r执行时间c相对截止期d绝对截止期taska10150897897taska20155725725表2智能体b中到达任务集合到达时间r执行时间c相对截止期d绝对截止期taskb10115686686taskb215133895910taskb31521212651280表3智能体c中到达任务集合到达时间r执行时间c相对截止期d绝对截止期taskc1027013471347taskc215162970985taskc315127759774表4智能体d中到达任务集合到达时间r执行时间c相对截止期d绝对截止期taskd115116697712taskd215163974989taskd31525014991514表5智能体e中到达任务集合到达时间r执行时间c相对截止期d绝对截止期taske10150899899taske20133798798taske315113677692(1)在时刻0,a、b、c、e四个智能体中都有任务,4个智能体到达,各个智能体根据任务集中绝对截止期最小的任务计算优先级。智能体a根据taska2计算优先级,到达时间为0,相对截止期为725,得到优先级为210。智能体b根据taskb1计算优先级,到达时间为0,相对截止期为686,得到优先级为218。智能体c根据taskc1计算优先级,到达时间为0,相对截止期为1347,得到优先级为86,智能体e根据taske1计算优先级,到达时间为0,相对截止期为899,得到优先级为175,此时它们的优先级顺序为:智能体b>智能体a>智能体e>智能体c在2核cpu环境中,选择优先级较高的智能体b和智能体a各占一个cpu处理器核开始执行其中任务,按照任务优先级由大到小,即绝对截止期由低到高执行,智能体b执行taskb1,智能体a执行taska2。(2)在时刻15,有新任务到达,各个智能体根据绝对截止期最小的任务重新计算优先级,智能体c根据任务taskc3计算优先级,到达时间为15,相对截止期为759,得到优先级为200。智能体d新到达,根据任务taskd1计算优先级,到达时间为15,相对截止期为697,得到优先级为213。智能体e根据任务taske3计算优先级,到达时间为15,相对截止期为677,得到优先级为216。此时各智能体的优先级顺序为:智能体b>智能体e>智能体d>智能体a>智能体c智能体e抢占智能体a的cpu处理器开始执行其中任务,按照任务优先级由大到小,即绝对截止期由低到高执行,智能体e执行taske3。(3)在时刻115,智能体b的任务taskb1执行完,智能体b重新根据任务集中绝对截止期最低的任务taskb2计算优先级,到达时间为15,相对截止期为895,得到优先级为173。智能体b优先级降低,此时,智能体d抢占智能体b的cpu处理器,并开始执行taskd1。(4)在时刻128,智能体e的任务taske3执行完,智能体e重新根据任务集中绝对截止期最低的任务taske2计算优先级,到达时间为0,相对截止期为798,得到优先级为195。智能体e优先级降低,此时,智能体a抢占智能体b的cpu处理器,并继续执行taska2。(5)在时刻188,智能体a的任务taska2发出服务请求,智能体e响应智能体a的请求而产生响应任务taske4,taske4继承taska2的到达时间r和相对截止期d。此时智能体a和智能体e中的任务情况如表6和表7所示。表6智能体a中到达任务集合表7智能体e中到达任务集合此时,智能体e根据绝对截止期最小的任务taske4计算优先级,得到优先级为210。智能体a挂起任务taska2后,根据taska1计算优先级,得到优先级为176。此时智能体e抢占智能体a的处理器开始执行。(6)在时刻228,智能体e的响应任务taske4执行完,返回结果给智能体a,智能体a收到结果后,恢复挂起等待的任务taska2,此时智能体a和智能体e中任务情况如表8和表9所示。表8智能体a中到达任务集合到达时间r执行时间c相对截止期d绝对截止期taska10150897897taska2(恢复执行)0155725725表9智能体e中到达任务集合到达时间r执行时间c相对截止期d绝对截止期taske10150899899taske20133798798taske3(执行完)15113677692taske4(执行完)040725725智能体a重新根据绝对截止期最小的任务taska2计算优先级,得到优先级为210,智能体a抢占智能体e的处理器继续执行。(7)根据以上所述规则继续执行,直到所有智能体中所有任务都执行完。上述实施例仅为例示性说明本发明的原理及其功效,而非用于限制本发明的范围。任何熟于此技术的本领域技术人员均可在不违背本发明的技术原理及精神下,对实施例作修改与变化。本发明的保护范围应以权利要求书所述为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1