CN106155781B - 一种多智能体平台中的实时任务调度方法 - Google Patents

一种多智能体平台中的实时任务调度方法 Download PDF

Info

Publication number
CN106155781B
CN106155781B CN201510163407.0A CN201510163407A CN106155781B CN 106155781 B CN106155781 B CN 106155781B CN 201510163407 A CN201510163407 A CN 201510163407A CN 106155781 B CN106155781 B CN 106155781B
Authority
CN
China
Prior art keywords
task
time
intelligent body
reserved
ready
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510163407.0A
Other languages
English (en)
Other versions
CN106155781A (zh
Inventor
乔颖
白雪莹
王宏安
张克铭
赵瑞轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201510163407.0A priority Critical patent/CN106155781B/zh
Publication of CN106155781A publication Critical patent/CN106155781A/zh
Application granted granted Critical
Publication of CN106155781B publication Critical patent/CN106155781B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种多智能体平台中的实时任务调度方法。本方法为:1)将t时刻智能体A的就绪任务集合中的简单任务和预留任务分别按照释放时间升序排列;2)智能体A对到达的新任务进行准入判断,如果可准入则将该新任务按照释放时间插入优先级队列中;3)如果t时刻智能体A正在执行一预留任务,则每一系统执行单元完毕后检查优先级队列中是否有任务就绪,如果有,则将该任务的就绪时间延迟到该预留任务执行结束;如果t时刻智能体A正在执行优先级队列中的一简单任务,则在每一个系统执行单元结束后,检查是否有预留任务在该时刻开始执行,如果有则停止执行当前任务,转而执行该预留任务。本发明大大增强了多智能体平台的可靠性和可预测性。

Description

