CN117806807A - 任务调度方法、装置、电子设备和计算机可读存储介质 - Google Patents

任务调度方法、装置、电子设备和计算机可读存储介质 Download PDF

Info

Publication number
CN117806807A
CN117806807A CN202410225744.7A CN202410225744A CN117806807A CN 117806807 A CN117806807 A CN 117806807A CN 202410225744 A CN202410225744 A CN 202410225744A CN 117806807 A CN117806807 A CN 117806807A
Authority
CN
China
Prior art keywords
task
combination
duty ratio
combinations
tasks
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
CN202410225744.7A
Other languages
English (en)
Other versions
CN117806807B (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.)
Shuangyili Ningbo Battery Co ltd
Original Assignee
Shuangyili Ningbo Battery Co ltd
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 Shuangyili Ningbo Battery Co ltd filed Critical Shuangyili Ningbo Battery Co ltd
Priority to CN202410225744.7A priority Critical patent/CN117806807B/zh
Publication of CN117806807A publication Critical patent/CN117806807A/zh
Application granted granted Critical
Publication of CN117806807B publication Critical patent/CN117806807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

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

Abstract

本发明实施例提出一种任务调度方法、装置、电子设备和计算机可读存储介质,涉及嵌入式软件领域。该方法包括在嵌入式软件运行过程中,根据各任务组合在对应时间片下的实际运行时间计算各任务组合的运行占空比,以及根据各任务组合中的各任务在对应时间片下的实际运行时间计算各任务组合中的各任务的运行占空比;根据各任务组合的运行占空比和各任务组合中的各任务的运行占空比,在各任务组合之间进行任务调整。通过实时计算各任务组合的运行占空比和各任务组合中的各任务的运行占空比,并在各任务组合之间对任务进行自适应动态调整,提升了任务调度效率,保证了各任务组合的功耗均衡。

Description

