CN116430738A - 一种混合关键***的自适应动态调度方法 - Google Patents

一种混合关键***的自适应动态调度方法 Download PDF

Info

Publication number
CN116430738A
CN116430738A CN202310698745.9A CN202310698745A CN116430738A CN 116430738 A CN116430738 A CN 116430738A CN 202310698745 A CN202310698745 A CN 202310698745A CN 116430738 A CN116430738 A CN 116430738A
Authority
CN
China
Prior art keywords
scheduling
function
task
scheduled
functions
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
Application number
CN202310698745.9A
Other languages
English (en)
Other versions
CN116430738B (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202310698745.9A priority Critical patent/CN116430738B/zh
Publication of CN116430738A publication Critical patent/CN116430738A/zh
Application granted granted Critical
Publication of CN116430738B publication Critical patent/CN116430738B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种混合关键***的自适应动态调度方法,涉及任务调度技术领域,在获取待调度功能集后,根据混合关键***的***关键级和功能对应的优先级序列确定***就绪列表,从***就绪列表头部取出第一个计算任务进行调度,以确定***调度列表,基于功能的关键级、所处模式、***关键级、***就绪列表、***调度列表和优先级序列对待调度功能集中的各个功能的计算任务进行自适应动态调度,能够实现对计算资源的最优分配,既提高了***资源利用率,又保障了车辆安全性。

Description

一种混合关键***的自适应动态调度方法
技术领域
本发明涉及任务调度技术领域,特别是涉及一种异构分布式平台混合关键***的自适应动态调度方法。
背景技术
出于对空间、重量、功耗以及成本等方面的考虑,汽车电子电气架构从分布式电子电气架构向集中式电子电气架构转变成了当下趋势,使得原本单独部署在不同的处理单元上的功能将会运行在一个由有限个处理单元构成的统一平台上,且这些功能的关键级并不相同,这就衍生出了异构分布式平台混合关键***。关键级表示功能的安全关键程度,揭示了功能未能及时执行后果的严重性,关键级越高的功能未能及时执行造成的后果越严重,比如自动驾驶汽车控制***会同时运行高关键级的环境感知功能以及低关键级的通信功能,可以接受一定程度的网络丢包,但无法接受环境感知功能错过其截止时间,故需要对异构分布式平台混合关键***上的多个功能进行合理调度。
且随着自动驾驶技术与车机技术的发展,汽车电子***与外界驾驶环境以及驾驶员的交互越来越频繁,功能变的越来越复杂,规模与日俱增。同时这些功能有相当一部分是在特定场合才是需要的,比如自动驾驶相关的功能在有人驾驶模式下是不必要的,再如驾驶员与车机***的语音交互功能也是在驾驶员主动进行语音交互的时候才需要,如果这些在特定场景才需要的功能还是按照传统方式无条件的周期性执行,势必带来不必要的能源消耗以及硬件资源浪费,目前更趋向于根据实际的使用场景动态的释放和删除正在运行的功能,并根据功能的硬件需求以及***当前可用资源进行动态调度。但是传统的实时调度算法无法处理动态释放的不同关键级的功能调度问题,因此亟需建立高效的调度算法来实现对计算资源的最优分配。
发明内容
本发明的目的是提供一种混合关键***的自适应动态调度方法,能够实现对计算资源的最优分配,既提高了***资源利用率,又保障了车辆安全性。
为实现上述目的,本发明提供了如下方案:
一种混合关键***的自适应动态调度方法,所述自适应动态调度方法包括:
获取待调度功能集;所述待调度功能集包括多个待调度功能,多个所述待调度功能按照功能的关键级和功能在正常模式下的调度松弛时间进行排序;每一所述待调度功能包括若干个计算任务;
根据混合关键***的***关键级选取所述待调度功能集的若干个所述待调度功能作为参与当前轮次调度的调度功能,并在每一所述调度功能对应的优先级序列中取出若干个计算任务组成***就绪列表;
从所述***就绪列表头部取出第一个计算任务作为调度任务,对所述调度任务进行调度,得到所述调度任务的调度结果,并将所述调度结果添加到***调度列表中;所述调度结果包括执行所述调度任务的处理单元以及所述调度任务在所述处理单元上的开始时间和完成时间;
若所述调度任务所属功能处于正常模式,则判断所述调度任务是否错过所述调度任务在正常模式下的绝对截止时间下限,得到第一判断结果;若所述第一判断结果为是,则更新所述***调度列表和所述***就绪列表,更新所述调度任务所属功能处于降级模式,返回“从所述***就绪列表头部取出第一个计算任务作为调度任务”的步骤;若所述第一判断结果为否,则跳转至轮次更新步骤;
若所述调度任务所属功能处于降级模式,则判断所述调度任务是否错过所述调度任务在降级模式下的绝对截止时间下限,得到第二判断结果;若所述第二判断结果为是,则更新所述调度任务所属功能的功能超出预算标志位为所述调度任务所属功能的关键级,判断所述***关键级是否低于所述调度任务所属功能的关键级,得到第三判断结果;若所述第三判断结果为是,则更新所述***调度列表、所述***就绪列表和所述优先级序列,更新所述***关键级为所述调度任务所属功能的关键级,跳转至轮次更新步骤;若所述第三判断结果为否或者所述第二判断结果为否,则判断所述***就绪列表中属于所述调度任务所属功能的计算任务是否均已完成调度且所述调度任务所属功能的功能超出预算标志位是否不为1,得到第四判断结果;若所述第四判断结果为是,则更新所述调度任务所属功能的功能超出预算标志位为1,判断所述调度任务所属功能的关键级是否大于所有功能的功能超出预算标志位的最大值,得到第五判断结果;若所述第五判断结果为是,则更新所述***就绪列表和所述优先级序列,更新所述***关键级为所有功能的功能超出预算标志位的最大值,跳转至轮次更新步骤;若所述第五判断结果为否或者所述第四判断结果为否,则跳转至轮次更新步骤;
其中,所述轮次更新步骤为:判断所述***就绪列表中的计算任务是否均已完成调度,若是,则对所述待调度功能集进行重新排序,返回“根据混合关键***的***关键级选取所述待调度功能集的若干个所述待调度功能作为参与当前轮次调度的调度功能”的步骤;若否,则返回“从所述***就绪列表头部取出第一个计算任务作为调度任务”的步骤。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明用于提供一种混合关键***的自适应动态调度方法,在获取待调度功能集后,根据混合关键***的***关键级和功能对应的优先级序列确定***就绪列表,从***就绪列表头部取出第一个计算任务作为调度任务,对调度任务进行调度,以确定***调度列表,基于功能的关键级、所处模式、***关键级、***就绪列表、***调度列表和优先级序列对待调度功能集中的各个功能的计算任务进行自适应动态调度,保证高关键级功能的实时性需求,同时利用有限的计算资源尽可能的实现对低关键级功能的高效调度,提高混合关键***的性能,同时能够实现对计算资源的最优分配,既提高了***资源利用率,又保障了车辆安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1所提供的自适应动态调度方法的方法流程图;
图2为本发明实施例1所提供的异构处理平台的整体架构图;
图3为本发明实施例1所提供的自动驾驶控制功能的示意图;
图4为本发明实施例1所提供的通过DAG表示的自动驾驶控制功能的节点示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种混合关键***的自适应动态调度方法,能够实现对计算资源的最优分配,既提高了***资源利用率,又保障了车辆安全性。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:
本实施例用于提供一种混合关键***的自适应动态调度方法,所述自适应动态调度方法包括:
步骤1:获取待调度功能集;所述待调度功能集包括多个待调度功能,多个所述待调度功能按照功能的关键级和功能在正常模式下的调度松弛时间进行排序;每一所述待调度功能包括若干个计算任务;
步骤2:根据混合关键***的***关键级选取所述待调度功能集的若干个所述待调度功能作为参与当前轮次调度的调度功能,并在每一所述调度功能对应的优先级序列中取出若干个计算任务组成***就绪列表;
步骤3:从所述***就绪列表头部取出第一个计算任务作为调度任务,对所述调度任务进行调度,得到所述调度任务的调度结果,并将所述调度结果添加到***调度列表中;所述调度结果包括执行所述调度任务的处理单元以及所述调度任务在所述处理单元上的开始时间和完成时间;
步骤4:若所述调度任务所属功能处于正常模式,则判断所述调度任务是否错过所述调度任务在正常模式下的绝对截止时间下限,得到第一判断结果;若所述第一判断结果为是,则更新所述***调度列表和所述***就绪列表,更新所述调度任务所属功能处于降级模式,返回“从所述***就绪列表头部取出第一个计算任务作为调度任务”的步骤;若所述第一判断结果为否,则跳转至轮次更新步骤;
若所述调度任务所属功能处于降级模式,则判断所述调度任务是否错过所述调度任务在降级模式下的绝对截止时间下限,得到第二判断结果;若所述第二判断结果为是,则更新所述调度任务所属功能的功能超出预算标志位为所述调度任务所属功能的关键级,判断所述***关键级是否低于所述调度任务所属功能的关键级,得到第三判断结果;若所述第三判断结果为是,则更新所述***调度列表、所述***就绪列表和所述优先级序列,更新所述***关键级为所述调度任务所属功能的关键级,跳转至轮次更新步骤;若所述第三判断结果为否或者所述第二判断结果为否,则判断所述***就绪列表中属于所述调度任务所属功能的计算任务是否均已完成调度且所述调度任务所属功能的功能超出预算标志位是否不为1,得到第四判断结果;若所述第四判断结果为是,则更新所述调度任务所属功能的功能超出预算标志位为1,判断所述调度任务所属功能的关键级是否大于所有功能的功能超出预算标志位的最大值,得到第五判断结果;若所述第五判断结果为是,则更新所述***就绪列表和所述优先级序列,更新所述***关键级为所有功能的功能超出预算标志位的最大值,跳转至轮次更新步骤;若所述第五判断结果为否或者所述第四判断结果为否,则跳转至轮次更新步骤;
其中,所述轮次更新步骤为:判断所述***就绪列表中的计算任务是否均已完成调度,若是,则对所述待调度功能集进行重新排序,返回“根据混合关键***的***关键级选取所述待调度功能集的若干个所述待调度功能作为参与当前轮次调度的调度功能”的步骤;若否,则返回“从所述***就绪列表头部取出第一个计算任务作为调度任务”的步骤。
本实施例的混合关键***是指汽车异构分布式平台混合关键***,异构分布式平台混合关键***是指将多个异构的处理单元分布式布置在同一个异构处理平台上,多个处理单元之间相互通信连接,互相配合用于执行具有不同关键级的多个功能中每一功能所包括的多个计算任务。异构的处理单元是指各个处理单元的执行任务和执行时间不同。
如图1所示,本实施例所提供的一种异构分布式平台混合关键***的自适应动态调度方法包括:(一)混合关键***抽象建模;(二)混合关键***初始化;(三)混合关键***功能预处理;(四)确定***就绪列表;(五)任务调度;(六)截止时间检测;(七)***现场恢复;(八)更新***优先级;(九)中断服务程序。
在此,本实施例按照上述九个步骤对本实施例的自适应动态调度方法进行进一步的介绍:
(一)混合关键***抽象建模:
(1.1)对异构分布式平台混合关键***的异构处理平台进行抽象建模,得到处理单元集。
处理单元集为:
Figure SMS_1
其中,P为处理单元集,其包括多个通信连接的处理单元,处理单元具体通过异构 处理平台中的车载网络进行通信连接;Pk为第k个处理单元,k=1,2,...,
Figure SMS_2
Figure SMS_3
为异构处理 平台中通过车载网络通信连接(即互联)的处理单元的数量,特别指出,没有通过车载网络 与其他处理单元通信连接的独立的处理单元无法参与整个***级别的任务调度,故其不在 本实施例的考虑范围之内,即不属于本实施例所述的处理单元。
如图2所示,其为异构分布式平台混合关键***的异构处理平台的示意图,该异构处理平台采用集中式电子电气架构,图2中的Zonal ECU(区域控制器)1、Zonal ECU2、ZonalECU3、Zonal ECU4、HPC(高性能计算机)1、HPC2和HPC3即为图2所示的异构处理平台所包括的7个异构的处理单元,7个异构的处理单元通过车载网络相互通信,车载网络包括图2中的CANFD(也可为CAN)和ETH/TSH。特别指出,由于图2中通过车载网络与其他处理单元通信连接的Normal ECU(传统ECU)只能实现特定的功能,不参与整个***级别的任务调度,故其不在本实施例的考虑范围之内,即不属于本实施例所述的处理单元。
(1.2)对异构分布式平台混合关键***的异构处理平台需执行的功能进行抽象建模,即对运行在异构处理平台的功能进行抽象建模,得到功能集。
功能集为:
Figure SMS_4
其中,F为功能集,其包括具有不同关键级的多个功能;Fm为第m个功能,其代表一 项独立的功能,m=1,2,...,
Figure SMS_5
Figure SMS_6
为车辆***中运行在异构处理平台上的功能的数量。
(1.3)对单个功能进行抽象建模。
对于单个功能,如图3和图4所示,图3为自动驾驶控制这一单个功能的示意图,可见单个功能包括多个计算任务,某些计算任务之间存在数据传输过程(比如对摄像头的数据采集这一计算任务的结果需要传输至传感器融合这一计算任务),本实施例定义存在数据传输过程的两个计算任务之间存在数据依赖关系,且定义没有数据输入的计算任务为入口任务,没有数据输出的计算任务为出口任务,一个功能可能存在多个入口任务以及多个出口任务,具体的,若存在由计算任务A指向计算任务B的有向边,则代表计算任务A为计算任务B的前驱任务,计算任务B为计算任务A的后继任务,没有前驱任务的计算任务为入口任务,没有后继任务的计算任务为出口任务。将图3所示的单个功能抽象为DAG(有向无环图),即可得到图4,图4为将图3所示的单个功能的每个计算任务均抽象为一个节点(比如对摄像头的数据采集这一计算任务被抽象为节点n1),将计算任务之间的数据依赖关系抽象为有向边所得到的单个功能的节点示意图,其中节点代表计算任务,有向边代表计算任务之间的数据依赖关系。
第m个功能Fm可表示为:
Figure SMS_7
其中,
Figure SMS_10
为计算任务集,
Figure SMS_18
为第
Figure SMS_19
个计算任务,其包括功能Fm所 有的计算任务;WN为正常执行时间矩阵,其为一个
Figure SMS_8
矩阵,
Figure SMS_12
为处理单元的数量,
Figure SMS_14
为 功能Fm所包括的计算任务的数量,WN中的第i行第k列的元素Wi,k为正常模式下,功能Fm的计 算任务Ni在处理单元Pk上的执行时间,该执行时间可通过操作***的定时器或者劳特巴赫 调试器等调试工具获得,是一个已知值,特别指出,若某个处理单元不支持某个计算任务, 则将其对应的执行时间设为一个远大于正常执行时间的正数,比如+∞;WD为降级执行时间 矩阵,其为一个
Figure SMS_16
矩阵,WD中的第i行第k列的元素Wi,k为降级模式下,功能Fm的计算任 务Ni在处理单元Pk上的执行时间,该执行时间可通过操作***的定时器或者劳特巴赫调试 器等调试工具获得,是一个已知值,特别指出,若某个处理单元不支持某个计算任务,则将 其对应的执行时间设为一个远大于正常执行时间的正数,比如+∞;E为有向边矩阵,代表 DAG中有向边,其为一个
Figure SMS_9
矩阵,E中的第i行第
Figure SMS_13
列的元素
Figure SMS_15
在功能Fm的计算任务Ni 和功能Fm的计算任务
Figure SMS_17
之间存在数据依赖时取1,否则取0;Comm为数据传输时间矩阵,其 定义了当存在数据依赖的两个计算任务在不同处理单元上执行时通过车载总线传输数据 的时间,为一个
Figure SMS_11
矩阵,Comm中的第i行第j列的元素Commi,j为功能Fm的计算任务Ni和 功能Fm的计算任务Nj在不同处理单元上执行时通过车载总线传输数据的时间,是一个已知 值;Crit为功能Fm的关键级,本实施例可以自定义关键级的个数以及每个功能的关键级, Crit可在功能Fm的设计阶段根据ISO-26262标准确定,当在功能的设计阶段根据ISO-26262 标准定义每个功能的关键级时,则共存在4个关键级;R为功能Fm的释放时间;D为功能Fm的相 对截止时间,R和D根据功能的具体作用以及功能的实际应用场景在设计阶段确定。特别指 出,功能的绝对截止时间为释放时间与相对截止时间之和。
本实施例所提出的混合关键***抽象建模无需车辆详细的电子电气架构,对车载计算单元的具体形式与布置方案没有要求,功能抽象建模综合考虑了混合关键***的异构性、并行性以及功能的关键级。
(二)混合关键***初始化:
(2.1)***关键级SYS.Criticality初始化为1,本实施例的混合关键***可共有[1,2,3,4]四个关键级,在混合关键***的运行过程中动态调整***关键级。
(2.2)待调度功能集初始化,此时的待调度功能集包括***上电初始化时就释放的功能,其根据汽车的实际情况而定。
(2.3)功能超出预算标志F_OverRun初始化为1|F|×1,1|F|×1代表包括|F|个元素,且每一元素的取值均为1的列向量,每一元素代表一功能,在混合关键***的运行过程中,若某个功能在降级模式下错过其对应的绝对截止时间下限,则该功能对应的功能超出预算标志位将被置为该功能的关键级。
(2.4)功能模式标志F_Mode初始化为0|F|×1,0|F|×1代表包括|F|个元素,且每一元素的取值均为0的列向量,每一元素代表一功能,代表所有功能均默认在正常模式,当某个功能进入降级模式,则该功能对应的功能模式标志位将被置为1。
(三)混合关键***功能预处理:
(3.1)计算功能Fm的计算任务的等级(即rank值)。
Figure SMS_20
;(1)
式(1)中,
Figure SMS_21
为功能Fm的计算任务Ni的等级;/>
Figure SMS_22
为正常模式下,功能Fm的计算任务Ni在P中所有处理单元上的平均执行时间,其等于正常模式下,功能Fm的计算任务Ni在所有处理单元上的执行时间的平均值,特别指出,在求取平均执行时间时需排除不支持计算任务Ni的处理单元;/>
Figure SMS_23
为功能Fm的计算任务Ni的直接后继计算任务集,其包括功能Fm的计算任务Ni的所有后继任务;/>
Figure SMS_24
为功能Fm的计算任务Ni和功能Fm的计算任务Nj在不同处理单元上执行时通过车载总线传输数据的时间,此时功能Fm的计算任务Nj即为功能Fm的计算任务Ni的一个后继任务;/>
Figure SMS_25
为功能Fm的计算任务Nj的等级。特别指出,出口任务没有后继任务,出口任务的等级等于其在所有处理单元上的平均执行时间。
(3.2)计算功能Fm对应的优先级序列。
根据计算得到的等级对功能Fm的所有计算任务进行降序排列,并将排列好的所有计算任务存入功能Fm对应的优先级序列Fm.Task_PriorityList,即可得到功能Fm对应的优先级序列,从而根据每一功能的计算任务间的数据依赖以及并行性对功能的计算任务进行优先级排序。
(3.3)根据HEFT算法计算功能Fm从零时刻开始的调度序列。
按照功能Fm对应的优先级序列依次计算功能Fm的每一个计算任务在每一个处理单元上的最早开始时间和最早完成时间,将该计算任务分配给最早完成时间最小的处理单元,得到调度序列,调度序列包括执行功能Fm的每一个计算任务的处理单元以及该计算任务在该处理单元上的开始时间和完成时间,该计算任务在该处理单元上的开始时间和完成时间即取该计算任务在该处理单元上的最早开始时间和最早完成时间,也即该计算任务在该处理单元上的实际开始时间和实际完成时间。
功能Fm的计算任务Ni在处理单元Pk上的最早开始时间的计算公式为:
Figure SMS_26
; (2)
式(2)中,
Figure SMS_27
为功能Fm的计算任务Ni在处理单元Pk上的最早开始时间;/>
Figure SMS_28
为功能Fm的计算任务Ni在处理单元Pk上不考虑***思想时的最早开始时间;/>
Figure SMS_29
为功能Fm的计算任务Ni在处理单元Pk上考虑***思想时的最早开始时间。
Figure SMS_30
; (3)
式(3)中,
Figure SMS_31
为处理单元Pk的可用时间,即处理单元Pk完成其调度序列最后一个计算任务的时间,若Pk还未分配计算任务,其可用时间为0;/>
Figure SMS_32
为功能Fm的计算任务Ni的直接前驱计算任务集,其包括功能Fm的计算任务Ni的所有前驱任务;
Figure SMS_33
为功能Fm的计算任务Nj的实际完成时间,此时功能Fm的计算任务Nj即为功能Fm的计算任务Ni的一个前驱任务;/>
Figure SMS_34
为功能Fm的计算任务Nj和功能Fm的计算任务Ni之间的通信时间,特别指出,如果功能Fm的计算任务Ni与其前驱任务(即功能Fm的计算任务Nj)被分配到同一个处理单元,则两个计算任务之间通过片内共享内存通信,其通信时间可以忽略,否则,其通信时间为两个计算任务在不同处理单元上执行时通过车载总线传输数据的时间。入口任务没有前驱任务,其最早开始时间为处理单元Pk的可用时间。
Figure SMS_35
初始化为无穷,轮流计算处理单元Pk上的每个计算任务/>
Figure SMS_36
之前是否满足***的要求,此时每个计算任务/>
Figure SMS_37
均属于功能Fm
如果
Figure SMS_38
是第一个计算任务,则判断是否满足下式(4),
Figure SMS_39
; (4)
式(4)中,
Figure SMS_40
为计算任务/>
Figure SMS_41
的实际开始时间;/>
Figure SMS_42
为功能Fm的计算任务Ni在处理单元Pk上的执行时间,若功能Fm在正常模式下,该执行时间通过WN确定,若功能Fm在降级模式下,该执行时间通过WD确定。
若满足,则
Figure SMS_43
;(5)
如果
Figure SMS_44
不是第一个计算任务,记/>
Figure SMS_45
的前一个计算任务为/>
Figure SMS_46
,则判断是否满足下式(6),
Figure SMS_47
;(6)
式(6)中,
Figure SMS_48
为计算任务/>
Figure SMS_49
的实际完成时间。
若满足,则
Figure SMS_50
;(7)
功能Fm的计算任务Ni在处理单元Pk上的最早完成时间的计算公式为:
Figure SMS_51
; (8)
式(8)中,
Figure SMS_52
为功能Fm的计算任务Ni在处理单元Pk上的最早完成时间;/>
Figure SMS_53
为功能Fm的计算任务Ni在处理单元Pk上的执行时间,若功能Fm在正常模式下,即F_Mode(Fm)为0,该执行时间通过WN确定,若功能Fm在降级模式下,即F_Mode(Fm)为1,该执行时间通过WD确定。
(3.4)计算功能Fm的下边界(LowerBound)及其计算任务的下边界。
功能Fm的下边界被定义为功能Fm独占所有计算资源时最短的执行时间,若功能Fm从0时刻开始执行,则其最后一个计算任务的完成时间即为该功能Fm的下边界,即功能Fm的下边界可由功能Fm的出口任务的实际完成时间确定,其计算公式如下:
Figure SMS_54
; (9)
式(9)中,
Figure SMS_55
为功能Fm的下边界;/>
Figure SMS_56
为功能Fm的出口任务集,其包括功能Fm的所有出口任务;/>
Figure SMS_57
为功能Fm的计算任务Ni的实际完成时间,此时计算任务Ni为一出口任务,该实际完成时间等于计算任务Ni在所有处理单元上的最早完成时间的最小值。
功能Fm的每一计算任务的下边界由计算任务的实际完成时间决定,其计算公式如下:
Figure SMS_58
; (10)
式(10)中,
Figure SMS_59
为功能Fm的计算任务Ni的下边界。
(3.5)计算功能Fm的调度松弛时间。
Figure SMS_60
; (11)
式(11)中,
Figure SMS_61
为功能Fm的调度松弛时间;/>
Figure SMS_62
为功能Fm的相对截止时间;/>
Figure SMS_63
为功能Fm的下边界。
(3.6)计算功能Fm的绝对截止时间下限以及功能Fm的每个计算任务的绝对截止时间下限。
功能的绝对截止时间下限的计算方法包括:计算功能的释放时间和功能的相对截止时间的和,得到功能的绝对截止时间下限,其计算公式如下:
Figure SMS_64
; (12)
式(12)中,为功能Fm的绝对截止时间下限;/>
Figure SMS_66
为功能Fm的释放时间;/>
Figure SMS_67
为功能Fm的相对截止时间。
Figure SMS_68
; (13)
式(13)中,
Figure SMS_69
为功能Fm的计算任务Ni的绝对截止时间下限;/>
Figure SMS_70
为功能Fm的释放时间;/>
Figure SMS_71
为功能Fm的计算任务Ni的下边界;/>
Figure SMS_72
为功能Fm的调度松弛时间。
利用上述(3.3)-(3.6),本实施例即可确定功能Fm在正常模式下的调度松弛时间、功能Fm在正常模式下的绝对截止时间下限以及功能Fm的每一计算任务在正常模式下的绝对截止时间下限,还可确定功能Fm在降级模式下的调度松弛时间、功能Fm在降级模式下的绝对截止时间下限以及功能Fm的每一计算任务在降级模式下的绝对截止时间下限。具体的,以在正常模式下,功能Fm的计算任务Ni在处理单元Pk上的执行时间为输入,利用式(2)-式(7)计算在正常模式下,功能Fm的计算任务Ni在处理单元Pk上的最早开始时间,利用式(8)计算在正常模式下,功能Fm的计算任务Ni在处理单元Pk上的最早完成时间;选取在正常模式下,功能Fm的计算任务Ni在所有处理单元上的最早完成时间的最小值作为在正常模式下,功能Fm的计算任务Ni的实际完成时间,利用式(9)计算功能Fm在正常模式下的下边界,利用式(10)计算功能Fm的计算任务Ni在正常模式下的下边界;利用式(11)计算功能Fm在正常模式下的调度松弛时间;利用式(12)计算功能Fm在正常模式下的绝对截止时间下限,利用式(13)计算功能Fm的计算任务Ni在正常模式下的绝对截止时间下限。同理,以在降级模式下,功能Fm的计算任务Ni在处理单元Pk上的执行时间为输入,利用式(2)-式(7)计算在降级模式下,功能Fm的计算任务Ni在处理单元Pk上的最早开始时间,利用式(8)计算在降级模式下,功能Fm的计算任务Ni在处理单元Pk上的最早完成时间;选取在降级模式下,功能Fm的计算任务Ni在所有处理单元上的最早完成时间的最小值作为在降级模式下,功能Fm的计算任务Ni的实际完成时间,利用式(9)计算功能Fm在降级模式下的下边界,利用式(10)计算功能Fm的计算任务Ni在降级模式下的下边界;利用式(11)计算功能Fm在降级模式下的调度松弛时间;利用式(12)计算功能Fm在降级模式下的绝对截止时间下限,利用式(13)计算功能Fm的计算任务Ni在降级模式下的绝对截止时间下限。
基于上述(二)和(三),本实施例即可完成步骤1,具体的,获取待调度功能集可以包括:将初始释放的功能作为待调度功能,初始释放的功能是指混合关键***上电初始化时便释放的功能;按照功能的关键级对待调度功能进行降序排列,并按照功能在正常模式下的调度松弛时间对关键级相同的待调度功能进行升序排列,得到待调度功能集。其中,待调度功能在正常模式下的调度松弛时间可以利用(3.3)-(3.5)计算得到,即调度松弛时间的计算方法包括:计算功能的每一出口任务的实际完成时间,选取实际完成时间的最大值作为功能的下边界,根据功能的下边界计算功能的调度松弛时间,其中,实际完成时间为出口任务在每一处理单元上的最早完成时间的最小值。需要说明的是,本实施例可以重复(三)完成对待调度功能集中所有待调度功能的预处理。
本实施例所提出的(三)中基于HEFT算法获取功能的调度松弛时间及其计算任务的绝对截止时间下限,配合(六)中的截止时间检测机制,能显著降低功能的截止时间错失几率。
(四)确定***就绪列表SYS_ReadyList:
本实施例基于混合关键***当前的***关键级、功能的固有参数及其执行情况自适应的确定***就绪列表,先按照待调度功能集中待调度功能的顺序依次确定每个待调度功能进入当前轮次调度的计算任务的数量。
(4.1)如果功能Fm的关键级低于混合关键***的***关键级,则功能Fm以及待调度功能集中后续的功能不进行当前轮次的调度,跳转到(五)开始执行;否则继续执行。
(4.2)计算功能Fm当前轮次允许调度的计算任务的最大数量。
Figure SMS_73
; (14)
式(14)中,
Figure SMS_74
为功能Fm当前轮次允许调度的计算任务的最大数量;/>
Figure SMS_75
为功能Fm的关键级;/>
Figure SMS_76
为***关键级;/>
Figure SMS_77
为功能Fm的溢出历史标志,代表在时间检测过程中是否发生过错过截止时间,可以根据功能对应的模式来判断,若功能Fm处于降级模式则代表曾发生过溢出,此时/>
Figure SMS_78
取1,否则/>
Figure SMS_79
取0。
(4.3)从功能Fm的优先级序列Fm.Task_PriorityList头部开始依次取出
Figure SMS_80
个计算任务,并将其******就绪列表SYS_ReadyList的尾部。
需要说明的是,本实施例所指的取出是将其从原先的地方拿出,原先的地方不再包括该内容,比如从功能Fm的优先级序列Fm.Task_PriorityList头部开始依次取出
Figure SMS_81
个计算任务,则功能Fm的优先级序列Fm.Task_PriorityList不再包括这/>
Figure SMS_82
个计算任务。
(4.4)如果完成对待调度功能集中所有功能的处理,则继续执行,即执行(五);否则跳转到(4.1)开始执行。
基于(四),本实施例可完成步骤2。具体的,根据混合关键***的***关键级选取待调度功能集的若干个待调度功能作为参与当前轮次调度的调度功能,并在每一调度功能对应的优先级序列中取出若干个计算任务组成***就绪列表可以包括:对于待调度功能集的每一待调度功能,判断待调度功能的关键级是否低于混合关键***的***关键级,若否,则选取该待调度功能作为参与当前轮次调度的调度功能;对于每一调度功能,根据***关键级和调度功能的关键级确定该调度功能中参与当前轮次调度的计算任务的数量,并从调度功能对应的优先级序列中取出前N个计算任务,其中,N为调度功能中参与当前轮次调度的计算任务的数量;按照调度功能在待调度功能集中的顺序对调度功能进行排序,并按照计算任务在调度功能对应的优先级序列中的顺序对每一调度功能所取出的计算任务进行排序,得到***就绪列表。其中,优先级序列的确定方法包括:计算功能的每一个计算任务的等级,按照等级对功能的所有计算任务进行降序排列,得到功能对应的优先级序列,具体可按照(3.1)-(3.2)确定该优先级序列。
本实施例的(四)提出的每一轮次***就绪列表的确定方式,积极主动的考虑了功能的关键级、***关键级以及功能的执行情况,差异化的为不同功能提供计算资源,保障了不同功能的实时性需求。
(五)任务调度:
(5.1)从***就绪列表的头部取出一个计算任务,假设取出的计算任务为Fm.Ni
(5.2)计算Fm.Ni在每个处理单元上的最早开始时间。
利用式(2)-式(7)计算该最早开始时间,特别指出,此时功能Fm的计算任务Nj的实际完成时间由先前的调度过程在(5.4)中得到,处理单元Pk上的每个计算任务
Figure SMS_83
并非均属于一个功能,而是由先前的调度过程在(5.4)中确定。
(5.3)计算Fm.Ni在每个处理单元上的最早完成时间。
利用式(8)计算该最早完成时间。
(5.4)将Fm.Ni分配给最早完成时间的最小值所对应的处理单元,以Fm.Ni在其所分配的处理单元上的最早开始时间作为Fm.Ni在其所分配的处理单元上的开始时间,以Fm.Ni在其所分配的处理单元上的最早完成时间作为Fm.Ni在其所分配的处理单元上的完成时间,得到Fm.Ni的调度结果,并将该Fm.Ni的调度结果***到***调度列表SYS_ScheduleList对应的位置,其中,Fm.Ni在其所分配的处理单元上的开始时间即为Fm.Ni的实际开始时间,Fm.Ni在其所分配的处理单元上的完成时间即为Fm.Ni的实际完成时间。
基于(五),本实施例即可完成步骤3,具体的,对调度任务进行调度,得到调度任务的调度结果可以包括:计算调度任务在每一处理单元上的最早开始时间和最早完成时间,将调度任务分配至最早完成时间最小的处理单元,以调度任务在其所分配的处理单元上的最早开始时间作为调度任务在处理单元上的开始时间,以调度任务在其所分配的处理单元上的最早完成时间作为调度任务在处理单元上的完成时间,得到调度任务的调度结果。
(六)截止时间检测:
(6.1)如果Fm处于正常模式(此时F_Mode(Fm)=0),继续执行;否则,即Fm处于降级模式(此时F_Mode(Fm)=1),跳转到(6.6)开始执行。
(6.2)如果Fm.Ni错过Fm.Ni在正常模式下的绝对截止时间下限(即Fm.Ni的实际完成时间大于Fm.Ni在正常模式下的绝对截止时间下限),则继续执行;否则跳转到(八)开始执行。
(6.3)取消***调度列表SYS_ScheduleList中当前轮次调度的属于功能Fm的计算任务,将其暂存于Cancel_task_set。
(6.4)将全部取消的计算任务Cancel_task_set按原先的顺序放回***就绪列表SYS_ReadyList。
(6.5)将F_Mode(Fm)设为1,跳转到(五)开始执行。
(6.6)如果Fm.Ni错过Fm.Ni在降级模式下的绝对截止时间下限(即Fm.Ni的实际完成时间大于Fm.Ni在降级模式下的绝对截止时间下限),则继续执行;否则跳转到(七)开始执行。
(6.7)将功能Fm的功能超出预算标志位F_OverRun(Fm)设为功能Fm的关键级Fm.Crit。
(6.8)如果***关键级SYS.Criticality小于功能Fm的关键级Fm.Crit,继续执行;否则跳转到(七)开始执行。
(6.9)取消***调度列表SYS_ScheduleList中当前轮次调度和上一轮次调度的尚未执行的计算任务,将其暂存于Cancel_task_set。
(6.10)取消***就绪列表SYS_ReadyList中未调度的计算任务,将其暂存于Cancel_task_set。
(6.11)将全部取消的计算任务Cancel_task_set按原先的顺序放回其原来对应的优先级序列
Figure SMS_84
,此时,每一被取消的计算任务对应放入其所属功能的优先级序列中。
(6.12)将***关键级SYS.Criticality设为功能Fm的关键级Fm.Crit,跳转到(八)开始执行。
本实施例的(六)提出的功能降级模式通过较少的计算资源提供可接受的计算结果,可以显著降低该功能错过截止时间的几率。相较于计算精读,安全性更加重要,在实际应用中安全性也是第一位的。
(七)***现场恢复:
(7.1)如果功能Fm完成调度且功能Fm的功能超出预算标志位F_OverRun(Fm)不为1,则继续执行;否则跳转到(八)开始执行。
(7.2)将功能Fm的功能超出预算标志位F_OverRun(Fm)重新置为1。
(7.3)如果功能Fm的关键级Fm.Crit大于功能超出预算标志的最大值max(F_OverRun),则继续执行;否则跳转到(八)开始执行。
(7.4)取消***就绪列表SYS_ReadyList中未调度的计算任务,将其暂存于Cancel_task_set。
(7.5)将全部取消的计算任务Cancel_task_set按原先的顺序放回其原来对应的优先级序列
Figure SMS_85
(7.6)将***关键级SYS.Criticality设为功能超出预算标志的最大值max(F_OverRun),跳转到(八)开始执行。
本实施例的(六)提出的***关键级升级机制与(七)中***现场恢复机制充分考虑了***关键级、触发升级降级切换功能的关键级以及整个***功能的执行情况,自适应的调整***关键级,尽可能的保障高关键级功能的实时性需求,同时又避免大规模的重复调度工作,降低了算法的时间复杂性。
(八)更新***优先级:
(8.1)如果***就绪列表SYS_ReadyList中所有计算任务均已完成调度,继续执行;否则跳转到(五)开始执行。
(8.2)轮流计算待调度功能集中每个功能的实际调度松弛时间,假定待调度功能集中功能Fm中当前最后一个完成调度的计算任务为Ni,则Fm.Ni在正常模式下的实际调度松弛时间的计算公式如下式(15),Fm.Ni在降级模式下的实际调度松弛时间的计算公式如下式(16):
Figure SMS_86
;(15)
式(15)中,
Figure SMS_87
为功能Fm的实际调度松弛时间;
Figure SMS_88
为功能Fm的计算任务Ni在正常模式下的绝对截止时间下限;/>
Figure SMS_89
为功能Fm的计算任务Ni的实际完成时间。
Figure SMS_90
;(16)
式(16)中,
Figure SMS_91
为功能Fm的实际调度松弛时间;
Figure SMS_92
为功能Fm的计算任务Ni在降级模式下的绝对截止时间下限;/>
Figure SMS_93
为功能Fm的计算任务Ni的实际完成时间。
特别指出,
Figure SMS_94
是在(五)的调度过程中得到的,区别于(三)中对功能预处理产生的/>
Figure SMS_95
(8.3)对待调度功能集中的功能根据功能的关键级降序排列,关键级相同的功能根据其实际调度松弛时间升序排列,得到新的待调度功能集,跳转到(四)开始执行。
基于(六)-(八),本实施例即可完成步骤4。具体的,步骤4中,调度任务在正常模式下的绝对截止时间下限的计算方法包括:计算调度任务所属功能的释放时间、调度任务在正常模式下的下边界和调度任务所属功能在正常模式下的调度松弛时间的和,得到调度任务在正常模式下的绝对截止时间下限。调度任务在降级模式下的绝对截止时间下限的计算方法包括:计算调度任务所属功能的释放时间、调度任务在降级模式下的下边界和调度任务所属功能在降级模式下的调度松弛时间的和,得到调度任务在降级模式下的绝对截止时间下限。更新***调度列表和***就绪列表可以包括:取出***调度列表中当前轮次调度的属于调度任务所属功能的计算任务,得到新的***调度列表;将取出的所有计算任务添加到***就绪列表中,得到新的***就绪列表。更新***调度列表、***就绪列表和优先级序列可以包括:取出***调度列表中当前轮次调度和上一轮次调度的未执行的计算任务,得到新的***调度列表;取出***就绪列表中未调度的计算任务,得到新的***就绪列表;将取出的所有计算任务添加到优先级序列中,得到新的优先级序列。更新***就绪列表和优先级序列可以包括:取出***就绪列表中未调度的计算任务,得到新的***就绪列表;将取出的所有计算任务添加到优先级序列中,得到新的优先级序列。对待调度功能集进行重新排序可以包括:计算待调度功能集的每一待调度功能的实际调度松弛时间;按照功能的关键级对待调度功能进行降序排列,并按照实际调度松弛时间对关键级相同的待调度功能进行升序排列;其中,实际调度松弛时间的计算方法为:若待调度功能在当前时刻处于正常模式,则计算检测任务在正常模式下的绝对截止时间下限与检测任务的实际完成时间的差值,得到待调度功能的实际调度松弛时间;若待调度功能在当前时刻处于降级模式,则计算检测任务在降级模式下的绝对截止时间下限与检测任务的实际完成时间的差值,得到待调度功能的实际调度松弛时间;检测任务为待调度功能在当前时刻对应的最后一个完成调度的计算任务。
本实施例的(八)提出的完成每个轮次调度后对不同功能优先级顺序进行更新,能显著降低高关键级功能以及***整体截止时间错失率,同时也提高***时间效率。
本实施例的混合关键***在运行过程中,根据驾驶员的实际操作可能会产生新释放的功能,此时需要将新释放的功能添加到待调度功能集,再次进行调度,故本实施例的自适应动态调度方法还包括:
(九)中断服务程序,用于处理新释放的功能FNew:
(9.1)取消***就绪列表SYS_ReadyList中关键级低于FNew的计算任务,将其暂存于Cancel_task_set。
(9.2)取消***就绪列表SYS_ReadyList中关键级与FNew相同且其所属功能未错过其绝对截止时间下限的计算任务,将其暂存于Cancel_task_set。
(9.3)取消***调度列表SYS_ScheduleList中未执行的关键级低于FNew的计算任务,将其暂存于Cancel_task_set。
(9.4)取消***调度列表SYS_ScheduleList中未执行的关键级与FNew相同且其所属功能未错过其绝对截止时间下限的计算任务,将其暂存于Cancel_task_set。
(9.5)将全部取消的计算任务Cancel_task_set按原先的顺序放回其原来对应的优先级序列
Figure SMS_96
(9.6)因取消部分功能放回优先级序列,功能的实际调度松弛时间发生改变,故更新所有功能的调度松弛时间。
利用式(15)和式(16)计算功能的实际调度松弛时间。
(9.7)将FNew加入待调度功能集,按照(三)完成对功能FNew的预处理。
(9.8)对待调度功能集中的功能根据功能的关键级降序排列,关键级相同的功能根据实际调度松弛时间升序排列。特别指出,新功能的实际调度松弛时间即为新功能在正常模式下的调度松弛时间。
(9.9)返回主程序,跳转至(四)继续执行。
基于(九),若存在新释放的功能,则本实施例的自适应动态调度方法还包括:取出***就绪列表中关键级低于新释放的功能的关键级的调度功能的计算任务以及关键级与新释放的功能的关键级相同且未错过功能的绝对截止时间下限的调度功能的计算任务,得到新的***就绪列表;取出***调度列表中关键级低于新释放的功能的关键级的调度功能的未执行的计算任务以及关键级与新释放的功能的关键级相同且未错过功能的绝对截止时间下限的调度功能的未执行的计算任务,得到新的***调度列表;将取出的所有计算任务添加到优先级序列中,得到新的优先级序列;计算待调度功能集的每一待调度功能的实际调度松弛时间,以新释放的功能在正常模式下的调度松弛时间作为新释放的功能的实际调度松弛时间,将新释放的功能添加到待调度功能集,按照功能的关键级对待调度功能集中的多个待调度功能进行降序排列,并按照实际调度松弛时间对关键级相同的待调度功能进行升序排列,得到新的待调度功能集,返回“根据混合关键***的***关键级选取待调度功能集的若干个待调度功能作为参与当前轮次调度的调度功能”的步骤。
本实施例(九)提出的中断服务程序,随***运行动态更新待调度功能集,能自适应的处理已调度的未执行的计算任务与随机动态释放的功能,兼顾调度策略的性能与时间效率。
本实施例所提供的一种混合关键***的自适应动态调度方法,在调度过程中积极主动地考虑功能的关键级,融合功能的降级模式,采用***中断服务处理随机动态释放的功能,结合高效的取消再调度机制,保证各个关键级功能的有序执行,提高车辆总体安全性以及计算资源的利用效率。针对混合关键***,本实施例的自适应动态调度方法的优点是能够实现对车辆整个控制***计算资源的最优分配,既提高了***资源利用率,又保障了车辆安全性。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种混合关键***的自适应动态调度方法,其特征在于,所述自适应动态调度方法包括:
获取待调度功能集;所述待调度功能集包括多个待调度功能,多个所述待调度功能按照功能的关键级和功能在正常模式下的调度松弛时间进行排序;每一所述待调度功能包括若干个计算任务;
根据混合关键***的***关键级选取所述待调度功能集的若干个所述待调度功能作为参与当前轮次调度的调度功能,并在每一所述调度功能对应的优先级序列中取出若干个计算任务组成***就绪列表;
从所述***就绪列表头部取出第一个计算任务作为调度任务,对所述调度任务进行调度,得到所述调度任务的调度结果,并将所述调度结果添加到***调度列表中;所述调度结果包括执行所述调度任务的处理单元以及所述调度任务在所述处理单元上的开始时间和完成时间;
若所述调度任务所属功能处于正常模式,则判断所述调度任务是否错过所述调度任务在正常模式下的绝对截止时间下限,得到第一判断结果;若所述第一判断结果为是,则更新所述***调度列表和所述***就绪列表,更新所述调度任务所属功能处于降级模式,返回“从所述***就绪列表头部取出第一个计算任务作为调度任务”的步骤;若所述第一判断结果为否,则跳转至轮次更新步骤;
若所述调度任务所属功能处于降级模式,则判断所述调度任务是否错过所述调度任务在降级模式下的绝对截止时间下限,得到第二判断结果;若所述第二判断结果为是,则更新所述调度任务所属功能的功能超出预算标志位为所述调度任务所属功能的关键级,判断所述***关键级是否低于所述调度任务所属功能的关键级,得到第三判断结果;若所述第三判断结果为是,则更新所述***调度列表、所述***就绪列表和所述优先级序列,更新所述***关键级为所述调度任务所属功能的关键级,跳转至轮次更新步骤;若所述第三判断结果为否或者所述第二判断结果为否,则判断所述***就绪列表中属于所述调度任务所属功能的计算任务是否均已完成调度且所述调度任务所属功能的功能超出预算标志位是否不为1,得到第四判断结果;若所述第四判断结果为是,则更新所述调度任务所属功能的功能超出预算标志位为1,判断所述调度任务所属功能的关键级是否大于所有功能的功能超出预算标志位的最大值,得到第五判断结果;若所述第五判断结果为是,则更新所述***就绪列表和所述优先级序列,更新所述***关键级为所有功能的功能超出预算标志位的最大值,跳转至轮次更新步骤;若所述第五判断结果为否或者所述第四判断结果为否,则跳转至轮次更新步骤;
其中,所述轮次更新步骤为:判断所述***就绪列表中的计算任务是否均已完成调度,若是,则对所述待调度功能集进行重新排序,返回“根据混合关键***的***关键级选取所述待调度功能集的若干个所述待调度功能作为参与当前轮次调度的调度功能”的步骤;若否,则返回“从所述***就绪列表头部取出第一个计算任务作为调度任务”的步骤。
2.根据权利要求1所述的自适应动态调度方法,其特征在于,所述获取待调度功能集具体包括:
将初始释放的功能作为待调度功能;
按照功能的关键级对所述待调度功能进行降序排列,并按照功能在正常模式下的调度松弛时间对关键级相同的所述待调度功能进行升序排列,得到待调度功能集。
3.根据权利要求1或2所述的自适应动态调度方法,其特征在于,所述调度松弛时间的计算方法包括:计算功能的每一出口任务的实际完成时间,选取所述实际完成时间的最大值作为所述功能的下边界;根据所述功能的下边界计算所述功能的调度松弛时间。
4.根据权利要求1所述的自适应动态调度方法,其特征在于,所述根据混合关键***的***关键级选取所述待调度功能集的若干个所述待调度功能作为参与当前轮次调度的调度功能,并在每一所述调度功能对应的优先级序列中取出若干个计算任务组成***就绪列表具体包括:
对于所述待调度功能集的每一所述待调度功能,判断所述待调度功能的关键级是否低于混合关键***的***关键级;若否,则选取所述待调度功能作为参与当前轮次调度的调度功能;
对于每一所述调度功能,根据所述***关键级和所述调度功能的关键级确定所述调度功能中参与当前轮次调度的计算任务的数量,并从所述调度功能对应的优先级序列中取出前N个计算任务;其中,N为所述调度功能中参与当前轮次调度的计算任务的数量;
按照所述调度功能在所述待调度功能集中的顺序对所述调度功能进行排序,并按照所述计算任务在所述调度功能对应的优先级序列中的顺序对每一所述调度功能所取出的计算任务进行排序,得到***就绪列表。
5.根据权利要求1或4所述的自适应动态调度方法,其特征在于,所述优先级序列的确定方法包括:计算功能的每一个计算任务的等级;按照所述等级对所述功能的所有所述计算任务进行降序排列,得到所述功能对应的优先级序列。
6.根据权利要求1所述的自适应动态调度方法,其特征在于,所述对所述调度任务进行调度,得到所述调度任务的调度结果具体包括:计算所述调度任务在每一处理单元上的最早开始时间和最早完成时间,将所述调度任务分配至所述最早完成时间最小的处理单元,以所述调度任务在所述处理单元上的最早开始时间作为所述调度任务在所述处理单元上的开始时间,以所述调度任务在所述处理单元上的最早完成时间作为所述调度任务在所述处理单元上的完成时间,得到所述调度任务的调度结果。
7.根据权利要求1所述的自适应动态调度方法,其特征在于,
所述更新所述***调度列表和所述***就绪列表具体包括:取出所述***调度列表中当前轮次调度的属于所述调度任务所属功能的计算任务,得到新的***调度列表;将取出的所有计算任务添加到所述***就绪列表中,得到新的***就绪列表;
所述更新所述***调度列表、所述***就绪列表和所述优先级序列具体包括:取出所述***调度列表中当前轮次调度和上一轮次调度的未执行的计算任务,得到新的***调度列表;取出所述***就绪列表中未调度的计算任务,得到新的***就绪列表;将取出的所有计算任务添加到所述优先级序列中,得到新的优先级序列;
所述更新所述***就绪列表和所述优先级序列具体包括:取出所述***就绪列表中未调度的计算任务,得到新的***就绪列表;将取出的所有计算任务添加到所述优先级序列中,得到新的优先级序列。
8.根据权利要求1所述的自适应动态调度方法,其特征在于,所述对所述待调度功能集进行重新排序具体包括:
计算所述待调度功能集的每一所述待调度功能的实际调度松弛时间;按照功能的关键级对所述待调度功能进行降序排列,并按照所述实际调度松弛时间对关键级相同的所述待调度功能进行升序排列;
其中,所述实际调度松弛时间的计算方法为:
若所述待调度功能在当前时刻处于正常模式,则计算检测任务在正常模式下的绝对截止时间下限与所述检测任务的实际完成时间的差值,得到所述待调度功能的实际调度松弛时间;若所述待调度功能在当前时刻处于降级模式,则计算检测任务在降级模式下的绝对截止时间下限与所述检测任务的实际完成时间的差值,得到所述待调度功能的实际调度松弛时间;所述检测任务为待调度功能在当前时刻对应的最后一个完成调度的计算任务。
9.根据权利要求2所述的自适应动态调度方法,其特征在于,若存在新释放的功能,则取出所述***就绪列表中关键级低于所述新释放的功能的关键级的调度功能的计算任务以及关键级与所述新释放的功能的关键级相同且未错过功能的绝对截止时间下限的调度功能的计算任务,得到新的***就绪列表;取出所述***调度列表中关键级低于所述新释放的功能的关键级的调度功能的未执行的计算任务以及关键级与所述新释放的功能的关键级相同且未错过功能的绝对截止时间下限的调度功能的未执行的计算任务,得到新的***调度列表;将取出的所有计算任务添加到所述优先级序列中,得到新的优先级序列;计算所述待调度功能集的每一所述待调度功能的实际调度松弛时间,以所述新释放的功能在正常模式下的调度松弛时间作为所述新释放的功能的实际调度松弛时间,将所述新释放的功能添加到所述待调度功能集,按照功能的关键级对所述待调度功能集中的多个待调度功能进行降序排列,并按照所述实际调度松弛时间对关键级相同的待调度功能进行升序排列,得到新的待调度功能集,返回“根据混合关键***的***关键级选取所述待调度功能集的若干个所述待调度功能作为参与当前轮次调度的调度功能”的步骤。
10.根据权利要求9所述的自适应动态调度方法,其特征在于,所述功能的绝对截止时间下限的计算方法包括:计算功能的释放时间和功能的相对截止时间的和,得到所述功能的绝对截止时间下限;
所述调度任务在正常模式下的绝对截止时间下限的计算方法包括:计算所述调度任务所属功能的释放时间、所述调度任务在正常模式下的下边界和所述调度任务所属功能在正常模式下的调度松弛时间的和,得到所述调度任务在正常模式下的绝对截止时间下限;
所述调度任务在降级模式下的绝对截止时间下限的计算方法包括:计算所述调度任务所属功能的释放时间、所述调度任务在降级模式下的下边界和所述调度任务所属功能在降级模式下的调度松弛时间的和,得到所述调度任务在降级模式下的绝对截止时间下限。
CN202310698745.9A 2023-06-14 2023-06-14 一种混合关键***的自适应动态调度方法 Active CN116430738B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310698745.9A CN116430738B (zh) 2023-06-14 2023-06-14 一种混合关键***的自适应动态调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310698745.9A CN116430738B (zh) 2023-06-14 2023-06-14 一种混合关键***的自适应动态调度方法

Publications (2)

Publication Number Publication Date
CN116430738A true CN116430738A (zh) 2023-07-14
CN116430738B CN116430738B (zh) 2023-08-15

Family

ID=87083705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310698745.9A Active CN116430738B (zh) 2023-06-14 2023-06-14 一种混合关键***的自适应动态调度方法

Country Status (1)

Country Link
CN (1) CN116430738B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116755865A (zh) * 2023-08-15 2023-09-15 北京理工大学 一种基于汽车嵌入式平台的混合关键***部署方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508708A (zh) * 2011-11-30 2012-06-20 湖南大学 基于改进遗传算法的异构多核节能任务调度方法
CN105700941A (zh) * 2015-12-18 2016-06-22 西安工业大学 三维调度器模型及其调度算法
CN109799805A (zh) * 2019-01-17 2019-05-24 湖南大学 一种可靠性感知的高性能汽车电子调度算法
CN110008013A (zh) * 2019-03-28 2019-07-12 东南大学 一种最小化作业完工时间的Spark任务分配方法
CN111736959A (zh) * 2020-07-16 2020-10-02 南京南软科技有限公司 异构集群下考虑数据亲和性的Spark任务调度方法
CN113485801A (zh) * 2021-06-25 2021-10-08 中国科学技术大学苏州高等研究院 基于神经网络相似度建模的实时dnn调度***及方法
US20230071370A1 (en) * 2021-07-27 2023-03-09 Tata Consultancy Services Limited Systems and methods for dynamic task scheduling and rescheduling using heterogeneous multi-agent fleet
CN116244073A (zh) * 2023-02-06 2023-06-09 中山大学 混合关键分区实时操作***的资源感知型任务分配方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508708A (zh) * 2011-11-30 2012-06-20 湖南大学 基于改进遗传算法的异构多核节能任务调度方法
CN105700941A (zh) * 2015-12-18 2016-06-22 西安工业大学 三维调度器模型及其调度算法
CN109799805A (zh) * 2019-01-17 2019-05-24 湖南大学 一种可靠性感知的高性能汽车电子调度算法
CN110008013A (zh) * 2019-03-28 2019-07-12 东南大学 一种最小化作业完工时间的Spark任务分配方法
CN111736959A (zh) * 2020-07-16 2020-10-02 南京南软科技有限公司 异构集群下考虑数据亲和性的Spark任务调度方法
CN113485801A (zh) * 2021-06-25 2021-10-08 中国科学技术大学苏州高等研究院 基于神经网络相似度建模的实时dnn调度***及方法
US20230071370A1 (en) * 2021-07-27 2023-03-09 Tata Consultancy Services Limited Systems and methods for dynamic task scheduling and rescheduling using heterogeneous multi-agent fleet
CN116244073A (zh) * 2023-02-06 2023-06-09 中山大学 混合关键分区实时操作***的资源感知型任务分配方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
FEIXIANG JIAO ET AL.: "A Three-Stage Multitimescale Framework for Online Dispatch in a Microgrid With EVs and Renewable Energy", IEEE TRANSACTIONS ON TRANSPORTATION ELECTRIFICATION, vol. 8, no. 1, pages 442 - 453 *
TIANYU WANG ET AL.: "Automotive Mixed Criticality DAG Function Scheduling Optimization Based on Edge Computing", 2023 6TH WORLD CONFERENCE ON COMPUTING AND COMMUNICATION TECHNOLOGIES, pages 176 - 180 *
夏平 等: "面向分布式实时***的安全驱动调度算法研究", 计算机工程与应用, no. 05, pages 8 - 12 *
张彬 等: "混动履带式无人平台轨迹跟踪控制研究", 汽车工程, vol. 45, no. 4, pages 579 - 587 *
杨涛: "基于虚拟化策略的多核混合关键性***调度技术研究", 中国博士学位论文全文数据库(信息科技辑), no. 4, pages 35 - 85 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116755865A (zh) * 2023-08-15 2023-09-15 北京理工大学 一种基于汽车嵌入式平台的混合关键***部署方法及装置
CN116755865B (zh) * 2023-08-15 2023-11-10 北京理工大学 一种基于汽车嵌入式平台的混合关键***部署方法及装置

Also Published As

Publication number Publication date
CN116430738B (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
CN116430738B (zh) 一种混合关键***的自适应动态调度方法
Zheng et al. Definition of task allocation and priority assignment in hard real-time distributed systems
US8595746B2 (en) Method and apparatus for scheduling tasks to control hardware devices
US20100262971A1 (en) Multi core system, vehicular electronic control unit, and task switching method
US10572748B2 (en) Autonomous vehicle adaptive parallel image processing system
Werner et al. Scheduling with multiple servers
JP2007034359A (ja) 分散制御装置
CN113835866B (zh) 多线程任务调度优化方法
CN111367644A (zh) 一种面向异构融合***的任务调度方法及装置
JP2011028559A (ja) 中継プログラムおよび電子制御装置
CN109799805B (zh) 一种可靠性感知的高性能汽车电子调度算法
CN111209094A (zh) 请求处理方法、装置、电子设备及计算机可读存储介质
Xie et al. A high-performance dag task scheduling algorithm for heterogeneous networked embedded systems
CN111061565B (zh) 一种Spark环境下的两段式流水线任务调度方法及***
CN115220787A (zh) 驾驶控制指令生成方法、异构计算方法、相关装置及***
JP4985662B2 (ja) プログラム、及び制御装置
CN115421735A (zh) 一种深度学习任务的异构部署方法、装置及电子设备
KR20100060312A (ko) 자동차용 임베디드 운영체제의 태스크 스케줄링 방법
CN109871270B (zh) 调度方案生成方法及装置
CN115033357A (zh) 基于动态资源选择策略的微服务工作流调度方法及装置
CN111985634B (zh) 神经网络的运算方法、装置、计算机设备及存储介质
CN111352713A (zh) 边缘环境面向时延优化的自动驾驶推理任务工作流调度方法
US20200310426A1 (en) Real-time control system for a vehicle and a method of executing control of the vehicle via the real-time control system
CN113051064B (zh) 任务调度方法、装置、设备及存储介质
US9128757B2 (en) Method and lightweight mechanism for mixed-critical 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