一种多智能体平台中的实时任务调度方法
技术领域
本发明属于多智能体平台实时任务调度技术领域,具体涉及一种多智能体平台的实时任务调度方法。
背景技术
现代工业的发展方向是向大型化和复杂化前进,多智能体技术的发展为复杂系统的智能控制提供了一条新的途径。多智能体技术通过研究和建立多智能体系统,把多个单智能体有机地组织起来,以一定的通讯方式,协调它们之间的行为,使其共同协作来完成单个智能体无法完成的任务。多智能体技术具有自主性、分布性、协调性,被广泛应用于生产规划、制造控制、后勤、仿真、协调专家系统、分布式智能决策、空间探测、教育培训、分布式故障诊断、供应链集成和虚拟企业等领域。
随着技术的发展,针对不同领域的多智能体系统越来越多,但是这些多智能体系统遵循的多智能体开发标准各不相同,造成很大的开发成本。因此多智能体平台的开发引起了人们的关注。多智能体平台将多智能体系统底层实现和多智能体系统的具体内容分离开来,使用户可以只关注领域知识实现针对其领域的多智能体系统,而不需要知道具体细节。通过多智能体平台可以对需要的多智能体系统快速建模,提高用户开发效率。但是随着多智能体系统应用的扩展,系统对实时性的要求越来越高。实时不仅要求程序的逻辑正确,而且要求结果产生的时间正确,这就使多智能体系统也具有了实时约束,也就是说,系统中的任务必须在其截止期前完成。多智能体平台的实时任务调度方法对于保障多智能体系统的实时约束具有重要作用。
目前多智能体平台实时任务调度主要集中在改进平台体系结构、设计智能体实时建模语言等方面,而关于平台内硬实时任务调度的研究相对较少。此外,由于智能体间的协作性,导致多智能体平台中的任务具有其特殊性。目前尚无智能体平台相关的调度算法考虑到该特性。
本文为了满足多智能体平台内任务的时限要求,提出了一种用于保证任务截止期的硬实时调度方法。该方法考虑了多智能体平台内任务的实时需求以及智能体间任务的协作关系,保障平台中的任务在截止期内完成,提高了多智能体平台的可靠性。
发明内容
针对现有技术中的不足,本发明提出了一种新的多智能体平台实时任务调度方法,来保证平台中的任务能够在截止期内完成。该方法主要有三部分内容:(1)对智能体平台内任务 进行分类、建模;(2)根据任务模型,提出一种新的在线调度策略——预留时间片和EDF调度相结合的调度策略;(3)基于该调度算法,设计了一种新的在线准入控制算法,来保证凡是被该准入控制算法准入的任务都可以在截止期前被调度完成。
首先,本发明将多智能体平台中的实时任务分为以下三种类型:1)简单任务,即可以由单个智能体独立完成而不需要其他智能体协助的任务。2)请求任务,是指执行期间请求其他智能体协作的任务。它执行期间会挂起等待其他智能体协作。3)响应任务,是指为了协助某个智能体的请求而在其他智能体中产生的任务。响应任务不是独立存在的,它由请求任务产生。
本发明中,智能体上的任务可以形式化描述为:
τi={type,ri,Ci,Ei,Di}
其中,type表示任务类型,type的属性有{simple,request,response},其中simple表示简单任务,request表示请求任务,response表示响应任务。ri表示任务的释放时间。Ci表示任务的执行时间。Di表示任务的相对截止期,Ei表示任务的挂起时间。对于简单任务和响应任务,Ei=0。对于请求任务,Ei不为0。由于挂起,请求任务包含三个执行区域,挂起前执行区域挂起期间响应智能体上的执行区域挂起后的执行区域
其次,为了描述在线调度算法,首先对请求任务进行划分。在本发明中,智能体间 的协作请求通过智能体上的请求任务发出。假设,智能体A向智能体B发出协作请求。智能体 A上请求任务τi的执行过程如下:(1)智能体A先执行部分任务后向智能体B请求协助,已知 执行时间为(2)智能体B中产生响应任务,协助计算,执行时间为响应任务完成后, 将结果反馈给智能体A;(3)智能体A收到反馈后继续执行剩余部分任务,执行时间为 这三个步骤可以视为请求任务的有先后顺序的三个子任务。根据请求任务的执行过程可以 将请求任务划分为三个子任务。(1)子任务其中(2) 子任务其中为子任务的结束时间,(3)子任务 其中等于子任务的结束时间,另外,对由请求任务 划分出来的三个子任务使用已有的按子任务执行时间占请求任务总执行时间的比例分配 截止期。该方式具有常数时间复杂度,易于计算。因此,子任务截止期时间,计算公式如下:
系统执行单元是指系统执行任务的基本时间单位,是已知的。
预留时间片,是指为响应任务预留的若干个系统执行单元,该时间片的开始时间、结束时间确定,任务在执行期间不会被其他任务抢占处理机。
设预留时间片上执行的任务为预留任务。响应任务会被分拆为若干个预留任务。
t时刻智能体的就绪集合是指在t时刻,已经准入到智能体但是还未完成的任务集合。
本发明所述在线调度算法的步骤如下:
设t时刻,将智能体A的就绪任务集合(包括简单任务和预留任务)中的简单任务按照释放时间升序排列组成优先级队列,就绪集合中的预留任务按照开始时间升序排列组成预留队列。
1)t时刻,若有新任务τi到达智能体A,则在智能体A中执行以下判断,否则进入步骤2)
a)若新任务τi为简单任务,通过后文所述在线准入算法,判断任务是否准入。如果允许准入,则将新任务按照释放时间插入智能体A的优先级队列中。
b)若新任务τi为请求任务,由于智能体间的协作请求是通过智能体上的请求任务发出的。假设智能体A通过请求任务τi向智能体B发出协作请求,通过后文所述在线准入算法,判断任务是否准入。如果允许准入,请求任务会被拆分为三个子任务:简单任务响应任务简单任务并分别对三个子任务进行如下处理。将任务按照释放时间插入智能体A的优先级队列中,将任务会在准入时被切分成多个预留任务,将其对应的预留任务按照开始时间插入智能体B的预留队列中。
2)若t时刻,智能体A有任务正在执行,则转入4),若t时刻智能体A没有任务正在执行,则进入步骤3);
3)若t时刻,智能体A的预留队列中有预留任务要开始执行,则执行该预留任务,进入步骤4),否则,查看t时刻优先级队列是否有任务要执行,若有则选择优先级最高的任务,进入步骤4);
4)若正在执行的任务为预留任务,在每一个系统执行单元结束后,检查优先级队列中是否有任务就绪,如果有,则将该任务的就绪时间延迟到该预留任务执行结束。转入步骤5);
5)若正在执行的任务为高优先级简单任务,在每一个系统执行单元结束后,
a)检查预留队列中是否有预留任务在该时刻开始执行,如果有则停止执行当前任务,更 新任务相关信息,将停止执行的任务重新插入优先级队列,转而执行预留任务。否则转入b)
b)检查优先级队列中是否有任务就绪,如果有,则判断新就绪任务的优先级是否高于当前任务,如果是,则高优先级任务抢占处理机,停止执行当前任务,重新插入优先级队列,转而执行高优先级任务。
基于本发明所述的调度算法,给出相应的准入控制算法,算法的具体思路为:
设t时刻,新任务τi到达智能体A时,
1.如果新任务τi为简单任务或响应任务
(1)计算新任务τi加入智能体A的就绪任务集合后,新任务的最坏情况响应时间,如果该时间大于新任务的相对截止期,拒绝准入。否则,转入步骤2)。
(2)计算新任务τi加入智能体A的就绪任务集合后,就绪任务集合中其他低优先级任务的最坏响应时间,如果存在某个任务的最坏响应时间大于其相对截止期,则说明新任务的加入影响了之前准入的任务,则拒绝新任务准入。否则,允许准入新任务。
2.如果新任务τi为请求任务,假设智能体A向智能体B提出请求。
(1)将请求任务τi划分为三个子任务其中子任务为简单任务,在智能体A上执行。为响应任务,在智能体B上执行。
(2)假设加入了智能体A的就绪任务集,计算的最坏响应时间,如果该时间大于其相对截止期,则拒绝准入任务。否则,计算就绪任务集合中其他低优先级任务的最坏响应时间,如果存在某个任务的最坏响应时间大于其截止期,则拒绝准入。否则,计算的完成时间,准入步骤(3)。
(3)的到达时间等于的完成时间。假设加入智能体B的就绪任务集合。计算的最坏响应时间,如果该时间大于其相对截止期,则拒绝准入。否则,计算就绪任务集合中其他低优先级任务的最坏响应时间,如果存在某个任务的最坏响应时间大于其截止期,则拒绝准入。否则,计算的完成时间,准入步骤(4)。
(4)的到达时间等于的完成时间。假设加入智能体A的就绪任务集合。计算的最坏响应时间,如果该时间大于其相对截止期,则拒绝准入。否则,计算就绪任务集合中其他低优先级任务的最坏响应时间,如果存在某个任务的最坏响应时间大于其截止期,则拒绝调度。否则,允许准入。
实时任务τi的最坏情况响应时间计算公式为:WRi=lsi+Ci+DelayedTime(τi,lsi)-ri,其中WRi表示任务τi的最坏情况响应时间,lsi表示任务τi的最晚开始时间,DelayedTime(τi,lsi)表示任务在lsi开始执行时受到预留任务影响而延迟的时间,ri表示任务的释放时间。实时任务τi的最坏情况完成时间计算公式为WCTi=lsi+Ci+DelayedTime(τi,lsi)=WRi+ri
在本发明所述准入控制算法中,请求任务的第一个子任务和简单任务是在该类任务释放时判断能否准入,而请求任务的第三个子任务和响应任务是在该类任务释放前,通过从当前时刻智能体就绪任务集合的情况预估未来某个时刻该任务释放来判断能否准入的。因此在计算最晚开始时间时有一些区别。
设t时刻智能体A中已准入的简单任务按照释放时间升序排列组成优先级队列,t时刻智能体A中已准入的预留任务按照开始时间升序排列组成预留队列。
1)若任务τi为简单任务或请求任务的第一个子任务,求t时刻τi的最坏情况响应时间WRi的计算方式为:
a)计算τi的最晚开始时间lsi,按照任务τi的优先级大小,获取它在优先级队列中的位置,并根据该位置得到比τi优先级高一级的任务,该任务的最晚完成时间为τi的最晚开始时间lsi
b)计算τi在最晚开始时间lsi开始执行后被预留任务延迟的时间DelayedTime(τi,lsi)。τi在开始执行后,查看预留队列中是否有晚于lsi执行的预留任务,将这些任务组成一个新的集合为按开始时间先后排序,若τi在执行期间收到该队列有预留任务要执行,则等待该预留任务执行完毕后,再执行τi。执行期间被lRsvQueue中预留任务延迟的时间为DelayedTime(τi,lsi)。
c)使用最坏情况响应时间公式WRi=lsi+Ci+DelayedTime(τi,lsi)-ri计算任务τi的最坏情况响应时间WRi
2)若任务τi为响应任务或请求任务的第三个子任务,求t时刻τi的最坏情况响应时间WRi的计算方式为:
a)计算τi的最晚开始时间lsi,按照任务τi的优先级大小,获取它在优先级队列中的位置,并根据该位置得到比τi优先级高一级的任务,该任务的最晚完成时间为τi的最晚开始时间lsi。由于这类任务是在准入请求任务时通过预估未来该任务可能释放的时间而产生的,因此,在 计算最晚开始时间时需要比较最晚开始时间lsi和预估的τi的释放时间,选择两者中较大的作为最晚开始时间。
b)计算τi在最晚开始时间lsi开始执行后被预留任务延迟的时间DelayedTime(τi,lsi)。τi在开始执行后,查看预留队列中是否有晚于lsi执行的预留任务,将这些任务组成一个新的集合为按开始时间先后排序,若τi在执行期间收到该队列中预留任务的影响则等待预留任务执行完毕后,再执行。直到τi执行完毕。执行期间被lRsvQueue中预留任务延迟的时间为DelayedTime(τi,lsi)。需要注意,如果τi为响应任务,在第一次执行准入算法时会受已有的预留任务的影响而切分为多个预留任务。
c)使用最坏情况响应时间公式计算任务τi的最坏情况响应时间WRi
本发明的有益效果:
与现有技术相比,本发明有以下优点:
(1)对多智能体平台内的实时任务进行分类、建模。在目前多智能体平台的研究中,尚无对平台任务进行分类的方法;
(2)本发明所述调度策略,是基于任务模型得到的。所述请求任务在执行过程由于多智能体环境的变化无法用现有算法预测其完成时间,也就无法提供实时性保障。因此,通过所述调度策略实现对请求任务完成时间的预估。
(3)通过本发明所述准入控制算法,保证在多智能体平台中的各个智能体上,凡是被准入到智能体就绪任务集中的任务都可以在截止期内完成。这种对任务截止期硬实时保证的方法在目前的实时多智能体平台的研究中是没有的。这增强了多智能体平台的可靠性和可预测性。
附图说明
图1是本发明多智能体平台的实时简单任务准入方法流程图;
图2是本发明多智能体平台的实时请求任务准入方法流程图;
图3是本发明多智能体平台实时任务调度算法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,可 以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明原理
本发明分析多智能体平台中智能体本身以及智能体之间任务的性质,将任务分为不同类型,并设计了实时任务的准入控制算法,采用预调度和EDF相结合的调度方法实现多智能体平台中任务的实时调度。
先将实时任务准入的步骤详述如下:
1)图1给出了简单任务准入方法的具体流程。
当一个简单任务τi=(simple,ri,Ci,Di,Ei)到达多智能体时,在加入智能体A的就绪任务集之前,需要作如下判断。
1.1)假设任务τi加入智能体A的就绪任务集,计算τi的最坏情况响应时间WR(τi),若WR(τi)>Di,说明该任务无法在截止期之前完成,因此拒绝该任务;反之,说明该任务可以在截止期之前完成。
1.2)判断该任务是否会导致多智能体A的就绪任务集合中其他任务错失截止期。对于任务集中的低优先级任务τ',在加入简单任务τi的条件下,计算τ'是否满足WR(τ')≤D'。若在加入实时简单任务τi后,存在任何已有实时任务τ'无法满足上述条件,说明待加入的实时任务τi可能会导致已有实时任务τ'错失截止期,则拒绝待加入的实时任务τi。反之,就绪任务集中的任何一个任务不会由于实时任务τi的加入而错失截止期,则允许τi加入就绪任务集。
2)图2给出了请求任务准入方法的具体流程。
当一个请求任务τi=(request,ri,Ci,Ei,Di)到达多智能体A时,假设智能体A请求智能体B协作。在加入就绪任务集之前,需要作如下判断。
2.1)该请求任务可以分为三个子任务依次为其中为简单任务,为响应任务。
2.2)首先计算能否加入智能体A的就绪任务集,方法同1)如果不能加入,则拒绝请求任务加入智能体A的就绪任务集。否则,计算此时的任务完成时间,执行2.3)。
2.3)第一个子任务完成时间即第二个子任务到达智能体B的释放时间。计算在智能体B中的最坏情况响应时间说明任务无法在截止期内完成,拒请求任务τi加入智能体A就绪任务集。否则,计算的完成时间,执行2.4)。
2.4)第三个子任务在智能体A中的释放时间等于第二个子任务的完成时间。计算能否加入智能体A的就绪任务集,方法同1)如果不能加入,则拒绝调度τi。否则,允许调度,将请求任务τi分解后的子任务加入请求智能体A的就绪任务集,响应任务加入响应智能体B的就绪任务集。
由于准入控制算法,智能体就绪任务集合中任务,按其来源分,包括简单任务、请求任务的第一个子任务、请求任务的第二个子任务、响应任务。按照任务的类型分,就只有简单任务和响应任务两种。
调度算法描述了任务准入之后,被调度器调度的过程。图3给出了多智能体平台实时任务调度算法的具体流程。按释放时间先后顺序排列已准入的实时任务队列。调度算法的步骤如下:
设当前时刻为t,将当前智能体上的就绪任务队列中简单任务按照释放时间先后升序排列组成优先队列,预留任务按照开始时间先后升序排列组成优先队列,调度器选取当前时刻优先级最高的任务τi进行调度。
1)若当前时刻t,调度器正在执行任务,则转入进行以下步骤:
1.1)当前执行任务是简单任务,若执行期间有高优先级任务被释放或者有预留任务开始执行,则让出处理机。进入步骤4)
1.2)当前执行任务是预留任务,按照既定的时间调度执行响应任务即可。进入步骤5)。
2)若当前时刻t,调度器没有正在执行的任务,需要从就绪任务集中选择任务执行。转入以下步骤:
2.1)如果当前时刻预留队列有任务要执行,则进入步骤2.3),否则进入步骤2.2)
2.2)如果当前时刻优先级队列中有高优先级任务要执行,则转入2.4),否则,处理机空转,当前时刻更新,进入步骤2)
2.3)如果当前执行任务是预留任务,按照既定的时间调度执行响应任务即可。任务执行完毕,进入步骤5)
2.4)如果当前执行任务是简单任务,若执行期间有高优先级任务被释放或者有预留任务开始执行,则让出处理机。进入步骤4)否则,任务执行完毕,进入步骤5)
4)若当前任务让出处理机,转入步骤1)
5)若当前任务执行完毕,转入步骤2)
下面结合表1、表2给出的多智能体A、B的相关任务数据,来对实时任务调度方法做进 一步说明。
表1智能体A中到达任务集合
表2智能体B中到达任务集合
本发明研究的准入方法是全局的,对于不同时间到达的任务,按时间先后顺序依次进行准入控制。因此,对于本例中的任务,准入计算的先后顺序为task1、task3、task2、task4。(1)对于task1,当前智能体A的任务队列中没有待调度任务,因此,考虑task1是否可以准入。由于R(task1)=28<1114,因此可以准入。此时A的待调度队列中有task1。
表3智能体A中优先级队列
此时,智能体A中暂未准入响应任务,智能体B中暂为准入任何任务
(2)对于task3的三个子任务task31、task32、task33,首先分配三个子任务的截止期,task31的绝对截止期=40+(18/(18+65+72)*991)=155,task32的绝对截止期=155+(65/(18+65+72)*991)=570,task33的绝对截止期=1031。
对于task31,当前智能体B的任务队列中没有待调度的任务,因此它的最晚开始时间为40,执行时间为18,所以R(task31)=58<155。对于task32,它在智能体A中执行。Task32的释放时间为58,当前A中的已准入task1,计算得到task32的最晚开始时间为58,R(task32)=58+65=123<570。对于task33,在智能体B中执行,释放时间为123。此时B中暂时准入子任务task31,因此task33的最晚开始时间为123,R(task33)=123+72=195<1031。因此,允 许准入。
表4智能体A中准入任务队列
表5智能体A中准入响应任务队列
表6智能体B中准入任务队列
此时,智能体B中暂未准入响应任务。
(3)对于task2,Task2的三个子任务task21、task22、task23,首先分配三个子任务的截止期,,task21的绝对截止期=150+(26/(26+117+179)*964)=227,task22的绝对截止期=227+(65/(18+65+72)*964)=577,task23的绝对截止期=1114。
此时由于task21的优先级高于A中已准入的任务task1,所以预测task21的最晚开始时间为176<227,而此时task1的最晚开始时间变为176,最坏响应时间为204<967。A中暂时准入task21。Task22在B中执行。由于task22的优先级低于task31,高于task33。所以,task22的最晚开始时间为176,最坏响应时间为176+117=293<577,而task33因为task22的加入,最晚开始时间认为123,但是执行期间会被task22抢占处理机,因此最晚响应时间为293+(72-(176-123))=312<1031。因此,task2可以准入。
表7智能体A中准入任务队列
表8智能体A中准入响应任务队列
表9智能体B中准入任务队列
表10智能体B中准入响应任务队列
(4)对于task4,rask4为简单任务,若准入,按照优先级顺序,task4受高优先级任务task31和响应任务task22的影响,在B中的最晚开始时间为293,最坏响应时间192+214=507<753。此时,若准入task4,则task33会受到影响。Task33的最晚开始时间变为507,最坏响应时间507+72=579<1031。允许准入。
表11智能体A中准入任务队列
表12智能体A中准入响应任务队列
表13智能体B中准入任务队列
表14智能体B中准入响应任务队列
接下来描述调度过程。准入控制后,请求任务被切分为三个子任务。因此在调度队列中,任务按照类型,可以分为简单任务和响应任务两种。按照预调度与EDF调度相结合的调度方法来调度这些任务。对任务按照释放时间的先后顺序进行排序,情况如下:
表15智能体A中可调度任务队列
表16智能体A中可调度响应任务队列
表17智能体B中可调度任务队列
表18智能体B中可调度响应任务队列
首先,在智能体A中任务调度情况如下:
(1)task1的释放时间为0,且执行期间没有高优先级普通任务以及响应任务抢占处理机,因此它的完成时间为0+28=28<967。任务被安全调度。
(2)Task32的释放时间为58,完成时间为58+65=123<570,执行期间没有响应任务达到,不会导致其他任务延迟执行。任务被安全调度。
(3)Task21的释放时间为150,执行期间没有高优先级普通任务以及响应任务抢占处理机,因此它的完成时间为150+26=176<227,任务被安全调度。
(4)Task23的释放时间为293,执行期间没有高优先级普通任务以及响应任务抢占处理机,因此它的完成时间为293+179=472<1114,任务被安全调度。
在智能体B中任务调度情况如下:
(1)task31的释放时间为40,且执行期间没有高优先级普通任务以及响应任务抢占处理机,因此它的完成时间为40+18=58<115,任务被安全调度。
(2)Task33的释放时间为123,执行时间为72。在执行期间,有响应任务抢占处理机,因此在执行一段时间后需要让出处理机。Task22的完成时间为176+117=293。在task22期间又有任务task4到达。因此task22完成之后,任务队列中有task33和task4,而task4的优先级较高先执行,因此task33又被延迟。Task4的完成时间为192+214=406。之后task32执行。所以task33的完成时间为406+(72-(176-123))=425<1031,任务被安全调度。
(3)Task22的释放时间是176,完成时间为176+117=293<577,任务被安全调度。
(4)Task4的释放时间是193,完成时间为192+214=406<753,任务被安全调度。
上述实施例仅为例示性说明本发明的原理及其功效,而非用于限制本发明的范围。任何熟于此技术的本领域技术人员均可在不违背本发明的技术原理及精神下,对实施例作修改与变化。本发明的保护范围应以权利要求书所述为准。