任务调度方法、装置、电子设备和计算机可读存储介质
技术领域
本发明涉及嵌入式软件领域,具体而言,涉及一种任务调度方法、装置、电子设备和计算机可读存储介质。
背景技术
目前,嵌入式软件的任务调度多为固定周期任务调度,通常是以最小周期为基准建立固定任务表格,表格建立完成后按照信号优先级或时效要求分配相应任务至对应的具体固定任务接口中,然后采用白盒测试的方式注入条件至任务,使任务运行在稳定的最大运行时间,最后通过观察周期调度引擎的超时标志以确认任务分配是否合理;若超时,则视本次任务分配不合理,处理办法为手动调整任务运行周期,或任务分段分次执行,循环往复,以调整至帕累托状态。
上述这种手动分配任务的方式,设计及维护的工作量过于复杂,后续调整及增删任务也会造成时间片分配不均,需要重复进行白盒测试,导致繁重的重复设计及维护,任务调度效率低。
发明内容
有鉴于此,本发明的目的在于提供一种任务调度方法、装置、电子设备和计算机可读存储介质,其能够实现任务组合中的任务的自适应动态调整,从而提升任务调度效率。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明提供一种任务调度方法,所述方法包括:
在嵌入式软件运行过程中,获取所述嵌入式软件对应的各任务组合在对应时间片下的实际运行时间以及各所述任务组合中的各任务在对应时间片下的实际运行时间;
根据各所述任务组合在对应时间片下的实际运行时间计算各所述任务组合的运行占空比,以及根据各所述任务组合中的各任务在对应时间片下的实际运行时间计算各所述任务组合中的各任务的运行占空比;
根据各所述任务组合的运行占空比和各所述任务组合中的各任务的运行占空比,在各所述任务组合之间进行任务调整。
在可选的实施方式中,所述根据各所述任务组合的运行占空比和各所述任务组合中的各任务的运行占空比,在各所述任务组合之间进行任务调整,包括:
计算当前任务组合以外的其他任务组合的运行占空比与所述当前任务组合中的可调换任务的运行占空比之间的和值;
在所述当前任务组合的运行占空比与所述和值之间的差值大于第一预设值的情况下,将所述当前任务组合中的可调换任务调整至所述其他任务组合。
在可选的实施方式中,所述方法还包括:
在任一所述任务组合中的任务达到优先级触发条件的情况下,计算所述任务组合中的所述任务的动态优先级;
根据所述任务组合中的所述任务的动态优先级对所述任务的执行顺序进行调整。
在可选的实施方式中,所述计算所述任务组合中的所述任务的动态优先级,包括:
获取所述任务组合中的所述任务对应的预设优先级;
根据所述任务组合中的所述任务对应的实时数据计算优先级系数;
根据所述任务组合中的所述任务对应的预设优先级和优先级系数计算对应的动态优先级。
在可选的实施方式中,所述方法还包括:
在嵌入式软件启动的情况下,获取所述嵌入式软件对应的任务列表;所述任务列表中包括所述嵌入式软件对应的多个任务以及每个所述任务对应的运行周期和预设优先级;其中,每个所述任务的运行周期为所述嵌入式软件的时间基准的倍数;
根据所述任务列表中各所述任务的运行周期,将所述嵌入式软件对应的多个任务分配到多个任务组合;其中,不同所述任务组合对应不同的时间片,各所述任务组合对应的时间片共同构成任务调度周期,每个所述时间片的长度为所述时间基准;
根据分配到每个所述任务组合中的各任务的预设优先级,确定每个所述任务组合中的各任务的执行顺序。
在可选的实施方式中,所述方法还包括:
在对各所述任务组合中的任务进行调整后,若仍存在运行占空比大于第二预设值的任务组合,则标记所述运行占空比大于第二预设值的任务组合超时,并输出各所述任务组合的最大运行占空比以及各任务的最大运行时间,以便对所述嵌入式软件对应的任务列表进行调整。
第二方面,本发明提供一种任务调度装置,所述装置包括:
运行时间获取模块,用于在嵌入式软件运行过程中,获取所述嵌入式软件对应的各任务组合在对应时间片下的实际运行时间以及各所述任务组合中的各任务在对应时间片下的实际运行时间;
运行占空比计算模块,用于根据各所述任务组合在对应时间片下的实际运行时间计算各所述任务组合的运行占空比,以及根据各所述任务组合中的各任务在对应时间片下的实际运行时间计算各所述任务组合中的各任务的运行占空比;
任务调整模块,用于根据各所述任务组合的运行占空比和各所述任务组合中的各任务的运行占空比,在各所述任务组合之间进行任务调整。
在可选的实施方式中,所述任务调整模块用于计算当前任务组合以外的其他任务组合的运行占空比与所述当前任务组合中的可调换任务的运行占空比之间的和值;在所述当前任务组合的运行占空比与所述和值之间的差值大于第一预设值的情况下,将所述当前任务组合中的可调换任务调整至所述其他任务组合。
第三方面,本发明提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前述实施方式中任一项所述的任务调度方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的任务调度方法的步骤。
本发明实施例提供的任务调度方法、装置、电子设备和计算机可读存储介质,该方法包括在嵌入式软件运行过程中,获取嵌入式软件对应的各任务组合在对应时间片下的实际运行时间以及各任务组合中的各任务在对应时间片下的实际运行时间;根据各任务组合在对应时间片下的实际运行时间计算各任务组合的运行占空比,以及根据各任务组合中的各任务在对应时间片下的实际运行时间计算各任务组合中的各任务的运行占空比;根据各任务组合的运行占空比和各任务组合中的各任务的运行占空比,在各任务组合之间进行任务调整。通过实时计算各任务组合的运行占空比和各任务组合中的各任务的运行占空比,并在各任务组合之间对任务进行自适应动态调整,提升了任务调度效率,保证了各任务组合的功耗均衡。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的任务调度方法的一种流程示意图;
图2示出了本发明实施例提供的任务调度方法的另一种流程示意图;
图3示出了任务列表的一种示意图;
图4示出了各任务接口中的任务分配情况示意图;
图5示出了初始自适应分配的多个任务组合的示意图;
图6示出了本发明实施例提供的任务调度方法的又一种流程示意图;
图7示出了本发明实施例提供的任务调度方法的再一种流程示意图;
图8示出了本发明实施例提供的任务调度装置的一种功能模块图;
图9示出了本发明实施例提供的任务调度装置的另一种功能模块图;
图10示出了本发明实施例提供的电子设备的一种方框示意图。
图标:100-电子设备;110-存储器;120-处理器;130-通信模块;600-任务调度装置;610-运行时间获取模块;620-运行占空比计算模块;630-任务调整模块;640-执行顺序调整模块;650-初始任务分配模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
目前,嵌入式软件的任务调度多为固定周期任务调度。例如,控制系统技术具代表性的汽车行业,相关嵌入式软件任务调度多为固定周期调度,用来满足多控制器信号(如转速、功率限制、SOC、扭矩等)同步,从而精确地计算续航里程、剩余电量等;信号时效性依然是嵌入式软件的基本要求。
固定周期任务调度多以最小周期为基准建立固定任务表格,表格建立完成后按照信号优先级或时效要求分配相应任务至对应的具体固定任务接口中,然后采用白盒测试的方式注入条件至任务,使任务运行在稳定的最大运行时间,最后通过观察周期调度引擎的超时标志以确认任务分配是否合理;若超时,则视本次任务分配不合理,处理办法为手动调整任务运行周期,或任务分段分次执行,循环往复,以调整至帕累托状态。
上述这种手动分配任务的方式,设计及维护的工作量过于复杂,设计及维护的工作量过于复杂,且并无量化数据;虽然高性能的处理器或者架构可以不关心运行占空比,但周期调度引擎的可移植性也很差;后续调整及增删任务也会造成时间片分配不均,需要重复进行白盒测试,导致繁重的重复设计及维护。另外,同一时间片下任务优先级未区分,也会导致因某一不稳定任务造成某些信号的更新周期不稳定,难以真正符合设计要求。
基于此,本发明实施例提供的任务调度方法、装置、电子设备和计算机可读存储介质中,调度引擎以任务为中心进行调度,实时计算各任务组合的运行占空比和各任务组合中的各任务的运行占空比,然后在各任务组合之间对任务进行自适应动态调整,提升了任务调度效率,保证了各任务组合的功耗均衡。另外,通过对同一时间片下的任务进行优先级分配,可以有效确保对运行时间误差要求较高的任务优先执行,对运行时间不稳定的任务靠后执行,从而避免前者误差过大。
下面,将结合附图对本发明的各实施例进行详细说明。
请参照图1,为本发明实施例提供的任务调度方法的一种流程示意图。需要说明的是,本发明的任务调度方法并不以图1以及以下的具体顺序为限制。应当理解,在其它实施例中,本发明的任务调度方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该任务调度方法可应用于汽车、笔记本电脑、平板电脑、PC(Personal Computer,个人计算机)、服务器等电子设备。下面将对图1所示的具体流程进行详细阐述。
步骤S101,在嵌入式软件运行过程中,获取嵌入式软件对应的各任务组合在对应时间片下的实际运行时间以及各任务组合中的各任务在对应时间片下的实际运行时间。
在本实施例中,可以在电子设备中设置调度引擎,该调度引擎在嵌入式软件启动的情况下,会对嵌入式软件对应的多个任务进行初始的自适应分配,得到多个任务组合。在初始分配完成后,嵌入式软件开始正常运行,在嵌入式软件运行过程中,调度引擎会实时计算每个任务的运行间隔、实际运行时间等任务特性,以及任务组合的实际运行时间。
其中,每个任务在对应时间片下的实际运行时间T1=任务结束时间t2-任务启动时间t1;每个任务组合在对应时间片下的实际运行时间T2=任务组合中最后一个任务的结束时间t4-任务组合中第一个任务的启动时间t3。
步骤S102,根据各任务组合在对应时间片下的实际运行时间计算各任务组合的运行占空比,以及根据各任务组合中的各任务在对应时间片下的实际运行时间计算各任务组合中的各任务的运行占空比。
在本实施例中,运行占空比可以理解为处理器占空比,运行占空比=时间片下实际运行时间/时间片下最大运行时间,其中,时间片下最大运行时间为嵌入式软件的时间基准。例如,时间片下最大运行时间为T,各任务在对应时间片下的实际运行时间为T1,各任务组合在对应时间片下的实际运行时间为T2,则各任务组合中的各任务的运行占空比D1=T1/T,各任务组合的运行占空比D2=T2/T。
步骤S103,根据各任务组合的运行占空比和各任务组合中的各任务的运行占空比,在各任务组合之间进行任务调整。
在本实施例中,调度引擎在计算出各任务组合的运行占空比和各任务组合中的各任务的运行占空比后,可以基于任务组合的运行占空比以及任务的运行占空比判断是否符合任务调整条件,当符合任务调整条件时,在各任务组合之间进行任务调整,从而实现任务的自适应动态调整。
可见,本发明实施例提供的任务调度方法,通过在嵌入式软件运行过程中,获取嵌入式软件对应的各任务组合在对应时间片下的实际运行时间以及各任务组合中的各任务在对应时间片下的实际运行时间;根据各任务组合在对应时间片下的实际运行时间计算各任务组合的运行占空比,以及根据各任务组合中的各任务在对应时间片下的实际运行时间计算各任务组合中的各任务的运行占空比;根据各任务组合的运行占空比和各任务组合中的各任务的运行占空比,在各任务组合之间进行任务调整。通过实时计算各任务组合的运行占空比和各任务组合中的各任务的运行占空比,并在各任务组合之间对任务进行自适应动态调整,提升了任务调度效率,保证了各任务组合的功耗均衡。
在一种实施方式中,电子设备中会预先存储嵌入式软件对应的任务列表,调度引擎在嵌入式软件启动时,会根据该任务列表进行初始的任务分配。请参照图2,本发明实施例提供的任务调度方法还可以包括:
步骤S201,在嵌入式软件启动的情况下,获取嵌入式软件对应的任务列表;任务列表中包括嵌入式软件对应的多个任务以及每个任务对应的运行周期和预设优先级;其中,每个任务的运行周期为嵌入式软件的时间基准的倍数。
在一个示例中,假定嵌入式软件的时间基准为tick,软件需求的最短运行周期为1Xtick,其它周期有2Xtick、5Xtick、10Xtick;嵌入式软件对应的多个任务按照实时性和设计要求预分配运行周期和优先级,则可得到图3所示的任务列表。在图3所示的任务列表中,周期代表此任务的运行周期,1X即1倍时间基准运行周期,2X即2倍时间基准运行周期,以此类推;优先级决定了同一任务组合中的各任务执行顺序,优先级值越低,代表优先级越高。优先级值的范围可以根据实际需要进行设置,如设置最高优先级为1,最低优先级为10。
步骤S202,根据任务列表中各任务的运行周期,将嵌入式软件对应的多个任务分配到多个任务组合;其中,不同任务组合对应不同的时间片,各任务组合对应的时间片共同构成任务调度周期,每个时间片的长度为时间基准。
在本实施例中,在嵌入式软件启动的情况下,调度引擎根据代码中预先定义的任务列表,提取周期分布。例如,图3所示的任务列表对应的周期分布为1X、2X、5X、10X,根据周期分布中相对于时间基准的倍数(即1、2、5、10)的最小公倍数,调度引擎会生成10个任务组合,每个任务组合中均有一个1X任务(每个1X任务接口相同),每两个相邻任务组合中均有一个2X任务(每个2X任务接口不同),每五个相邻任务组合中均有一个5X任务(每个5X任务接口不同),每十个相邻任务组合中均有一个10X任务(每个10X任务接口不同)。
可以理解,任务调度周期包含多个时间片,每个时间片的长度(最大可运行时间)相同,唯一不同的是对应的任务组合不同,任务组合不同导致的最小运行时间也可能不同。调度引擎会在每个时间基准中调用对应的任务组合。
调度引擎初始化完任务组合后,开始根据任务的运行周期分配任务至任务组合中的任务接口中,所有1X任务分配至1倍时间基准任务接口中,所有2X任务平均分配至2倍时间基准任务1接口和2倍时间基准任务2接口中,5X任务和10X任务同理。初次分配完毕后,各任务接口中的任务分配情况如图4所示。
步骤S203,根据分配到每个任务组合中的各任务的预设优先级,确定每个任务组合中的各任务的执行顺序。
在本实施例中,调度引擎在初始化完任务组合后,会根据优先级调整任务组合中的任务执行顺序,优先级值越低,在任务组合中的排序越靠前,对于任务组合中优先级相同且运行周期不同的任务,则小周期任务优先,从而可得到如图5所示的初始自适应分配的多个任务组合(即Group1~ Group10)。
在一种实施方式中,可以基于某个任务组合的运行占空比以及该任务组合中的可调换任务的运行占空比与其他任意任务组合的运行占空比,来判断是否对该任务组合中的可调换任务进行调整。即上述步骤S103具体可以包括:计算当前任务组合以外的其他任务组合的运行占空比与当前任务组合中的可调换任务的运行占空比之间的和值;在当前任务组合的运行占空比与和值之间的差值大于第一预设值的情况下,将当前任务组合中的可调换任务调整至其他任务组合。其中,其他任务组合指的是多个任务组合中除当前任务组合以外的其他任一个任务组合。该和值可理解为将当前任务组合以外的其他任一个任务组合的运行占空比与当前任务组合中的可调换任务的运行占空比相加所得到的和。
在本实施例中,由于任务组合中的所有1X任务需要在每个时间基准中执行,故任务组合中的所有1X任务都不是可调换任务;任务组合中除1X任务之外的其他任务是否为可调换任务,需要结合当前任务组合与其他任务组合来判断。以图5所示的10个任务组合为例,任务1、任务2和任务3都为1X任务,均不是可调换任务;任务4和任务5为2X任务,Group1中的任务4相对于Group2来说是可调换任务,即可以从Group1调换到Group2;Group2中的任务5相对于Group1来说是可调换任务,即可以从Group2调换到Group1;同理,任务6为5X任务,Group1中的任务6相对于Group2~ Group4来说都是可调换任务,即可以从Group1调换到Group2~ Group4中的其中一个任务组合。
在一个示例中,该第一预设值可以设置为0,则当前任务组合的运行占空比与和值之间的差值大于第一预设值时,表明当前任务组合的运行占空比大于当前任务组合以外的其他任务组合的运行占空比与当前任务组合中的可调换任务的运行占空比之和,此时可以调整当前任务组合中的可调换任务到该其他任务组合中,以使每个任务组合的运行占空比小于等于其他任意任务组合的运行占空比与该任务组合中可调换任务的运行占空比之和,从而达到功耗最优。
在另一个示例中,该第一预设值设置为最大容差ɛ(不为0的常数),假设当前任务组合(Group1)的运行占空比为D21,其他任务组合(Group3)的运行占空比为D23,Group1中任务6的运行占空比为D16,当D21>D23+D16+ɛ时,可将Group1中的任务6调整到Group3;当D21≤D23+D16+ɛ时,可以保持任务组合不变。通过设定最大容差来对任务组合进行动态调整可以减少频繁调整任务组合导致的摩擦成本,使系统更加稳定。
例如,假设任务组合的运行占空比在80%左右为较优的状态,则通过本实施例中的自适应动态调整,可将各任务组合的运行占空比都调整到较优的状态,从而达到功耗最优。
在实际应用中,考虑到当对任务组合进行自适应调整后,运行占空比仍可能不符合要求(比如超过100%),导致任务组合周期出现偏差。基于此,请参照图6,本发明实施例提供的任务调度方法还可以包括:
步骤S601,在对各任务组合中的任务进行调整后,若仍存在运行占空比大于第二预设值的任务组合,则标记运行占空比大于第二预设值的任务组合超时,并输出各任务组合的最大运行占空比以及各任务的最大运行时间,以便对嵌入式软件对应的任务列表进行调整。
在本实施例中,可以设置第二预设值为100%、99%等数值,本实施例对此不做限定。
以第二预设值为100%为例,调度引擎在嵌入式软件运行过程中,会实时更新各任务的最大运行时间和任务组合的最大运行占空比,当自适应调整后任务组合的运行占空比仍大于100%,调度引擎可以标记该任务组合超时并记录任务组合编号,并通过状态信息提示存在任务组合超时,汇总输出各任务组合的最大运行占空比以及各任务的最大运行时间,以便根据汇总的信息分拆任务后重新填充任务列表,不必像现有的白盒方式手动注入条件循环重复地进行调整工作,仅依靠自动化输出的状态信息适时调整任务分配,保证任务时效可靠。
在实际应用中,为了实现环境的自适应,调度引擎还会动态调整任务优先级,根据调整后的动态优先级进行任务组合内的任务执行顺序的调整。基于此,请参照图7,本发明实施例提供的任务调度方法还可以包括:
步骤S701,在任一任务组合中的任务达到优先级触发条件的情况下,计算任务组合中的任务的动态优先级。
步骤S702,根据任务组合中的任务的动态优先级对任务的执行顺序进行调整。
在本实施例中,基于嵌入式软件的运行特性,在某些事件触发后,比如充放电时,需要动态调整某些任务的优先级如电流采集任务,以保证电流采集的准确性,从而为SOX(State Of X,是电池的状态描述,包括电池的荷电量、能量、功率状态、健康状态)算法策略的估算保证计算精度。也即是说,调度引擎在某个任务对应的优先级触发条件触发后,会计算该任务的动态优先级,然后根据该任务的动态优先级调整执行顺序。
在本实施例中,可以根据任务对应的实时数据来判断任务是否达到优先级触发条件。例如,对于电流采集任务,可以设置当采集的实时电流发生变化时,判断该电流采集任务达到优先级触发条件;对于温度采集任务,可以设置当采集的实时温度超过保护温度时,判断该温度采集任务达到优先级触发条件;对于单体电压采集任务,可以设置当采集的单体电压超过保护电压时,判断该单体电压采集任务达到优先级触发条件。
在一种实现方式中,调度引擎可以获取任务组合中的任务对应的预设优先级;根据任务组合中的任务对应的实时数据计算优先级系数;根据任务组合中的任务对应的预设优先级和优先级系数计算对应的动态优先级。
在本实施例中,预设优先级可以根据任务更新数据的实时性要求和更新数据量的占比进行计算,根据实践法可得实时性和数据量的优先级权重分别为0.8和0.2,则预设优先级的估算公式为:P=(Rn/R)*0.8+(Sn/S)*0.2,其中,Rn为相对实时性等级,R为实时性等级总数,等级越高,实时性要求越高;Sn为任务更新数据量,S为总任务更新的数据量;如下表A为储能领域电池管理系统的数据实时性要求、数据量及预设优先级估算实例:
表A
序号 任务类型 实时性/重要程度(Rn) 数据量(Sn) 预设优先级
1 单体电压 3 104 4
2 温度 1 52 2
3 总电流 2 1 2
4 总电压 2 1 2
5 绝缘电阻 1 2 1
6 SOC(荷电状态) 1 1 1
需要说明的是,表A中计算得到的预设优先级是一个相对量化指标(例如*10),以单体电压为例,Rn=3,R=3+1+2+2+1+1=10,Sn=104,S=104+52+1+1+2+1=160,P=(Rn/R)*0.8+(Sn/S)*0.2≈0.4,则量化得到的预设优先级为4。
在本实施例中,不同任务对应的实时数据不同。以电流采集任务为例,其对应的实时数据为实时电流,则可以根据实时电流Ic与电流总量程If的比值计算优先级系数(Ic/If);同理,对于温度采集任务和单体电压采集任务,则可以根据采集的实时温度和实时电压分别确定当前达到的保护等级(Al),并根据当前达到的保护等级(Al)与设置的最高保护等级(A )的比值计算优先级系数(Al/A)。
在一个示例中,在计算出优先级系数后,可以根据公式Pd=Ps*2*优先级系数计算出动态优先级,Pd表示动态优先级,Ps表示预设优先级,动态优先级最高为预设优先级的2倍。
对于电流采集任务,当采集的实时电流发生变化时,表明达到该电流采集任务对应的优先级触发条件,根据公式Pd=Ps*2(Ic/If)估算动态优先级,并进行电流采集任务的执行顺序的调整;当电流增大时,可使电流采集任务提前执行,从而保证数据估算精度;当电流减小或电池系统静置时电流采集任务的优先级就会降低,同样会触发任务执行顺序的调整,使其它任务如温度采集、单体电压采集任务等提前。如下表B为储能领域典型任务动态优先级的估算策略:
表B
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种任务调度装置的实现方式。请参照图8,为本发明实施例提供的任务调度装置600的一种功能模块图。需要说明的是,本实施例所提供的任务调度装置600,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该任务调度装置600包括:运行时间获取模块610、运行占空比计算模块620和任务调整模块630。
运行时间获取模块610,用于在嵌入式软件运行过程中,获取嵌入式软件对应的各任务组合在对应时间片下的实际运行时间以及各任务组合中的各任务在对应时间片下的实际运行时间。
可以理解,该运行时间获取模块610可以执行上述步骤S101。
运行占空比计算模块620,用于根据各任务组合在对应时间片下的实际运行时间计算各任务组合的运行占空比,以及根据各任务组合中的各任务在对应时间片下的实际运行时间计算各任务组合中的各任务的运行占空比。
可以理解,该运行占空比计算模块620可以执行上述步骤S102。
任务调整模块630,用于根据各任务组合的运行占空比和各任务组合中的各任务的运行占空比,在各任务组合之间进行任务调整。
可以理解,该任务调整模块630可以执行上述步骤S103。
可选地,任务调整模块630用于计算当前任务组合以外的其他任务组合的运行占空比与当前任务组合中的可调换任务的运行占空比之间的和值;在当前任务组合的运行占空比与和值之间的差值大于第一预设值的情况下,将当前任务组合中的可调换任务调整至其他任务组合。
可选地,该任务调整模块630还可以用于在对各任务组合中的任务进行调整后,若仍存在运行占空比大于第二预设值的任务组合,则标记运行占空比大于第二预设值的任务组合超时,并输出各任务组合的最大运行占空比以及各任务的最大运行时间,以便对嵌入式软件对应的任务列表进行调整。
可以理解,该任务调整模块630还可以执行上述步骤S601。
可选地,请参照图9,该任务调度装置600还可以包括执行顺序调整模块640和初始任务分配模块650。
该执行顺序调整模块640用于在任一任务组合中的任务达到优先级触发条件的情况下,计算任务组合中的任务的动态优先级;根据任务组合中的任务的动态优先级对任务的执行顺序进行调整。
其中,该执行顺序调整模块640具体用于获取任务组合中的任务对应的预设优先级;根据任务组合中的任务对应的实时数据计算优先级系数;根据任务组合中的任务对应的预设优先级和优先级系数计算对应的动态优先级。
可以理解,该执行顺序调整模块640可以执行上述步骤S701~S702。
可选地,该初始任务分配模块650用于在嵌入式软件启动的情况下,获取嵌入式软件对应的任务列表;任务列表中包括嵌入式软件对应的多个任务以及每个任务对应的运行周期和预设优先级;其中,每个任务的运行周期为嵌入式软件的时间基准的倍数;根据任务列表中各任务的运行周期,将嵌入式软件对应的多个任务分配到多个任务组合;其中,不同任务组合对应不同的时间片,各任务组合对应的时间片共同构成任务调度周期,每个时间片的长度为时间基准;根据分配到每个任务组合中的各任务的预设优先级,确定每个任务组合中的各任务的执行顺序。
可以理解,该初始任务分配模块650可以执行上述步骤S201~S203。
可见,本发明实施例提供的任务调度装置,包括运行时间获取模块、运行占空比计算模块和任务调整模块,运行时间获取模块,用于在嵌入式软件运行过程中,获取嵌入式软件对应的各任务组合在对应时间片下的实际运行时间以及各任务组合中的各任务在对应时间片下的实际运行时间;运行占空比计算模块,用于根据各任务组合在对应时间片下的实际运行时间计算各任务组合的运行占空比,以及根据各任务组合中的各任务在对应时间片下的实际运行时间计算各任务组合中的各任务的运行占空比;任务调整模块,用于根据各任务组合的运行占空比和各任务组合中的各任务的运行占空比,在各任务组合之间进行任务调整。通过实时计算各任务组合的运行占空比和各任务组合中的各任务的运行占空比,并在各任务组合之间对任务进行自适应动态调整,提升了任务调度效率,保证了各任务组合的功耗均衡。
请参照图10,为本发明实施例提供的电子设备100的一种方框示意图。该电子设备100包括存储器110、处理器120及通信模块130。存储器110、处理器120以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器110用于存储程序或者数据。存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器120用于读/写存储器110中存储的数据或程序,并执行相应的功能。例如,当存储器110中存储的计算机程序被处理器120执行时,可以实现上述各实施例所揭示的任务调度方法。
通信模块130用于通过网络建立电子设备100与其它设备之间的通信连接,并用于通过网络收发数据。
应当理解的是,图10所示的结构仅为电子设备100的结构示意图,电子设备100还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。图10中所示的各组件可以采用硬件、软件或其组合实现。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器120执行时实现上述各实施例所揭示的任务调度方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种任务调度方法,其特征在于,所述方法包括:
在嵌入式软件运行过程中,获取所述嵌入式软件对应的各任务组合在对应时间片下的实际运行时间以及各所述任务组合中的各任务在对应时间片下的实际运行时间;
根据各所述任务组合在对应时间片下的实际运行时间计算各所述任务组合的运行占空比,以及根据各所述任务组合中的各任务在对应时间片下的实际运行时间计算各所述任务组合中的各任务的运行占空比;
根据各所述任务组合的运行占空比和各所述任务组合中的各任务的运行占空比,在各所述任务组合之间进行任务调整。
2.根据权利要求1所述的任务调度方法,其特征在于,所述根据各所述任务组合的运行占空比和各所述任务组合中的各任务的运行占空比,在各所述任务组合之间进行任务调整,包括:
计算当前任务组合以外的其他任务组合的运行占空比与所述当前任务组合中的可调换任务的运行占空比之间的和值;
在所述当前任务组合的运行占空比与所述和值之间的差值大于第一预设值的情况下,将所述当前任务组合中的可调换任务调整至所述其他任务组合。
3.根据权利要求1所述的任务调度方法,其特征在于,所述方法还包括:
在任一所述任务组合中的任务达到优先级触发条件的情况下,计算所述任务组合中的所述任务的动态优先级;
根据所述任务组合中的所述任务的动态优先级对所述任务的执行顺序进行调整。
4.根据权利要求3所述的任务调度方法,其特征在于,所述计算所述任务组合中的所述任务的动态优先级,包括:
获取所述任务组合中的所述任务对应的预设优先级;
根据所述任务组合中的所述任务对应的实时数据计算优先级系数;
根据所述任务组合中的所述任务对应的预设优先级和优先级系数计算对应的动态优先级。
5.根据权利要求1所述的任务调度方法,其特征在于,所述方法还包括:
在嵌入式软件启动的情况下,获取所述嵌入式软件对应的任务列表;所述任务列表中包括所述嵌入式软件对应的多个任务以及每个所述任务对应的运行周期和预设优先级;其中,每个所述任务的运行周期为所述嵌入式软件的时间基准的倍数;
根据所述任务列表中各所述任务的运行周期,将所述嵌入式软件对应的多个任务分配到多个任务组合;其中,不同所述任务组合对应不同的时间片,各所述任务组合对应的时间片共同构成任务调度周期,每个所述时间片的长度为所述时间基准;
根据分配到每个所述任务组合中的各任务的预设优先级,确定每个所述任务组合中的各任务的执行顺序。
6.根据权利要求1所述的任务调度方法,其特征在于,所述方法还包括:
在对各所述任务组合中的任务进行调整后,若仍存在运行占空比大于第二预设值的任务组合,则标记所述运行占空比大于第二预设值的任务组合超时,并输出各所述任务组合的最大运行占空比以及各任务的最大运行时间,以便对所述嵌入式软件对应的任务列表进行调整。
7.一种任务调度装置,其特征在于,所述装置包括:
运行时间获取模块,用于在嵌入式软件运行过程中,获取所述嵌入式软件对应的各任务组合在对应时间片下的实际运行时间以及各所述任务组合中的各任务在对应时间片下的实际运行时间;
运行占空比计算模块,用于根据各所述任务组合在对应时间片下的实际运行时间计算各所述任务组合的运行占空比,以及根据各所述任务组合中的各任务在对应时间片下的实际运行时间计算各所述任务组合中的各任务的运行占空比;
任务调整模块,用于根据各所述任务组合的运行占空比和各所述任务组合中的各任务的运行占空比,在各所述任务组合之间进行任务调整。
8.根据权利要求7所述的任务调度装置,其特征在于,所述任务调整模块用于计算当前任务组合以外的其他任务组合的运行占空比与所述当前任务组合中的可调换任务的运行占空比之间的和值;在所述当前任务组合的运行占空比与所述和值之间的差值大于第一预设值的情况下,将所述当前任务组合中的可调换任务调整至所述其他任务组合。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-6中任一项所述的任务调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的任务调度方法的步骤。
CN202410225744.7A 2024-02-29 2024-02-29 任务调度方法、装置、电子设备和计算机可读存储介质 Active CN117806807B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410225744.7A CN117806807B (zh) 2024-02-29 2024-02-29 任务调度方法、装置、电子设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410225744.7A CN117806807B (zh) 2024-02-29 2024-02-29 任务调度方法、装置、电子设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN117806807A true CN117806807A (zh) 2024-04-02
CN117806807B CN117806807B (zh) 2024-05-17

