CN110187956A - 一种多智能体平台的分层实时任务调度方法和系统 - Google Patents
一种多智能体平台的分层实时任务调度方法和系统 Download PDFInfo
- Publication number
- CN110187956A CN110187956A CN201910375521.8A CN201910375521A CN110187956A CN 110187956 A CN110187956 A CN 110187956A CN 201910375521 A CN201910375521 A CN 201910375521A CN 110187956 A CN110187956 A CN 110187956A
- Authority
- CN
- China
- Prior art keywords
- task
- intelligent body
- priority
- cpu core
- time
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种多智能体平台中的分层实时任务调度方法和系统,分为实时操作系统智能体调度器和智能体内任务调度器两层。本方法为:1)初始时,从智能体集合A中选择m个优先级最高的智能体,并将其分配到m个CPU核上运行;2)若智能体Ai被选中占有CPU核,则智能体Ai的调度器将以就绪任务集Ti中的任务按其优先级递减顺序在该CPU核上依次执行;3)当智能体Ai就绪任务集中的任务全部执行完后,释放其所占有的CPU核,并选择其他智能体执行。本发明可使运行于实时操作系统上的多智能体平台中的任务尽可能地在其截止期之前完成,满足了复杂应用的实时性需求,增加了多智能体系统的可靠性和可预测性。
Description
技术领域
本发明属于多智能体平台实时任务调度技术领域,具体涉及一种基于实时操作系统的多智能体平台实时任务调度方法和系统。
背景技术
多智能体平台由于其自主性、分布性、协调性特性,被广泛应用在许多复杂的控制场景中,如生产规划、制造控制、后勤、仿真、协调专家系统、分布式智能决策、空间探测、教育培训、分布式故障诊断、供应链集成和虚拟企业等。随着越来越多的复杂应用具有实时性要求,这些复杂实时应用通常运行于实时操作系统上,且系统中的任务必须在其截止期前完成。这就要求多智能体平台能在实时操作系统上运行,并能满足应用的时间约束,而智能体调度则是保证多智能体平台满足上层应用实时性的关键。
在多智能体平台中,同时运行有多个智能体,智能体随时到达,智能体间既相互独立又彼此协作。每个智能体内部有多个任务,智能体内任务随机到达,智能体中的任务在执行过程中会向其他智能体发出服务请求,其他智能体响应该服务请求在内部产生新的任务,发起服务请求的任务称为请求任务,其他智能体为了响应服务请求而产生的任务称为响应任务。请求任务发出服务请求后悬挂等待,直到收到响应任务执行完回复的结果后才继续执行。
当多智能体平台运行在实时操作系统上时,多智能体平台中的每个智能体被实时操作系统当做一个任务,操作系统将选择最高优先级的任务来进行调度,高优先级任务可以抢占低优先级任务所占有的CPU处理器。当一个智能体所对应的任务占有CPU处理器后,智能体独立对其内部任务进行调度。目前,多智能体平台,如JADE、Mobile C等的任务调度机制都只是针对智能体的任务进行了非抢占调度,而没有考虑实时操作系统对智能体的调度。
此外,当智能体内的被调度任务向其他智能体发出服务请求,并悬挂等待其他智能体产生的响应任务执行,此时,若请求任务所在的智能体优先级高,响应任务所在智能体的优先级低,则出现了高优先级任务等待低优先级任务的情况,出现优先级倒置。而已有的多智能体平台调度算法没有考虑在任务请求协作过程中可能出现的优先级倒置情况。因此,现有多智能体平台的调度算法无法解决基于实时操作系统的多智能体平台的智能体任务调度问题,使多智能体平台难以在实时应用中发挥作用。
发明内容
针对现有技术的不足,本发明结合实时操作系统与多智能体平台特性,提出了一种新的实时多智能体平台的分层任务调度方法(简称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 | 绝对截止期 | |
TaskA1 | 0 | 150 | 897 | 897 |
TaskA2 | 0 | 155 | 725 | 725 |
表2智能体B中到达任务集合
到达时间R | 执行时间C | 相对截止期D | 绝对截止期 | |
TaskB1 | 0 | 115 | 686 | 686 |
TaskB2 | 15 | 133 | 895 | 910 |
TaskB3 | 15 | 212 | 1265 | 1280 |
表3智能体C中到达任务集合
到达时间R | 执行时间C | 相对截止期D | 绝对截止期 | |
TaskC1 | 0 | 270 | 1347 | 1347 |
TaskC2 | 15 | 162 | 970 | 985 |
TaskC3 | 15 | 127 | 759 | 774 |
表4智能体D中到达任务集合
到达时间R | 执行时间C | 相对截止期D | 绝对截止期 | |
TaskD1 | 15 | 116 | 697 | 712 |
TaskD2 | 15 | 163 | 974 | 989 |
TaskD3 | 15 | 250 | 1499 | 1514 |
表5智能体E中到达任务集合
到达时间R | 执行时间C | 相对截止期D | 绝对截止期 | |
TaskE1 | 0 | 150 | 899 | 899 |
TaskE2 | 0 | 133 | 798 | 798 |
TaskE3 | 15 | 113 | 677 | 692 |
(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 | 绝对截止期 | |
TaskA1 | 0 | 150 | 897 | 897 |
TaskA2(恢复执行) | 0 | 155 | 725 | 725 |
表9智能体E中到达任务集合
到达时间R | 执行时间C | 相对截止期D | 绝对截止期 | |
TaskE1 | 0 | 150 | 899 | 899 |
TaskE2 | 0 | 133 | 798 | 798 |
TaskE3(执行完) | 15 | 113 | 677 | 692 |
TaskE4(执行完) | 0 | 40 | 725 | 725 |
智能体A重新根据绝对截止期最小的任务TaskA2计算优先级,得到优先级为210,智能体A抢占智能体E的处理器继续执行。
(7)根据以上所述规则继续执行,直到所有智能体中所有任务都执行完。
上述实施例仅为例示性说明本发明的原理及其功效,而非用于限制本发明的范围。任何熟于此技术的本领域技术人员均可在不违背本发明的技术原理及精神下,对实施例作修改与变化。本发明的保护范围应以权利要求书所述为准。
Claims (10)
1.一种多智能体平台的分层实时任务调度方法,其步骤包括:
1)将基于实时操作系统的多智能体平台的任务调度抽象为两层调度模型,所述两层调度模型包含一级调度器和二级调度器,将智能体作为实时操作系统中的任务并由一级调度器进行调度,智能体内的任务由二级调度器进行调度;
2)所述一级调度器从智能体集合中选择若干个优先级最高的智能体,将其分配到同样个数的CPU核上运行;
3)若某智能体被所述一级调度器选中占有CPU核,则该智能体的二级调度器以该智能体的就绪任务集中的任务按其优先级递减顺序在该CPU核上依次执行,相同优先级的任务随机排序;
4)当某智能体的就绪任务集中的任务全部执行完后,释放其所占有的CPU核,一级调度器从未被完成且当前未占有处理器的智能体中选择一个优先级最高的智能体占有这个CPU核,并转到步骤3);若此时系统中已无未被完成且未占有处理器的智能体,则处理结束。
2.如权利要求1所述的方法,其特征在于,根据截止期最小的任务为智能体设置优先级,优先级高的智能体可被优先执行,使智能体内任务尽可能在其截止期前完成;响应请求的任务继承请求任务的到达时间和截止期,避免优先级倒置。
3.如权利要求2所述的方法,其特征在于,设τi,k={ri,k,Ci,k,Di,k}是智能体Ai就绪任务集中绝对截止期最小的任务,智能体Ai的优先级计算公式为:
pi=255-(ri,k+Di,k-500)%1000/5;
其中,ri,k,Ci,k,Di,k分别表示任务τi,k的就绪时间为、执行时间和相对截止期,相对截止期指任务的截止时间与就绪时间之间的时间间隔。
4.如权利要求1所述的方法,其特征在于,步骤3)包括:
3.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,则判断该任务一定不能完成,并丢弃该任务;
3.2)当任务τi,j={ri,j,Ci,j,Di,j}被执行完成后,重新计算智能体Ai的优先级;
3.3)重复步骤3.1)-3.2)直至Ai就绪任务集合中的所有任务均被完成。
5.如权利要求1所述的方法,其特征在于,步骤3)中智能体Ai就绪任务集中任务的优先级根据其绝对截止期设定,设τi,k={ri,k,Ci,k,Di,k}为Ai就绪任务集中的任务,则其绝对截止期为:di,k=ri,k+Di,k;任务绝对截止期越小,优先级越高。
6.如权利要求1所述的方法,其特征在于,当新智能体Ai产生时,根据智能体的任务集Ti计算智能体Ai的优先级;若此时系统中有空闲CPU核,则一级调度器选择Ai占有该处理器,并转到步骤3);若此时系统中无空闲处理器,且Ai的优先级大于正在占有CPU核执行的某个智能体的优先级,则Ai抢占该智能体的CPU核,并转到步骤3);否则等待执行。
7.如权利要求1所述的方法,其特征在于,当智能体Ai中有新任务到达,设τi,j为智能体Ai中新到达的任务:
1)若新到达的任务τi,j={ri,j,Ci,j,Di,j}是智能体Ai为了响应某个智能体Am的请求任务τm,k对其所发出的服务请求而产生的响应任务,则ri,j=rm,k,Di,j=Dm,k,Ci,j根据应用设定;
2)若新到达任务τi,j={ri,j,Ci,j,Di,j}是智能体Ai中自身产生的任务,则ri,j,Ci,j,Di,j均根据应用设定;
3)重新计算智能体Ai的优先级。
8.如权利要求1~7中任一权利要求所述的方法,其特征在于,当智能体Ai的优先级发生变化时,一级调度器进行如下处理:
1)若智能体Ai当前正在占有CPU核执行任务,如果Ai优先级升高,则继续占有该CPU核执行任务;如果Ai优先级降低,一级调度器检查正在等待的智能体是否有优先级高于Ai的,若有,则将其所占有的CPU核分配给该智能体;
2)若智能体Ai当前处于等待状态,如果智能体Ai优先级升高,则检查是否高于某个正在占有CPU核执行的智能体的优先级,如果是,则抢占其CPU核并转到步骤3)开始执行智能体Ai的就绪任务;若Ai优先级降低,则令其继续处于等待状态。
9.一种多智能体平台的分层实时任务调度系统,其特征在于,包括实时操作系统调度器和智能体内调度器,所述实时操作系统调度器作为一级调度器,所述智能体内调度器作为二级调度器;将智能体作为实时操作系统中的任务并由所述一级调度器进行调度,智能体内的任务由所述二级调度器进行调度;
所述一级调度器从智能体集合中选择若干个优先级最高的智能体,当优先级相同时进行随机选取,并将其分配到同样个数的CPU核上运行;
若某智能体被所述一级调度器选中占有CPU核,则该智能体的二级调度器以该智能体的就绪任务集中的任务按其优先级递减顺序在该CPU核上依次执行,相同优先级的任务随机排序;当某智能体的就绪任务集中的任务全部执行完后,释放其所占有的CPU核,所述一级调度器从未被完成且当前未占有处理器的智能体中选择一个优先级最高的智能体占有这个CPU核;若此时系统中已无未被完成且未占有处理器的智能体,则处理结束。
10.如权利要求9所述的系统,其特征在于,根据截止期最小的任务为智能体设置优先级,优先级高的智能体可被优先执行,使智能体内任务尽可能在其截止期前完成;响应请求的任务继承请求任务的到达时间和截止期,避免优先级倒置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910375521.8A CN110187956B (zh) | 2019-05-07 | 2019-05-07 | 一种多智能体平台的分层实时任务调度方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910375521.8A CN110187956B (zh) | 2019-05-07 | 2019-05-07 | 一种多智能体平台的分层实时任务调度方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110187956A true CN110187956A (zh) | 2019-08-30 |
CN110187956B CN110187956B (zh) | 2021-07-30 |
Family
ID=67715758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910375521.8A Active CN110187956B (zh) | 2019-05-07 | 2019-05-07 | 一种多智能体平台的分层实时任务调度方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110187956B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045799A (zh) * | 2019-11-11 | 2020-04-21 | 西北工业大学 | 基于回收再分配的低安全关键任务调度方法 |
CN111796921A (zh) * | 2020-06-30 | 2020-10-20 | 西安微电子技术研究所 | 嵌入式多核操作系统调度方法、调度装置、电子设备及存储介质 |
CN113535356A (zh) * | 2021-07-01 | 2021-10-22 | 中国科学院软件研究所 | 一种能量感知的分层任务调度方法和装置 |
WO2022141300A1 (zh) * | 2020-12-30 | 2022-07-07 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN116010081A (zh) * | 2022-12-05 | 2023-04-25 | 大连理工大学 | 基于在线优先级反转预算分析的实时系统随机化任务调度方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541646A (zh) * | 2010-12-09 | 2012-07-04 | 中国科学院沈阳计算技术研究所有限公司 | 一种适用于硬实时系统的任务调度方法 |
CN103716324A (zh) * | 2013-12-31 | 2014-04-09 | 重庆邮电大学 | 一种基于多智能体虚拟矿井风险行为实现系统及方法 |
CN106155781A (zh) * | 2015-04-08 | 2016-11-23 | 中国科学院软件研究所 | 一种多智能体平台中的实时任务调度方法 |
CN106251016A (zh) * | 2016-08-01 | 2016-12-21 | 南通大学 | 一种基于动态时间窗的泊车系统路径规划方法 |
-
2019
- 2019-05-07 CN CN201910375521.8A patent/CN110187956B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541646A (zh) * | 2010-12-09 | 2012-07-04 | 中国科学院沈阳计算技术研究所有限公司 | 一种适用于硬实时系统的任务调度方法 |
CN103716324A (zh) * | 2013-12-31 | 2014-04-09 | 重庆邮电大学 | 一种基于多智能体虚拟矿井风险行为实现系统及方法 |
CN106155781A (zh) * | 2015-04-08 | 2016-11-23 | 中国科学院软件研究所 | 一种多智能体平台中的实时任务调度方法 |
CN106251016A (zh) * | 2016-08-01 | 2016-12-21 | 南通大学 | 一种基于动态时间窗的泊车系统路径规划方法 |
Non-Patent Citations (1)
Title |
---|
王溪波: ""复杂实时应用系统设计实现的关键技术研究"", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045799A (zh) * | 2019-11-11 | 2020-04-21 | 西北工业大学 | 基于回收再分配的低安全关键任务调度方法 |
CN111045799B (zh) * | 2019-11-11 | 2023-03-14 | 西北工业大学 | 基于回收再分配的低安全关键任务调度方法 |
CN111796921A (zh) * | 2020-06-30 | 2020-10-20 | 西安微电子技术研究所 | 嵌入式多核操作系统调度方法、调度装置、电子设备及存储介质 |
CN111796921B (zh) * | 2020-06-30 | 2023-05-30 | 西安微电子技术研究所 | 嵌入式多核操作系统调度方法、调度装置、电子设备及存储介质 |
WO2022141300A1 (zh) * | 2020-12-30 | 2022-07-07 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN113535356A (zh) * | 2021-07-01 | 2021-10-22 | 中国科学院软件研究所 | 一种能量感知的分层任务调度方法和装置 |
CN113535356B (zh) * | 2021-07-01 | 2023-09-12 | 中国科学院软件研究所 | 一种能量感知的分层任务调度方法和装置 |
CN116010081A (zh) * | 2022-12-05 | 2023-04-25 | 大连理工大学 | 基于在线优先级反转预算分析的实时系统随机化任务调度方法 |
CN116010081B (zh) * | 2022-12-05 | 2024-04-30 | 大连理工大学 | 基于在线优先级反转预算分析的实时系统随机化任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110187956B (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110187956A (zh) | 一种多智能体平台的分层实时任务调度方法和系统 | |
Moseley et al. | On scheduling in map-reduce and flow-shops | |
US9477521B2 (en) | Method and system for scheduling repetitive tasks in O(1) | |
CN106293919B (zh) | 一种时间触发的嵌入式任务调度装置与方法 | |
Choudhary et al. | A dynamic optimization algorithm for task scheduling in cloud environment | |
CN106293950B (zh) | 一种面向集群系统的资源优化管理方法 | |
CN105373426B (zh) | 一种基于Hadoop的车联网内存感知实时作业调度方法 | |
CN101237469A (zh) | 运用蚁群算法优化多QoS网格工作流的方法 | |
Behzad et al. | Queue based job scheduling algorithm for cloud computing | |
CN106569887B (zh) | 一种云环境下细粒度任务调度方法 | |
CN105389204B (zh) | 一种多资源偏序调度方法 | |
WO2024021489A1 (zh) | 一种任务调度方法、装置及Kubernetes调度器 | |
CN106201681B (zh) | Hadoop平台下基于预释放资源列表的任务调度方法 | |
Cho et al. | Scheduling parallel real-time tasks on the minimum number of processors | |
Shah et al. | Dynamic multilevel hybrid scheduling algorithms for grid computing | |
Dubey et al. | QoS driven task scheduling in cloud computing | |
CN108845870B (zh) | 一种基于pWCET整形的概率性实时任务调度方法 | |
CN113225269B (zh) | 基于容器的工作流调度方法、装置、系统及存储介质 | |
CN112698911B (zh) | 一种基于深度强化学习的云作业调度方法 | |
Zheng et al. | Joint scheduling of overlapping MapReduce phases: Pair jobs for optimization | |
Salmani et al. | A fuzzy-based multi-criteria scheduler for uniform multiprocessor real-time systems | |
CN104077182B (zh) | 一种同优先级任务调度策略 | |
Shah et al. | Design and evaluation of agent based prioritized dynamic round robin scheduling algorithm on computational grids | |
Zarrouk et al. | Towards an embedded distributed implementations of PSO solutions for the flexible job shop problem | |
Jonsson | Effective complexity reduction for optimal scheduling of distributed real-time applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |