CN110196766A - 任务调度和处理方法及装置、存储介质和处理器 - Google Patents
任务调度和处理方法及装置、存储介质和处理器 Download PDFInfo
- Publication number
- CN110196766A CN110196766A CN201910472173.6A CN201910472173A CN110196766A CN 110196766 A CN110196766 A CN 110196766A CN 201910472173 A CN201910472173 A CN 201910472173A CN 110196766 A CN110196766 A CN 110196766A
- Authority
- CN
- China
- Prior art keywords
- task
- processing
- schedule
- interrupt
- 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
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种任务调度和处理方法及装置、存储介质和处理器,其中,该任务调度和处理的方法包括:划分任务队列中的任务,并确定任务类型,任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;根据任务类型对所述任务队列中的任务进行任务调度,任务调度是通过对调度的延迟,使每个任务调度时间间隔中的任务数量不超过预设数量;基于任务调度的调度结果,对任务队列中的任务进行任务处理。本申请解决了相关技术中任务调度效率低下、应急任务处理不及时、任务通信切换效率低下的技术问题。
Description
技术领域
本申请涉及机电任务调度领域,具体而言,涉及一种任务调度和处理方法及装置、存储介质和处理器。
背景技术
随着列车领域向着高速、智能化的飞快发展,无论是列车驾驶员还是乘客,对列车系统的可靠性、高效性要求越来越高,那么由此可见用于列车领域可编程控制器运行时的任务调度和任务执行方法的优劣尤为重要。通常情况下,一般可编程控制器的应用是基于用户编写的程序,并按照功能划分为不同的任务,然后下载到可编程控制器中进行执行,可编程控制器的中央处理器(CPU)按照一定的方法和策略调度执行,因此调度方法和调度策略的优劣直接影响任务的执行效率乃至用户需求的满足。
可编程控制器是一种可适应快速任务执行的代码运行时环境,要求代码执行快速,反馈及时,可靠性高等,现有的任务调度和处理方法主要包括以下几种调度方法:
1)先来先服务的调度算法(First come first serve)
按照任务提交的先后次序分配CPU执行的调度方法,只有等待当前任务执行完毕,才出让CPU给下一个任务执行,这是最简单的算法。
2)时间片轮转调度算法(Round robin)
当任务执行时间较长,为防止某一任务独占CPU而实现的时间片轮转方法,一般分配固定的时间片用于任务执行,时间片结束产生时钟中断。时间片内,当前任务即使没能执行完也必须出让CPU给下一个任务执行,这样保证了每一任务都有机会运行。
3)基于优先级的抢占式调度算法
优先级抢占式调度分配给任务不同的优先级,CPU分配任务调度时,高优先级任务优先执行,如果低优先级任务执行时有高优先级任务就绪,则可以抢占低优先级任务执行。对于相同优先级的不同任务,一般按照先来先服务的方法调度。
4)多级反馈队列算法
综合时间片轮转和优先级抢占式调度算法,其核心思想是针对系统中所有任务按优先级分组,优先级相同的任务分配在一组,任务组间是基于优先级的方式进行调度,组内则基于轮转方式进行调度。高优先级任务同样可以抢占低优先级任务的执行。这样既照顾到高优先任务优先执行,也平衡了同等优先级任务的执行。
目前,可编程计算系统的任务调度大多采用上述算法的结合。然而针对相关技术中,任务调度的效率低下等问题,尚未提出有效的技术方案,现有的任务调度方法仍有几方面的缺陷:1)任务调度效率问题,现有技术中的时钟周期固定大小,过大或过小,会直接造成任务调度的效率低下,实时性和可靠性无法保证,无法更好的区分任务的轻重缓急;在列车领域,待执行的实时任务较多,各任务的重要性,执行间隔和时间片要求也不同,如涉及列车运行的关键系统控制任务,如牵引控制(DCU),制动控制(EBCU)等需要极高的可靠性和实时性,其他子系统如空调控制系统(HAVC),辅助系统(SIV)等则可在不影响用户体验的情况下适当降低优先级和实时性。2)解决应急任务处理问题,现有的可编程控制器技术条件中程序执行采用循环方式,以固定的时间间隔循环执行任务,导致无法很好的处理应急状态下需一次处理完成的任务,此种任务无须以固定的时间间隔反复执行,仅需特定条件触发任务的执行即可。在列车领域,在列车运行紧急情况发生时,需要运行紧急制动或其他紧急处理措施,如果处理不及时,不可靠,影响和代价非常大,现有技术无法很好的满足。3)任务通信与切换问题,现有的可编程控制器一般采用任务间通信的方式,处理不同任务的共有问题,但通常任务通信机制复杂,任务切换的代价较高,十分不适合可编程控制器这种快速反馈的系统。
针对上述技术问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种任务调度和处理方法及装置、存储介质和处理器,以至少解决任务调度效率低下、应急任务处理不及时、任务通信切换效果不佳的技术问题。
根据本申请实施例的一个方面,提供了一种任务调度和处理方法,包括:划分任务队列中的任务,并确定任务类型,任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;根据任务类型对任务队列中的任务进行任务调度,任务调度是通过对调度的延迟,使每个任务调度时间间隔中的任务不超过预设数量;基于任务调度的调度结果,对任务队列中的任务进行任务处理。
可选地,调度的延迟包括以下任意一种方式:对任务调度的时间进行延迟偏移计算;确定任务的任务时隙,并根据所述任务时隙进行所述任务调度。
可选地,对任务调度的时间进行延迟偏移计算,包括:确定任务调度所对应时间间隔的第一倍增因子,以及任务调度所对应时间间隔的上一时间间隔的第二倍增因子;依据第一倍增因子和第二倍增因子的平均值确定任务调度所对应时间间隔的偏移量。
可选地,对确定任务的空闲时隙,并根据空闲时隙执行任务调度,包括:确定任务数量少于预设数量的空闲时隙;确定任务数量大于预设数量的所有目标时隙;将所有目标时隙中每个目标时隙的剩余任务分配至空闲时隙内,其中,剩余任务为每个目标时隙内的总任务数量减去预设数量的任务后剩余的任务。
可选地,中断任务的触发时间是在任务调度或任务处理过程中的任意时间点。
可选地,中断任务的任务运行方式为不间断地从中断任务的开始运行至中断任务的结束。
可选地,在根据任务类型进行任务调度之前,该方法还包括:根据任务类型,配置任务类型的优先级;其中,配置任务类型的优先级至少包括:配置周期任务的优先级、配置中断任务的优先级。
可选地,时间片任务是周期任务执行的基本时间单位,周期任务以其作为倍增因子划分时隙并动态配置;周期任务是以固定的时间间隔执行并以时间片任务周期为基本时间单位的任务,中断任务是可动态配置到不同的预定义中断源的优先级高于周期任务的任务。
可选地,任务处理的阶段至少包括:对任务进行初始化处理,初始化处理用于对系统级的初始化代码执行;对任务进行系统功能处理,系统功能处理用于任务级的共享代码的执行;对任务进行通用处理,通用处理用于任务的标准运行处理。
可选地,在通用处理之前,该方法还包括:对任务进行快速读取处理和读取一致性处理,快速读取处理用于读取共享内存,读取一致性处理用于支持共享内存一致性。
可选地,在通用处理之后,该方法还包括:对任务进行快速写入处理和写入一致性处理,快速写入处理用于写入共享内存,写入一致性处理用于支持共享内存一致性。
根据本申请实施例的另一方面,还提供了一种任务调度和处理装置,包括:任务类型划分模块,用于划分任务队列中的任务,并确定任务类型,任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;任务调度模块,用于根据任务类型对任务队列中的任务进行任务调度,任务调度模块包括延迟单元,用于使得每个任务调度时间间隔中的任务数量不超过预设数量;任务处理模块,用于基于任务调度的调度结果,对任务队列中的任务进行任务处理。
可选地,时间片任务是周期任务执行的基本时间单位,周期任务以其作为倍增因子划分时隙并动态配置;周期任务是以固定的时间间隔执行并以时间片任务周期为基本时间单位的任务,中断任务是可动态配置到不同的预定义中断源的优先级高于周期任务的任务。
可选地,所述延迟单元包括以下任意一个子单元:延迟偏移计算子单元,用于对任务调度的时间进行延迟偏移计算;时隙确定子单元,用于确定任务的空闲时隙,并根据空闲时隙执行任务调度。
可选地,任务处理模块至少包括:初始化处理单元,用于对系统级的初始化代码执行;系统功能处理单元,用于任务级的共享代码的执行;通用处理单元,用于任务的标准运行处理。
可选地,所述通用处理单元还包括:快速读取处理子单元和读取一致性处理子单元,快速读取处理子单元用于读取共享内存,读取一致性处理子单元用于支持共享内存一致性;快速写入处理子单元和写入一致性处理子单元,写入读取处理子单元用于写入共享内存,写入一致性处理子单元用于支持共享内存一致性。
根据本申请实施例的另一方面,还提供了一种任务调度和处理方法,包括:接收需要执行的任务;配置需要执行的任务的任务类型以及任务优先级,其中任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;根据任务类型以及任务优先级进行任务调度,并利用对任务调度的延迟,使每个任务调度时间间隔中的任务数量不超过预设数量;对调度后的任务进行以下处理:对任务进行初始化处理,初始化处理用于对系统级的初始化代码执行;对任务进行系统功能处理,系统功能处理用于任务级的共享代码的执行;对任务进行通用处理,通用处理用于任务的标准运行处理;向任务指令发出端反馈任务的执行结果。
可选地,对调度后的任务进行以下处理还包括:在通用处理之前,对任务进行快速读取处理和读取一致性处理,快速读取处理用于读取共享内存,读取一致性处理用于支持共享内存一致性;在通用处理之后,对任务进行快速写入处理和写入一致性处理,快速写入处理用于写入共享内存,写入一致性处理用于支持共享内存一致性。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的程序,其中,程序运行时控制存储介质所在的设备执行所述的任务调度和处理方法。
根据本申请实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行所述的任务调度和处理方法。
在本申请实施例中,采用对任务预处理,包括划分任务类型以及设置任务优先级,利用延迟原理对任务调度进行优化,同时利用多任务处理阶段来完成任务的处理过程。因此,本申请解决了相关技术中任务调度效率低下、应急任务处理不及时、任务通信切换效率低下的技术问题,达到了提高任务调度效率、弥补了现有技术对于应急任务处理的缺陷,并增加了任务间通信及切换的质量的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种任务调度和处理方法流程图;
图2是相关技术中任务调度方式的示意图;
图3是根据本申请实施例的一种可选地利用延迟的任务调度示意图;
图4是根据本申请实施例的一种可选地任务处理阶段的流程图;
图5是根据本申请实施例的一种可选地T1和T3周期任务运行阶段的示意图;
图6是根据本申请实施例的一种任务调度和处理装置的结构框图;
图7是根据本申请实施例在实际应用场景的一种任务调度和处理方法的流程图
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例,提供了一种任务调度和处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种任务调度和处理方法流程图,如图4所示,该方法包括如下步骤:
步骤S102,划分任务队列中的任务,并确定任务类型。
具体地,任务类型可以包括以下三种类型:时间片任务、周期任务、中断任务;时间片任务是周期任务执行的基本时间单位,其它周期任务以其作为倍增因子划分时隙并动态配置,周期任务是以固定的时间间隔执行并以时间片任务周期为基本时间单位的任务,中断任务是可动态配置到不同的预定义中断源的优先级高于周期任务的任务。其中,时间片任务作为基础时间单位,可以根据应用层面的实际需求进行设置,在CPU负载允许的情况下,时间片任务越长,对于CPU负载越大,而任务调度中每个任务所执行的时间也会有所增加,所以划分以及设置时间片任务是关系到任务调度效率的步骤。例如,在划分任务类型时,可以划分:时间片任务T0,周期任务T1-T5,中断任务:I1-I8,进一步地,以T0作为时间片基本时间单位,T1可以是列车牵引控制任务,T2可以是列车车门控制,T3至T5也可以针对实际需要设置为相应的列车任务,I1-I8为紧急响应任务,例如可以是烟雾报警、紧急制动、列车部件损坏等情况。
需要说明的是,上述任务类型的划分不限于所述三种类型的划分,例如可以增加带有结束整个调度进程指令的“完结任务”,也可以增加重置目前任务循环点、清理目前运行缓存的“重置任务”。
还需要说明的是,周期任务以及中断任务的设置是依据实际情况而定,其任务数量不限于本实施例所记载的情况。
可选地,中断任务的触发时间是在任务调度或任务处理过程中的任意时间点。
具体地,在本申请的实施例中,中断任务的作用是用于列车的应急响应及处理,例如烟雾报警探测,由于该类型的事件出现的时间不以列车自身状态,即各个任务的执行状态相关联,所以为了保证任何时间检测到车厢内烟雾浓度大于标准值的时候采取应急处理,就要将中断任务的触发时间点设置为任意时间点。例如,当列车行车期间,某个车厢内的烟雾检测器检测到了烟雾浓度超过标准值,那么列车任务执行系统将立刻触发烟雾报警对应的中断任务,达到实时监测车内烟雾情况的技术效果。
可选地,中断任务的任务运行方式为不间断地从中断任务的开始运行至中断任务的结束。
具体地,由于本实施例是通过时间片轮转调度的方法进行任务调度,时间片轮转调度的特点是为防止某一任务独占CPU而实现的时间片轮转方法,一般分配固定的时间片用于任务执行,时间片结束产生时钟中断。时间片内,当前任务即使没能执行完也必须出让CPU给下一个任务执行,这样保证了每一任务都有机会运行。然而当遇到中断任务被触发的时候,由于中断任务具有紧急性,需要及时发现并及时处理,所以在任务调度中对于中断任务采取不间断执行完毕,即从进入中断任务流程后利用CPU进程资源不间断、持续地处理完毕整个中断任务流程直至中断任务结束。例如,当列车行车期间,某个车厢内的烟雾检测器检测到了烟雾浓度超过标准值,那么列车任务执行系统将立刻触发烟雾报警对应的中断任务,并根据任务流程进行一系列措施,可包括:列车车内报警、通知列车工作人员、远程向监控服务器端发送警报信息以及提示烟雾超标车厢内的乘客紧急疏散。通过这样不间断地、持续地应急流程,达到对紧急情况进行及时处理的技术效果,增加了列车的稳定性、安全性。
可选地,在根据任务类型进行任务调度之前,该方法还包括:根据任务类型,配置任务类型的优先级;其中,配置任务类型的优先级至少包括:配置周期任务的优先级、配置中断任务的优先级。
具体地,配置周期任务以及中断任务的优先级是为了在任务执行阶段,在有限的资源下充分发挥CPU的效力解决最核心的任务需求,例如需要分配的周期任务包括:车门控制任务T1、车辆牵引任务T2、车厢温度检测任务T3,那么可以根据列车的实际需求,将核心任务车辆牵引作为优先级最高的任务,其次是车门控制任务,最后是车厢温度检测任务,所以优先级排序为T2>T1>T3。此外,中断任务的优先级往往高于周期任务的优先级,例如中断任务可以是烟雾探测任务,当烟雾浓度超过标准值的时候则进行一系列的措施,那么显而易见的是对于这样具有紧急性的中断任务的优先级一定是高于所以列车运行周期任务的,因为中断任务往往关乎到车辆安全性等重大的问题。
步骤S104,根据任务类型对任务队列中的任务进行任务调度。
具体地,任务调度是通过对调度的延迟,使每个任务调度时间间隔中的任务不超过预设数量。本实施例通过任务延迟的方法,控制N个周期任务的启动执行时间,延迟执行上述N个周期任务,以使每一个T0(基本时间单位)上待执行的周期任务数量不超过m个,并分配多余任务到少于m个任务执行的“空闲”时隙内执行,达到在每个周期内平衡使用系统资源的目的;采用上述技术方案,解决了相关技术中,任务调度的效率低下等问题,提升了任务调度的效率。例如,如图3所示,当控制N=5(T1至T5)个周期任务时,时间片轮转调度时会出现多个不同任务数量的时隙,当预设任务数量m=2时,则任务调度时将本应在4T0时间间隔内调度的T3任务延迟至5T0是时间间隔中进行调度,显然可以看出,4T0与5T0的任务数量都是两个,充分利用了CPU调度资源,而不会出现4T0中有三个任务,5T0只有一个任务的浪费资源、效率低下的问题。
需要说明的是,时隙时电路交换汇总信息传送的最小单位,专用于某一个单个通道的时隙信息的串行复用的一个部分,它是各种任务调度模式中的一个时间片。
还需要说明的是,如图2所示,图2是相关技术中不采用延迟方法进行的任务调度,其中周期任务为T1至T5,可以很明显的看出,在任务调度过程中,有若干T0时间间隔内任务数量只有1个,且很多T0时间间隔内任务数量超过2个,这样的不均衡分配任务会使得系统资源在一定程度上产生浪费,其任务调度的效率也有一定程度的降低。
可选地,调度的延迟包括以下任意一种方式:对任务调度的时间进行延迟偏移计算;确定任务的任务时隙,并根据所述任务时隙进行所述任务调度。其中,任务调度的延迟偏移计算过程具体是:确定任务调度所对应时间间隔的第一倍增因子,以及任务调度所对应时间间隔的上一时间间隔的第二倍增因子;依据第一倍增因子和第二倍增因子的平均值确定任务调度所对应时间间隔的偏移量,例如:
设置倍增因子:n1至n5;设置延迟偏移:n1Offset至n5Offset;(n1至n5的延迟偏移)
延迟偏移的计算公式:
n1Offset:不变
n2Offset:(n2-n1)/2+n1Offset
n3Offset:(n3-n2)/2+n2Offset
n4Offset:(n4-n3)/2+n3Offset
n5Offset:(n5-n4)/2+n4Offset
根据上述实施例,调度的延迟的另一种方法,即对任务调度进行任务开始时隙的确定的具体过程是:确定任务数量少于预设数量的空闲时隙;确定任务数量大于预设数量的所有目标时隙;将所有目标时隙中每个目标时隙的剩余任务分配至空闲时隙内,其中,剩余任务为每个目标时隙内的总任务数量减去预设数量的任务后剩余的任务。例如:
设置倍增因子:n1至n5,设置周期任务T1至T5;
if(i+n1/2)%n1==0)…→start T1
if(i+n2/2)%n2==0)…→start T2
if(i+n3/2)%n3==0)…→start T3
if(i+n4/2)%n4==0)…→start T4
if(i+n5/2)%n5==0)…→start T5
因此,任务延迟机制分配了多余任务到少于两个任务执行的“空闲”时隙内执行。任务延迟机制尽可能地将任务执行分配给空闲时隙。主要目标是保证每个任务执行的时间点的等距离以及所有任务仍以“时间等价”方式执行。通过如本申请实施例调度方法,达到了平衡使用系统资源,提高系统稳定性和健壮性的目的。
需要说明书的是,多余的任务可以是大于预设数量的任务,例如预设数量为两个,那么当时间间隔内任务数量为三个的时候,则将多出来的“一个任务”作为多余的任务,分配至空闲的时隙中。
步骤S106,基于任务调度的调度结果,对任务队列中的任务进行任务处理。
可选地,任务处理的阶段至少包括:对任务进行初始化处理,初始化处理用于对系统级的初始化代码执行;对任务进行系统功能处理,系统功能处理用于任务级的共享代码的执行;对任务进行通用处理,通用处理用于任务的标准运行处理。在通用处理之前,该方法还包括:对任务进行快速读取处理和读取一致性处理,快速读取处理用于读取共享内存,读取一致性处理用于支持共享内存一致性。在通用处理之后,该方法还包括:对任务进行快速写入处理和写入一致性处理,快速写入处理用于写入共享内存,写入一致性处理用于支持共享内存一致性。
具体地,任务经过任务类型划分、任务优先级设置以及任务调度,那么下一步就是怎么处理任务以及任务之间如何通信和切换。如图4所示流程图,本申请实施例中,为了解决现有技术任务之间通信及切换效率低下的问题,采用了分阶段处理任务的方式,具体分为五个阶段:
S402初始化处理阶段;
S404系统功能处理阶段;
S406快速读取处理和读取一致性处理阶段;
S408通用处理阶段;
S410快速写入处理和写入一致性处理阶段。
其中,初始化阶段可以是电脑控制端的初始化(Init)处理,它在系统冷启动(codestart)或热启动(warmstart)时执行,并且仅执行一次,独立于可编程控制任务,一般用于系统级的初始化代码执行;系统功能处理阶段可以是电脑控制端的System处理,每个任务执行周期开始时执行,对于所有周期任务共享同一个System处理阶段,但是对于中断任务则其中每个任务拥有着各自的System处理阶段,System处理阶段一般用于任务级的共享代码的执行,它受任务锁保护,不能中断执行;快速读取处理和读取一致性处理阶段可以是电脑控制端的Fast import处理和Consistent import处理,此项处理在通用处理阶段之前运行,其中Fast Import处理用于读取共享内存,可用于执行周期任务和中断任务时的读取共享内存操作,Consistent Import处理用于支持共享内存一致性,仅用于周期任务;通用处理阶段可以是电脑控制端的Normal处理,任务标准运行处理,所有任务拥有各自的Normal处理阶段,在Fast import处理和Consistent import处理之后执行;快速写入处理和写入一致性处理阶段可以是电脑控制端的Fast export处理和Consistent export处理,任务通用处理阶段之后运行,其中Fast Export处理用于写入共享内存,可用于周期任务和中断任务,Consistent Export处理用于支持共享内存一致性,仅用于周期任务。
需要说明的是,任务处理阶段所读取和写入的共享内存为该任务的处理信息,处理信息可以是执行状态,例如在执行列车车门的任务时,电脑主控端将车门的开关状态写入共享内存,以便其他周期任务可以在进行快速读取处理阶段时获取车门开关的信息。
如图5所示,假设目前执行的任务包括T1和T3两个任务,其中T1为牵引系统(DCU)控制任务,T3为车门系统(EDCU)控制任务,从逻辑上来讲,列车要求当车门控制系统检测到车门存在未闭合情形下,牵引系统控制任务不能执行牵引动作等相关逻辑控制任务;其中牵引控制任务是列车核心系统,置于优先级较高的T1周期任务中,车门控制系统置于T3周期任务中,图5中:
TxS表示:任务Tx的System处理
TxFI表示:任务Tx的Fast import处理
TxCI表示:任务Tx的Consistent import处理
TxN表示:任务Tx的Normal处理
TxCE表示:任务Tx的Consistent export处理
TxFE表示:任务Tx的Fast export处理
另外,从任务处理阶段的角度来讲,EDCU系统在T3FE处理阶段中,将检测到的列车各车门状态写入到共享内存中;当DCU控制任务在T1FI处理阶段中读取共享内存,获取到EDCU系统的车门信息,然后根据车门信息进而判断DCU系统的执行逻辑。
对任务处理段进行划分的方法满足了列车控制系统高实时性,高可靠性的要求;列车多任务同时运行,且各周期任务之间关联依赖性高;例如车门控系统与牵引系统,受电弓控制系统同牵引制动系统,各子系统状态同紧急制动之间等多任务之间存在关联和通信的需求;任务处理阶段划分的方法从技术上保证了列车各关联子系统能够有序运行,对列车安全及稳定性具有非常重要的作用。
如图6所示,本申请实施例还提供了一种任务调度和处理装置,包括:任务类型划分模块62,用于划分任务队列中的任务,并确定任务类型,任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;任务调度模块64,用于根据任务类型对任务队列中的任务进行任务调度,任务调度模块包括延迟单元,用于使得每个任务调度时间间隔中的任务数量不超过预设数量;任务处理模块66,用于基于任务调度的调度结果,对任务队列中的任务进行任务处理。
具体地,任务类型可以包括以下三种类型:时间片任务、周期任务、中断任务;时间片任务是周期任务执行的基本时间单位,其它周期任务以其作为倍增因子划分时隙并动态配置,周期任务是以固定的时间间隔执行并以时间片任务周期为基本时间单位的任务,中断任务是可动态配置到不同的预定义中断源的优先级高于周期任务的任务。其中,时间片任务作为基础时间单位,可以根据应用层面的实际需求进行设置,在CPU负载允许的情况下,时间片任务越长,对于CPU负载越大,而任务调度中每个任务所执行的时间也会有所增加,所以划分以及设置时间片任务是关系到任务调度效率的步骤。例如,在划分任务类型时,可以划分:时间片任务T0,周期任务T1-T5,中断任务:I1-I8,进一步地,以T0作为时间片基本时间单位,T1可以是列车牵引控制任务,T2可以是列车车门控制,T3至T5也可以针对实际需要设置为相应的列车任务,I1-I8为紧急响应任务,例如可以是烟雾报警、紧急制动、列车部件损坏等情况。
需要说明的是,上述任务类型的划分不限于所述三种类型的划分,例如可以增加带有结束整个调度进程指令的“完结任务”,也可以增加重置目前任务循环点、清理目前运行缓存的“重置任务”。
还需要说明的是,周期任务以及中断任务的设置是依据实际情况而定,其任务数量不限于本实施例所记载的情况。
可选地,所述延迟单元包括以下任意一个子单元:延迟偏移计算子单元,用于对任务调度的时间进行延迟偏移计算;时隙确定子单元,用于确定任务的空闲时隙,并根据空闲时隙执行任务调度。
具体地,任务调度是通过对调度的延迟,使每个任务调度时间间隔中的任务不超过预设数量。本实施例通过任务延迟的方法,控制N个周期任务的启动执行时间,延迟执行上述N个周期任务,以使每一个T0(基本时间单位)上待执行的周期任务数量不超过m个,并分配多余任务到少于m个任务执行的“空闲”时隙内执行,达到在每个周期内平衡使用系统资源的目的;采用上述技术方案,解决了相关技术中,任务调度的效率低下等问题,提升了任务调度的效率。例如,如图3所示,当控制N=5(T1至T5)个周期任务时,时间片轮转调度时会出现多个不同任务数量的时隙,当预设任务数量m=2时,则任务调度时将本应在4T0时间间隔内调度的T3任务延迟至5T0是时间间隔中进行调度,显然可以看出,4T0与5T0的任务数量都是两个,充分利用了CPU调度资源,而不会出现4T0中有三个任务,5T0只有一个任务的浪费资源、效率低下的问题。
需要说明的是,时隙时电路交换汇总信息传送的最小单位,专用于某一个单个通道的时隙信息的串行复用的一个部分,它是各种任务调度模式中的一个时间片。
还需要说明的是,如图2所示,图2是相关技术中不采用延迟方法进行的任务调度,其中周期任务为T1至T5,可以很明显的看出,在任务调度过程中,有若干T0时间间隔内任务数量只有1个,且很多T0时间间隔内任务数量超过2个,这样的不均衡分配任务会使得系统资源在一定程度上产生浪费,其任务调度的效率也有一定程度的降低。
其中,任务调度模块64中的的延迟偏移计算子单元运行过程具体是:
设置倍增因子:n1至n5;设置延迟偏移:n1Offset至n5Offset;(n1至n5的延迟偏移)
延迟偏移的计算公式:
n1Offset:不变
n2Offset:(n2-n1)/2+n1Offset
n3Offset:(n3-n2)/2+n2Offset
n4Offset:(n4-n3)/2+n3Offset
n5Offset:(n5-n4)/2+n4Offset
开始时隙确定子单元运行具体过程是:
设置倍增因子:n1至n5,设置周期任务T1至T5;
if(i+n1/2)%n1==0)…→start T1
if(i+n2/2)%n2==0)…→start T2
if(i+n3/2)%n3==0)…→start T3
if(i+n4/2)%n4==0)…→start T4
if(i+n5/2)%n5==0)…→start T5
因此,任务延迟机制分配了多余任务到少于两个任务执行的“空闲”时隙内执行。任务延迟机制尽可能地将任务执行分配给空闲时隙。主要目标是保证每个任务执行的时间点的等距离以及所有任务仍以“时间等价”方式执行。通过如本申请实施例调度方法,达到了平衡使用系统资源,提高系统稳定性和健壮性的目的。
可选地,任务处理模块至少包括:初始化处理单元,用于对系统级的初始化代码执行;系统功能处理单元,用于任务级的共享代码的执行;通用处理单元,用于任务的标准运行处理。
可选地,所述通用处理单元还包括:快速读取处理子单元和读取一致性处理子单元,快速读取处理子单元用于读取共享内存,读取一致性处理子单元用于支持共享内存一致性;快速写入处理子单元和写入一致性处理子单元,写入读取处理子单元用于写入共享内存,写入一致性处理子单元用于支持共享内存一致性。
具体地,任务经过任务类型划分、任务优先级设置以及任务调度,那么下一步就是怎么处理任务以及任务之间如何通信和切换。如图4所示流程图,本申请实施例中,为了解决现有技术任务之间通信及切换效率低下的问题,采用了分阶段处理任务的方式,具体分为五个阶段:
S402初始化处理阶段;
S404系统功能处理阶段;
S406快速读取处理和读取一致性处理阶段;
S408通用处理阶段;
S410快速写入处理和写入一致性处理阶段。
其中,初始化阶段可以是电脑控制端的Init处理,它在系统冷启动(codestart)或热启动(warmstart)时执行,并且仅执行一次,独立于可编程控制任务,一般用于系统级的初始化代码执行;系统功能处理阶段可以是电脑控制端的System处理,每个任务执行周期开始时执行,对于所有周期任务共享同一个System处理阶段,但是对于中断任务则其中每个任务拥有着各自的System处理阶段,System处理阶段一般用于任务级的共享代码的执行,它受任务锁保护,不能中断执行;快速读取处理和读取一致性处理阶段可以是电脑控制端的Fast import处理和Consistent import处理,此项处理在通用处理阶段之前运行,其中Fast Import处理用于读取共享内存,可用于执行周期任务和中断任务时的读取共享内存操作,Consistent Import处理用于支持共享内存一致性,仅用于周期任务;通用处理阶段可以是电脑控制端的Normal处理,任务标准运行处理,所有任务拥有各自的Normal处理阶段,在Fast import处理和Consistent import处理之后执行;快速写入处理和写入一致性处理阶段可以是电脑控制端的Fast export处理和Consistent export处理,任务通用处理阶段之后运行,其中Fast Export处理用于写入共享内存,可用于周期任务和中断任务,Consistent Export处理用于支持共享内存一致性,仅用于周期任务。
需要说明的是,任务处理阶段所读取和写入的共享内存为该任务的处理信息,处理信息可以是执行状态,例如在执行列车车门的任务时,电脑主控端将车门的开关状态写入共享内存,以便其他周期任务可以在进行快速读取处理阶段时获取车门开关的信息。
如图5所示,假设目前执行的任务包括T1和T3两个任务,其中T1为牵引系统(DCU)控制任务,T3为车门系统(EDCU)控制任务,从逻辑上来讲,列车要求当车门控制系统检测到车门存在未闭合情形下,牵引系统控制任务不能执行牵引动作等相关逻辑控制任务;其中牵引控制任务是列车核心系统,置于优先级较高的T1周期任务中,车门控制系统置于T3周期任务中,图5中:
TxS表示:任务Tx的System处理
TxFI表示:任务Tx的Fast import处理
TxCI表示:任务Tx的Consistent import处理
TxN表示:任务Tx的Normal处理
TxCE表示:任务Tx的Consistent export处理
TxFE表示:任务Tx的Fast export处理
另外,从任务处理阶段的角度来讲,EDCU系统在T3FE处理阶段中,将检测到的列车各车门状态写入到共享内存中;当DCU控制任务在T1FI处理阶段中读取共享内存,获取到EDCU系统的车门信息,然后根据车门信息进而判断DCU系统的执行逻辑。
对任务处理段进行划分的方法满足了列车控制系统高实时性,高可靠性的要求;列车多任务同时运行,且各周期任务之间关联依赖性高;例如车门控系统与牵引系统,受电弓控制系统同牵引制动系统,各子系统状态同紧急制动之间等多任务之间存在关联和通信的需求;任务处理阶段划分的方法从技术上保证了列车各关联子系统能够有序运行,对列车安全及稳定性具有非常重要的作用。
如图7所示流程图,本申请实施例还提供了一种任务调度和处理方法,包括:
S702,接收需要执行的任务;
S704,配置需要执行的任务的任务类型以及任务优先级,其中任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;
S706,根据任务类型以及任务优先级进行任务调度,并利用对任务调度的延迟,使每个任务调度时间间隔中的任务数量不超过预设数量;
S708,对调度后的任务进行以下处理:对任务进行初始化处理,初始化处理用于对系统级的初始化代码执行;对任务进行系统功能处理,系统功能处理用于任务级的共享代码的执行;对任务进行通用处理,通用处理用于任务的标准运行处理;
S710,向任务指令发出端反馈任务的执行结果。
可选地,对调度后的任务进行以下处理还包括:在通用处理之前,对任务进行快速读取处理和读取一致性处理,快速读取处理用于读取共享内存,读取一致性处理用于支持共享内存一致性;在通用处理之后,对任务进行快速写入处理和写入一致性处理,快速写入处理用于写入共享内存,写入一致性处理用于支持共享内存一致性。
具体地,上述实施例是本申请在具体应用场景中的执行流程,接收需要执行的任务可以是从列车主控电脑端接收的指令,也可以是通过远程服务器端发出的指令进行接收并执行。
任务类型可以包括以下三种类型:时间片任务、周期任务、中断任务;时间片任务是周期任务执行的基本时间单位,其它周期任务以其作为倍增因子划分时隙并动态配置,周期任务是以固定的时间间隔执行并以时间片任务周期为基本时间单位的任务,中断任务是可动态配置到不同的预定义中断源的优先级高于周期任务的任务。其中,时间片任务作为基础时间单位,可以根据应用层面的实际需求进行设置,在CPU负载允许的情况下,时间片任务越长,对于CPU负载越大,而任务调度中每个任务所执行的时间也会有所增加,所以划分以及设置时间片任务是关系到任务调度效率的步骤。例如,在划分任务类型时,可以划分:时间片任务T0,周期任务T1-T5,中断任务:I1-I8,进一步地,以T0作为时间片基本时间单位,T1可以是列车牵引控制任务,T2可以是列车车门控制,T3至T5也可以针对实际需要设置为相应的列车任务,I1-I8为紧急响应任务,例如可以是烟雾报警、紧急制动、列车部件损坏等情况。
需要说明的是,上述任务类型的划分不限于所述三种类型的划分,例如可以增加带有结束整个调度进程指令的“完结任务”,也可以增加重置目前任务循环点、清理目前运行缓存的“重置任务”。
还需要说明的是,周期任务以及中断任务的设置是依据实际情况而定,其任务数量不限于本实施例所记载的情况。
根据本申请的一些实施例,任务调度是通过对调度的延迟,使每个任务调度时间间隔中的任务不超过预设数量。本实施例通过任务延迟的方法,控制N个周期任务的启动执行时间,延迟执行上述N个周期任务,以使每一个T0(基本时间单位)上待执行的周期任务数量不超过m个,并分配多余任务到少于m个任务执行的“空闲”时隙内执行,达到在每个周期内平衡使用系统资源的目的;采用上述技术方案,解决了相关技术中,任务调度的效率低下等问题,提升了任务调度的效率。例如,如图3所示,当控制N=5(T1至T5)个周期任务时,时间片轮转调度时会出现多个不同任务数量的时隙,当预设任务数量m=2时,则任务调度时将本应在4T0时间间隔内调度的T3任务延迟至5T0是时间间隔中进行调度,显然可以看出,4T0与5T0的任务数量都是两个,充分利用了CPU调度资源,而不会出现4T0中有三个任务,5T0只有一个任务的浪费资源、效率低下的问题。
需要说明的是,时隙时电路交换汇总信息传送的最小单位,专用于某一个单个通道的时隙信息的串行复用的一个部分,它是各种任务调度模式中的一个时间片。
还需要说明的是,如图2所示,图2是相关技术中不采用延迟方法进行的任务调度,其中周期任务为T1至T5,可以很明显的看出,在任务调度过程中,有若干T0时间间隔内任务数量只有1个,且很多T0时间间隔内任务数量超过2个,这样的不均衡分配任务会使得系统资源在一定程度上产生浪费,其任务调度的效率也有一定程度的降低。
其中,任务调度模块64中的的延迟偏移计算子单元运行过程具体是:
设置倍增因子:n1至n5;设置延迟偏移:n1Offset至n5Offset;(n1至n5的延迟偏移)
延迟偏移的计算公式:
n1Offset:不变
n2Offset:(n2-n1)/2+n1Offset
n3Offset:(n3-n2)/2+n2Offset
n4Offset:(n4-n3)/2+n3Offset
n5Offset:(n5-n4)/2+n4Offset
开始时隙确定子单元运行具体过程是:
设置倍增因子:n1至n5,设置周期任务T1至T5;
if(i+n1/2)%n1==0)…→start T1
if(i+n2/2)%n2==0)…→start T2
if(i+n3/2)%n3==0)…→start T3
if(i+n4/2)%n4==0)…→start T4
if(i+n5/2)%n5==0)…→start T5
因此,任务延迟机制分配了多余任务到少于两个任务执行的“空闲”时隙内执行。任务延迟机制尽可能地将任务执行分配给空闲时隙。主要目标是保证每个任务执行的时间点的等距离以及所有任务仍以“时间等价”方式执行。通过如本申请实施例调度方法,达到了平衡使用系统资源,提高系统稳定性和健壮性的目的。
根据本申请的一些实施例,如图4所示流程图,本申请实施例中,为了解决现有技术任务之间通信及切换效率低下的问题,采用了分阶段处理任务的方式,具体分为五个阶段:
S402初始化处理阶段;
S404系统功能处理阶段;
S406快速读取处理和读取一致性处理阶段;
S408通用处理阶段;
S410快速写入处理和写入一致性处理阶段。
其中,初始化阶段可以是电脑控制端的Init处理,它在系统冷启动(codestart)或热启动(warmstart)时执行,并且仅执行一次,独立于可编程控制任务,一般用于系统级的初始化代码执行;系统功能处理阶段可以是电脑控制端的System处理,每个任务执行周期开始时执行,对于所有周期任务共享同一个System处理阶段,但是对于中断任务则其中每个任务拥有着各自的System处理阶段,System处理阶段一般用于任务级的共享代码的执行,它受任务锁保护,不能中断执行;快速读取处理和读取一致性处理阶段可以是电脑控制端的Fast import处理和Consistent import处理,此项处理在通用处理阶段之前运行,其中Fast Import处理用于读取共享内存,可用于执行周期任务和中断任务时的读取共享内存操作,Consistent Import处理用于支持共享内存一致性,仅用于周期任务;通用处理阶段可以是电脑控制端的Normal处理,任务标准运行处理,所有任务拥有各自的Normal处理阶段,在Fast import处理和Consistent import处理之后执行;快速写入处理和写入一致性处理阶段可以是电脑控制端的Fast export处理和Consistent export处理,任务通用处理阶段之后运行,其中Fast Export处理用于写入共享内存,可用于周期任务和中断任务,Consistent Export处理用于支持共享内存一致性,仅用于周期任务。
需要说明的是,任务处理阶段所读取和写入的共享内存为该任务的处理信息,处理信息可以是执行状态,例如在执行列车车门的任务时,电脑主控端将车门的开关状态写入共享内存,以便其他周期任务可以在进行快速读取处理阶段时获取车门开关的信息。
如图5所示,假设目前执行的任务包括T1和T3两个任务,其中T1为牵引系统(DCU)控制任务,T3为车门系统(EDCU)控制任务,从逻辑上来讲,列车要求当车门控制系统检测到车门存在未闭合情形下,牵引系统控制任务不能执行牵引动作等相关逻辑控制任务;其中牵引控制任务是列车核心系统,置于优先级较高的T1周期任务中,车门控制系统置于T3周期任务中,图5中:
TxS表示:任务Tx的System处理
TxFI表示:任务Tx的Fast import处理
TxCI表示:任务Tx的Consistent import处理
TxN表示:任务Tx的Normal处理
TxCE表示:任务Tx的Consistent export处理
TxFE表示:任务Tx的Fast export处理
另外,从任务处理阶段的角度来讲,EDCU系统在T3FE处理阶段中,将检测到的列车各车门状态写入到共享内存中;当DCU控制任务在T1FI处理阶段中读取共享内存,获取到EDCU系统的车门信息,然后根据车门信息进而判断DCU系统的执行逻辑。
对任务处理段进行划分的方法满足了列车控制系统高实时性,高可靠性的要求;列车多任务同时运行,且各周期任务之间关联依赖性高;例如车门控系统与牵引系统,受电弓控制系统同牵引制动系统,各子系统状态同紧急制动之间等多任务之间存在关联和通信的需求;任务处理阶段划分的方法从技术上保证了列车各关联子系统能够有序运行,对列车安全及稳定性具有非常重要的作用。
本申请实施例还提供了一种非易失性存储介质,包括存储的程序,其中,所述程序运行时控制存储介质所在的设备执行所述的任务调度和处理方法。例如,可以执行以下步骤:划分任务队列中的任务,并确定任务类型,所述任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;根据所述任务类型对所述任务队列中的任务进行任务调度,所述任务调度是通过对调度的延迟,使每个任务调度时间间隔中的任务数量不超过预设数量;基于所述任务调度的调度结果,对所述任务队列中的任务进行任务处理。
本申请实施例的还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述的任务调度和处理方法。例如,可以执行以下步骤:划分任务队列中的任务,并确定任务类型,所述任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;根据所述任务类型对所述任务队列中的任务进行任务调度,所述任务调度是通过对调度的延迟,使每个任务调度时间间隔中的任务数量不超过预设数量;基于所述任务调度的调度结果,对所述任务队列中的任务进行任务处理。
通过上述实施例,采用对任务预处理,包括划分任务类型以及设置任务优先级,利用延迟原理对任务调度进行优化,同时利用多任务处理阶段来完成任务的处理过程。因此,本申请解决了相关技术中任务调度效率低下、应急任务处理不及时、任务通信切换效率低下的技术问题,达到了提高任务调度效率、弥补了现有技术对于应急任务处理的缺陷,并增加了任务间通信及切换的质量的技术效果。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (20)
1.一种任务调度和处理方法,其特征在于,所述方法包括:
划分任务队列中的任务,并确定任务类型,所述任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;
根据所述任务类型对所述任务队列中的任务进行任务调度,所述任务调度是通过对调度的延迟,使每个任务调度时间间隔中的任务数量不超过预设数量;
基于所述任务调度的调度结果,对所述任务队列中的任务进行任务处理。
2.根据权利要求1所述的方法,其特征在于,所述调度的延迟包括以下任意一种方式:
对所述任务调度的时间进行延迟偏移计算;
确定所述任务的空闲时隙,并根据所述空闲时隙执行所述任务调度。
3.根据权利要求2所述的方法,其特征在于,对所述任务调度的时间进行延迟偏移计算,包括:
确定所述任务调度所对应时间间隔的第一倍增因子,以及所述任务调度所对应时间间隔的上一时间间隔的第二倍增因子;
依据所述第一倍增因子和第二倍增因子的平均值确定所述任务调度所对应时间间隔的偏移量。
4.根据权利要求2所述的方法,其特征在于,对所述确定所述任务的空闲时隙,并根据所述空闲时隙执行所述任务调度,包括:
确定任务数量少于所述预设数量的所述空闲时隙;
确定所述任务数量大于所述预设数量的所有目标时隙;
将所述所有目标时隙中每个目标时隙的剩余任务分配至所述空闲时隙内,其中,剩余任务为每个目标时隙内的总任务数量减去所述预设数量的任务后剩余的任务。
5.根据权利要求1所述的方法,其特征在于,
所述中断任务的触发时间是在所述任务调度或所述任务处理过程中的任意时间点。
6.根据权利要求5所述的方法,其特征在于,
所述中断任务的任务运行方式为不间断地从所述中断任务的开始运行至所述中断任务的结束。
7.根据权利要求1所述的方法,其特征在于,在根据所述任务类型进行任务调度之前,该方法还包括:
根据所述任务类型,配置所述任务类型的优先级;其中,配置所述任务类型的优先级至少包括:配置所述周期任务的优先级、配置所述中断任务的优先级。
8.根据权利要求1所述的方法,其特征在于,
所述时间片任务是所述周期任务执行的基本时间单位,所述周期任务以其作为倍增因子划分时隙并动态配置;所述周期任务是以固定的时间间隔执行并以所述时间片任务周期为基本时间单位的任务,所述中断任务是可动态配置到不同的预定义中断源的优先级高于所述周期任务的任务。
9.根据权利要求1所述的方法,其特征在于,所述任务处理的阶段至少包括:
对所述任务进行初始化处理,所述初始化处理用于对系统级的初始化代码执行;
对所述任务进行系统功能处理,所述系统功能处理用于任务级的共享代码的执行;
对所述任务进行通用处理,所述通用处理用于任务的标准运行处理。
10.根据权利要求9所述的方法,其特征在于,在所述通用处理之前,该方法还包括:
对所述任务进行快速读取处理和读取一致性处理,所述快速读取处理用于读取共享内存,所述读取一致性处理用于支持共享内存一致性。
11.根据权利要求9所述的方法,其特征在于,在所述通用处理之后,该方法还包括:
对所述任务进行快速写入处理和写入一致性处理,所述快速写入处理用于写入共享内存,所述写入一致性处理用于支持共享内存一致性。
12.一种任务调度和处理装置,其特征在于,所述装置包括:
任务类型划分模块,用于划分任务队列中的任务,并确定任务类型,所述任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;
任务调度模块,用于根据所述任务类型对所述任务队列中的任务进行任务调度,所述任务调度模块包括延迟单元,用于使每个任务调度时间间隔中的任务数量不超过预设数量;
任务处理模块,用于基于所述任务调度的调度结果,对所述任务队列中的任务进行任务处理。
13.根据权利要求12所述的装置,其特征在于,
所述时间片任务是所述周期任务执行的基本时间单位,所述周期任务以其作为倍增因子划分时隙并动态配置;所述周期任务是以固定的时间间隔执行并以所述时间片任务周期为基本时间单位的任务,所述中断任务是可动态配置到不同的预定义中断源的优先级高于所述周期任务的任务。
14.根据权利要求12所述的装置,其特征在于,所述延迟单元包括以下任意一个子单元:
延迟偏移计算子单元,用于对所述任务调度的时间进行所述延迟偏移计算;
时隙确定子单元,用于确定所述任务的空闲时隙,并根据所述空闲时隙执行所述任务调度。
15.根据权利要求12所述的装置,其特征在于,所述任务处理模块至少包括:
初始化处理单元,用于对系统级的初始化代码执行;
系统功能处理单元,用于任务级的共享代码的执行;
通用处理单元,用于任务的标准运行处理。
16.根据权利要求15所述的装置,其特征在于,所述通用处理单元还包括:
快速读取处理子单元和读取一致性处理子单元,所述快速读取处理子单元用于读取共享内存,所述读取一致性处理子单元用于支持共享内存一致性。
快速写入处理子单元和读取一致性处理子单元,所述快速写入处理子单元用于写入共享内存,所述写入一致性处理子单元用于支持共享内存一致性。
17.一种任务调度和处理方法,其特征在于,所述方法包括:
接收需要执行的任务;
确定所述需要执行的任务的任务类型以及任务优先级,其中所述任务类型至少包括以下三种类型:时间片任务、周期任务、中断任务;
根据所述任务类型以及所述任务优先级进行任务调度,并利用对所述任务调度的延迟,使每个任务调度时间间隔中的任务数量不超过预设数量;
对调度后的任务进行以下处理:对所述任务进行初始化处理,所述初始化处理用于对系统级的初始化代码执行;对所述任务进行系统功能处理,所述系统功能处理用于任务级的共享代码的执行;对所述任务进行通用处理,所述通用处理用于任务的标准运行处理;
向任务发出端反馈任务的执行结果。
18.根据权利要求17所述的方法,其特征在于,所述对调度后的任务进行以下处理还包括:
在所述通用处理之前,对所述任务进行快速读取处理和读取一致性处理,所述快速读取处理用于读取共享内存,所述读取一致性处理用于支持共享内存一致性;
在所述通用处理之后,对所述任务进行快速写入处理和写入一致性处理,所述快速写入处理用于写入共享内存,所述写入一致性处理用于支持共享内存一致性。
19.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,所述程序运行时控制非易失性存储介质所在的设备执行权利要求1至11中任意一项所述的显示方法。
20.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至11中任意一项所述的显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910472173.6A CN110196766B (zh) | 2019-05-31 | 2019-05-31 | 任务调度和处理方法及装置、存储介质和处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910472173.6A CN110196766B (zh) | 2019-05-31 | 2019-05-31 | 任务调度和处理方法及装置、存储介质和处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110196766A true CN110196766A (zh) | 2019-09-03 |
CN110196766B CN110196766B (zh) | 2021-07-13 |
Family
ID=67753784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910472173.6A Active CN110196766B (zh) | 2019-05-31 | 2019-05-31 | 任务调度和处理方法及装置、存储介质和处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110196766B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737385A (zh) * | 2020-06-02 | 2020-10-02 | 通号城市轨道交通技术有限公司 | 电子地图数据差错检测方法及装置 |
CN112379983A (zh) * | 2020-11-13 | 2021-02-19 | 天合光能股份有限公司 | 基于时间片的嵌入式实时系统负载均衡任务调度算法 |
CN112764914A (zh) * | 2019-11-05 | 2021-05-07 | 应急管理部通信信息中心 | 智能任务分配系统及智能任务分析方法、装置及电子设备 |
CN112783624A (zh) * | 2021-01-18 | 2021-05-11 | 广汽零部件有限公司 | 用于汽车的非实时调度系统以及任务执行方法 |
CN113760494A (zh) * | 2020-11-23 | 2021-12-07 | 北京京东振世信息技术有限公司 | 任务调度方法和装置 |
CN113961333A (zh) * | 2021-12-22 | 2022-01-21 | 北京燧原智能科技有限公司 | 循环任务的生成、执行方法、装置、ai芯片及存储介质 |
CN114661449A (zh) * | 2022-05-19 | 2022-06-24 | 四川傲势科技有限公司 | 任务调度方法、嵌入式系统及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571538A (zh) * | 2004-05-10 | 2005-01-26 | 中兴通讯股份有限公司 | 一种对移动交换中心进行系统负荷控制的方法 |
CN101923487A (zh) * | 2010-08-06 | 2010-12-22 | 西华师范大学 | 一种综合嵌入式实时周期任务调度方法 |
CN103207807A (zh) * | 2012-01-12 | 2013-07-17 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
US9286106B1 (en) * | 2013-04-16 | 2016-03-15 | Ca, Inc. | Scheduling periodic tasks with dependencies and determining improper loop dependencies between tasks placed in a waiting tasks set and in a unfinished dependent tasks set |
-
2019
- 2019-05-31 CN CN201910472173.6A patent/CN110196766B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571538A (zh) * | 2004-05-10 | 2005-01-26 | 中兴通讯股份有限公司 | 一种对移动交换中心进行系统负荷控制的方法 |
CN101923487A (zh) * | 2010-08-06 | 2010-12-22 | 西华师范大学 | 一种综合嵌入式实时周期任务调度方法 |
CN103207807A (zh) * | 2012-01-12 | 2013-07-17 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
US9286106B1 (en) * | 2013-04-16 | 2016-03-15 | Ca, Inc. | Scheduling periodic tasks with dependencies and determining improper loop dependencies between tasks placed in a waiting tasks set and in a unfinished dependent tasks set |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764914A (zh) * | 2019-11-05 | 2021-05-07 | 应急管理部通信信息中心 | 智能任务分配系统及智能任务分析方法、装置及电子设备 |
CN111737385A (zh) * | 2020-06-02 | 2020-10-02 | 通号城市轨道交通技术有限公司 | 电子地图数据差错检测方法及装置 |
CN111737385B (zh) * | 2020-06-02 | 2024-07-12 | 通号城市轨道交通技术有限公司 | 电子地图数据差错检测方法及装置 |
CN112379983A (zh) * | 2020-11-13 | 2021-02-19 | 天合光能股份有限公司 | 基于时间片的嵌入式实时系统负载均衡任务调度算法 |
CN113760494A (zh) * | 2020-11-23 | 2021-12-07 | 北京京东振世信息技术有限公司 | 任务调度方法和装置 |
CN113760494B (zh) * | 2020-11-23 | 2023-09-26 | 北京京东振世信息技术有限公司 | 任务调度方法和装置 |
CN112783624A (zh) * | 2021-01-18 | 2021-05-11 | 广汽零部件有限公司 | 用于汽车的非实时调度系统以及任务执行方法 |
CN113961333A (zh) * | 2021-12-22 | 2022-01-21 | 北京燧原智能科技有限公司 | 循环任务的生成、执行方法、装置、ai芯片及存储介质 |
CN113961333B (zh) * | 2021-12-22 | 2022-03-11 | 北京燧原智能科技有限公司 | 循环任务的生成、执行方法、装置、ai芯片及存储介质 |
CN114661449A (zh) * | 2022-05-19 | 2022-06-24 | 四川傲势科技有限公司 | 任务调度方法、嵌入式系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110196766B (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110196766A (zh) | 任务调度和处理方法及装置、存储介质和处理器 | |
CN103793272B (zh) | 一种周期性任务调度方法及系统 | |
Cho et al. | An optimal real-time scheduling algorithm for multiprocessors | |
Bril et al. | Worst-case response time analysis of real-time tasks under fixed-priority scheduling with deferred preemption | |
Mohammadi et al. | Scheduling algorithms for real-time systems | |
CN103544065B (zh) | 一种arinc653标准下的航电系统分区窗口调度方法 | |
CN109144699A (zh) | 分布式任务调度方法、装置及系统 | |
CN108268317A (zh) | 一种资源分配方法及装置 | |
CN103383651A (zh) | 半导体装置 | |
US20130036423A1 (en) | Systems and methods for bounding processing times on multiple processing units | |
CN103559093B (zh) | 一种服务器资源的配置方法及装置 | |
CN108701055A (zh) | 车辆控制装置和车辆系统 | |
US20130036421A1 (en) | Constrained rate monotonic analysis and scheduling | |
WO2010137262A1 (ja) | マルチプロセッサシステム、マルチプロセッサ制御方法、及びマルチプロセッサ集積回路 | |
CN111985748A (zh) | 订单批次处理方法、装置及计算机系统 | |
CN105808346B (zh) | 一种任务调度方法与装置 | |
US6434708B1 (en) | Programmable timer & methods for scheduling time slices executed by a controller circuit | |
CN108958975A (zh) | 一种控制数据恢复速度的方法、装置及设备 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN103412796A (zh) | 操作系统中任务的堆栈分配方法及装置 | |
WO2015188016A2 (en) | Energy-efficient real-time task scheduler | |
JP7447782B2 (ja) | 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム | |
Yan et al. | Formulation and a simulation-based algorithm for line-side buffer assignment problem in systems of general assembly line with material handling | |
Liu et al. | Leveraging dependency in scheduling and preemption for high throughput in data-parallel clusters | |
CN108268310B (zh) | 一种确定最小调度粒度的方法及装置 |
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 |