Family

ID=90434894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410225744.7A Active CN117806807B (zh) 2024-02-29 2024-02-29 任务调度方法、装置、电子设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117806807B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737764A (zh) * 2005-09-12 2006-02-22 浙江大学 支持osek标准的嵌入式实时操作系统的任务调度方法
CN101387971A (zh) * 2008-09-26 2009-03-18 中兴通讯股份有限公司 一种嵌入式软件的任务调整方法和装置
CN110489217A (zh) * 2019-07-11 2019-11-22 新华三大数据技术有限公司 一种任务调度方法及系统
CN111736987A (zh) * 2020-05-29 2020-10-02 山东大学 一种基于gpu空间资源共享的任务调度方法
CN112000485A (zh) * 2020-09-01 2020-11-27 北京元心科技有限公司 任务分配方法、装置、电子设备及计算机可读存储介质
CN113282381A (zh) * 2020-02-19 2021-08-20 中科寒武纪科技股份有限公司 任务调度方法、装置、计算机设备和存储介质
CN113849284A (zh) * 2021-08-19 2021-12-28 杭州逗酷软件科技有限公司 任务运行方法、装置、存储介质以及终端
US11640319B1 (en) * 2021-11-26 2023-05-02 Beijing Baidu Netcom Science Technology Co., Ltd. Task processing method and apparatus, electronic device and storage medium
CN116450306A (zh) * 2022-09-26 2023-07-18 宁德时代新能源科技股份有限公司 任务调度方法、装置、设备、存储介质及产品
CN117032937A (zh) * 2023-09-28 2023-11-10 之江实验室 基于gpu的任务调度方法、电子装置和存储介质
CN117149388A (zh) * 2023-09-05 2023-12-01 中国银行股份有限公司 一种批量任务调度方法和系统、电子设备、存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737764A (zh) * 2005-09-12 2006-02-22 浙江大学 支持osek标准的嵌入式实时操作系统的任务调度方法
CN101387971A (zh) * 2008-09-26 2009-03-18 中兴通讯股份有限公司 一种嵌入式软件的任务调整方法和装置
CN110489217A (zh) * 2019-07-11 2019-11-22 新华三大数据技术有限公司 一种任务调度方法及系统
CN113282381A (zh) * 2020-02-19 2021-08-20 中科寒武纪科技股份有限公司 任务调度方法、装置、计算机设备和存储介质
CN111736987A (zh) * 2020-05-29 2020-10-02 山东大学 一种基于gpu空间资源共享的任务调度方法
CN112000485A (zh) * 2020-09-01 2020-11-27 北京元心科技有限公司 任务分配方法、装置、电子设备及计算机可读存储介质
CN113849284A (zh) * 2021-08-19 2021-12-28 杭州逗酷软件科技有限公司 任务运行方法、装置、存储介质以及终端
US11640319B1 (en) * 2021-11-26 2023-05-02 Beijing Baidu Netcom Science Technology Co., Ltd. Task processing method and apparatus, electronic device and storage medium
CN116450306A (zh) * 2022-09-26 2023-07-18 宁德时代新能源科技股份有限公司 任务调度方法、装置、设备、存储介质及产品
CN117149388A (zh) * 2023-09-05 2023-12-01 中国银行股份有限公司 一种批量任务调度方法和系统、电子设备、存储介质
CN117032937A (zh) * 2023-09-28 2023-11-10 之江实验室 基于gpu的任务调度方法、电子装置和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHU YI-AN 等: "New Scheduling Algorithm for Mixed-Criticality Real-Time Task Sets", JOURNAL OF UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA, 20 March 2015 (2015-03-20) *
王乾宇;朱小冬;王毅刚;周鹏;: "嵌入式软件仿真测试环境实时任务调度的研究", 计算机测量与控制, no. 05, 25 May 2012 (2012-05-25) *