Claims (8)

1.一种多智能体平台中的实时任务调度方法,其步骤为:
1)将t时刻智能体A的就绪任务集合中的简单任务按照释放时间升序排列组成优先级队列,将该就绪任务集合中的预留任务按照开始时间升序排列组成预留队列;
2)t时刻,智能体A对到达的新任务τi进行准入判断,如果可以准入,则将该新任务τi按照释放时间插入该优先级队列中;
3)如果t时刻智能体A未执行任务,则检查智能体A的预留队列中是否有预留任务,如果有,则顺序选取一预留任务并执行,如果没有预留任务要执行,则从优先级队列中顺序选取一任务并执行;如果t时刻智能体A正在执行预留队列中的一预留任务,则每一系统执行单元执行完毕后检查优先级队列中是否有任务就绪,如果有,则将该任务的就绪时间延迟到该预留任务执行结束;如果t时刻智能体A正在执行优先级队列中的一简单任务,则在每一个系统执行单元结束后,检查预留队列中是否有预留任务在该时刻开始执行,如果有则停止执行当前任务,转而执行该预留任务,如果没有,则检查优先级队列中是否有优先级高于当前任务的就绪任务,如果有,则停止执行当前任务,转而执行该就绪任务。
2.如权利要求1所述的方法,其特征在于,所述步骤2)中,若新任务τi为该智能体A向一智能体B发出的请求任务,则进行准入判断的方法为:
21)将新任务τi划分为三个顺序执行的子任务:其中子任务为在智能体A上执行的简单任务,为在智能体B上执行的响应任务;
22)计算将加入了智能体A的就绪任务集后的最坏响应时间,如果该时间大于其相对截止期,则拒绝准入;否则,计算智能体A就绪任务集合中优先级低于新任务的任务的最坏响应时间,如果存在某个任务的最坏响应时间大于其相对截止期,则拒绝准入该子任务否则计算的完成时间;
23)到达智能体B的时间等于的完成时间,计算将加入智能体B的就绪任务集合后的最坏响应时间,如果该时间大于其相对截止期,则拒绝准入;否则,计算智能体B就绪任务集合中优先级低于新任务的任务的最坏响应时间,如果存在某个任务的最坏响应时间大于其相对截止期,则拒绝准入;否则计算的完成时间;
24)到达智能体A的时间等于的完成时间,计算将加入智能体A的就绪任务集合后的最坏响应时间,如果该时间大于其相对截止期,则拒绝准入;否则,计算智能体A就绪任务集合中优先级低于新任务的任务的最坏响应时间,如果存在某个任务的最坏响应时间大于其相对截止期,则拒绝准入,否则允许准入。
3.如权利要求2所述的方法,其特征在于,所述步骤2)中,若新任务τi为简单任务或响应任务,则进行准入判断的方法为:首先计算新任务τi加入智能体A的就绪任务集合后,该新任务τi的最坏情况响应时间,如果该时间大于新任务τi的相对截止期,则拒绝该新任务τi准入;否则,计算该新任务τi加入智能体A的就绪任务集合后,就绪任务集合中优先级低于该新任务τi优先级的任务的最坏响应时间,如果存在某个任务的最坏响应时间大于其相对截止期,则拒绝该新任务τi准入。
4.如权利要求1或2或3所述的方法,其特征在于,任务τi的最坏情况响应时间计算公式为:WRi=lsi+Ci+DelayedTime(τi,lsi)-ri;其中,WRi表示任务τi的最坏情况响应时间,Ci表示任务τi的执行时间,lsi表示任务τi的最晚开始时间,DelayedTime(τi,lsi)表示任务在lsi开始执行时受到预留任务影响而延迟的时间,ri表示任务的释放时间。
5.如权利要求4所述的方法,其特征在于,若任务τi为简单任务或请求任务的第一个子任务,求t时刻τi的最坏情况响应时间WRi的计算方式为:
a)计算τi的最晚开始时间lsi,按照任务τi的优先级大小,获取它在优先级队列中的位置,并根据该位置得到比τi优先级高一级的任务,该任务的最晚完成时间为τi的最晚开始时间lsi
b)计算τi在最晚开始时间lsi开始执行后被预留任务延迟的时间DelayedTime(τi,lsi);τi在开始执行后,查看预留队列中是否有晚于lsi执行的预留任务,将这些任务组成一个新的集合为按开始时间先后排序,若τi在执行期间收到该队列有预留任务要执行,则等待该预留任务执行完毕后再执行τi,执行期间被lRsvQueue中预留任务延迟的时间为DelayedTime(τi,lsi);
c)使用最坏情况响应时间公式WRi=lsi+Ci+DelayedTime(τi,lsi)-ri计算任务τi的最坏情况响应时间WRi
6.如权利要求1所述的方法,其特征在于,智能体上的任务τi的形式化描述为:τi={type,ri,Ci,Ei,Di};其中,type表示任务类型,包括:简单任务、请求任务、响应任务,ri表示任务的释放时间,Ci表示任务的执行时间,Di表示任务的相对截止期,Ei表示任务的挂起时间;对于简单任务和响应任务,Ei=0;对于请求任务,Ei不为0。
7.如权利要求6所述的方法,其特征在于,所述请求任务包含三个执行区域:挂起前执行区域挂起期间响应智能体上的执行区域挂起后的执行区域分别对应于三个子任务:子任务子任务其中ri 1=riri 2为子任务的结束时间,ri 3等于子任务的结束时间,simple表示简单任务,request表示请求任务,response表示响应任务;表示任务的执行时间,表示任务的相对截止期,表示任务的挂起时间;表示任务的执行时间,表示任务的相对截止期,表示任务的挂起时间;表示任务的执行时间,表示任务的相对截止期,表示任务的挂起时间。
8.如权利要求7所述的方法,其特征在于,子任务截止期时间的计算公式为:
CN201510163407.0A 2015-04-08 2015-04-08 一种多智能体平台中的实时任务调度方法 Active CN106155781B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510163407.0A CN106155781B (zh) 2015-04-08 2015-04-08 一种多智能体平台中的实时任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510163407.0A CN106155781B (zh) 2015-04-08 2015-04-08 一种多智能体平台中的实时任务调度方法

Publications (2)

Publication Number Publication Date
CN106155781A CN106155781A (zh) 2016-11-23
CN106155781B true CN106155781B (zh) 2019-08-27

Family

ID=57335722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510163407.0A Active CN106155781B (zh) 2015-04-08 2015-04-08 一种多智能体平台中的实时任务调度方法

Country Status (1)

Country Link
CN (1) CN106155781B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106527373B (zh) * 2016-12-05 2019-02-01 中国科学院自动化研究所 基于多智能体的车间自主调度系统和方法
CN106897199B (zh) * 2017-01-12 2020-03-10 河南理工大学 一种基于大数据处理框架的批作业执行时间预测方法
CN109298917B (zh) * 2017-07-25 2020-10-30 沈阳高精数控智能技术股份有限公司 一种适用于实时系统混合任务的自适应调度方法
KR102527925B1 (ko) * 2017-11-29 2023-05-03 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN108897282B (zh) * 2018-05-03 2021-10-29 顺丰科技有限公司 多任务模块化机器人及调度管理方法、装置及其存储介质
CN109799805B (zh) * 2019-01-17 2020-09-29 湖南大学 一种可靠性感知的高性能汽车电子调度算法
JP7266418B2 (ja) * 2019-02-14 2023-04-28 本田技研工業株式会社 エージェント装置、エージェント装置の制御方法、およびプログラム
CN110187956B (zh) * 2019-05-07 2021-07-30 中国科学院软件研究所 一种多智能体平台的分层实时任务调度方法和系统
CN112214319B (zh) * 2020-09-29 2021-08-06 深圳大学 一种计算资源感知的任务调度方法
CN113535356B (zh) * 2021-07-01 2023-09-12 中国科学院软件研究所 一种能量感知的分层任务调度方法和装置
CN116932227B (zh) * 2023-09-14 2023-12-22 西安华创马科智能控制系统有限公司 一种基于单线程的任务调度方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102654843A (zh) * 2011-03-04 2012-09-05 北京国科环宇空间技术有限公司 嵌入式处理器中非抢占式容错调度方法及嵌入式处理器
CN103365711A (zh) * 2013-07-03 2013-10-23 南京邮电大学 应用于物联网业务平台的任务调度机制和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10802876B2 (en) * 2013-05-22 2020-10-13 Massachusetts Institute Of Technology Multiprocessor scheduling policy with deadline constraint for determining multi-agent schedule for a plurality of agents

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102654843A (zh) * 2011-03-04 2012-09-05 北京国科环宇空间技术有限公司 嵌入式处理器中非抢占式容错调度方法及嵌入式处理器
CN103365711A (zh) * 2013-07-03 2013-10-23 南京邮电大学 应用于物联网业务平台的任务调度机制和方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"A new utilization based admission control algorithm for aperiodic tasks with constant time complexity under EDF scheduling";Chang Leng 等;《2013 IEEE 19th International Conference on Embedded and Real-Time Computing Systems and Applications》;20130819;第338-341页 *
"Capacity-based admission control for mixed periodic and aperiodic real time service processes";Weiran Nie 等;《2011 IEEE International Conference on Service-Oriented Computing and Applications (SOCA)》;20111212;第1-8页 *
"一种基于代价抢占的混合可重构任务调度算法";韩晓亚 等;《计算机应用研究》;20111115;第28卷(第11期);第4040-4044页 *