Also Published As

Publication number Publication date
CN117806807B (zh) 2024-05-17

Similar Documents

Publication Publication Date Title
CN111176419B (zh) 估计在分布式计算机系统的多个节点上运行的作业的功率性能的方法和装置
CN109298940B (zh) 计算任务分配方法、装置、电子设备及计算机存储介质
CN108845874B (zh) 资源的动态分配方法及服务器
US7467291B1 (en) System and method for calibrating headroom margin
US9600343B2 (en) System and method for analyzing computing system resources
CN111277640B (zh) 用户请求处理方法、装置、系统、计算机设备和存储介质
CN114490078A (zh) 一种微服务的动态缩扩容方法、装置及设备
CN108664321B (zh) 系统资源分配调整方法及装置
JP3828112B2 (ja) 処理の実行を制御するスケジューリング方法およびシステム
CN115794342A (zh) 流水线任务剩余时间估算方法、装置及电子设备
CN117806807B (zh) 任务调度方法、装置、电子设备和计算机可读存储介质
CN114826924A (zh) 用于带宽分配的方法及装置
CN111813524B (zh) 一种任务执行方法、装置、电子设备和存储介质
Chen et al. Towards resource-efficient cloud systems: Avoiding over-provisioning in demand-prediction based resource provisioning
CN108418730B (zh) 网络流量测试方法、装置、设备以及计算机可读存储介质
CN116150067A (zh) 一种带宽调整方法、装置、电子设备和存储介质
CN111666535B (zh) 确定用户活跃时长的方法、装置、电子设备及存储介质
CN114490030A (zh) 自适应动态redis连接池的实现方法及装置
CN110069340B (zh) 线程数评估方法及装置
CN111967938A (zh) 云资源推荐方法、装置、计算机设备及可读存储介质
CN110113434B (zh) 作业自动调度均衡方法、装置、设备及存储介质
CN113127289A (zh) 一种基于yarn集群的资源管理方法、计算机设备和存储介质
CN111902804A (zh) 用于管理存储设备的资源并量化i/o请求成本的系统和方法
CN110489967B (zh) 程序运行风险的分析方法及装置
CA2723511C (en) System and method for analyzing computing system resources

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