Also Published As

Publication number Publication date
CN106155781A (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
CN106155781B (zh) 一种多智能体平台中的实时任务调度方法
US9778943B2 (en) Timer based virtual processor scheduling and suspension on physical processor for use of physical processor by other processing
US8683436B2 (en) Timer patterns for process models
JP2016541056A5 (zh)
WO2014094516A1 (zh) 一种实时多任务调度方法和装置
CN103294533A (zh) 任务流控制方法及系统
US9104491B2 (en) Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources
CN111651864B (zh) 一种事件集中发射式多异构时间队列优化仿真执行方法及系统
CN105320570B (zh) 资源管理方法和系统
WO2016008376A1 (zh) 一种可动态调整的任务调度系统和调度方法
US20100293549A1 (en) System to Improve Cluster Machine Processing and Associated Methods
CN104820616B (zh) 一种任务调度的方法及装置
CN110187956A (zh) 一种多智能体平台的分层实时任务调度方法和系统
Carroll et al. Incentive compatible online scheduling of malleable parallel jobs with individual deadlines
Begam et al. Preference-oriented fixed-priority scheduling for periodic real-time tasks
CN106648831A (zh) 基于萤火虫算法和动态优先级的云工作流调度方法
Nafkha et al. The critical path method in estimating project duration
Zhou et al. Improved carry-in workload estimation for global multiprocessor scheduling
Slim et al. Worst-case response time analysis for partitioned fixed-priority DAG tasks on identical processors
CN101996105A (zh) 可重构计算平台上的静态软硬件任务划分与调度方法
CN112346842A (zh) 一种基于有向无环图的工作流任务调度方法
EP2840513A1 (en) Dynamic task prioritization for in-memory databases
CN103530742B (zh) 提高排程运算速度的方法及装置
CN107885589B (zh) 一种作业调度方法及装置
Bril et al. Improved feasibility of fixed-priority scheduling with deferred preemption using preemption thresholds for preemption points

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant