CN116560814A - SoC上的任务调度方法、电子设备及机器可读存储介质 - Google Patents
SoC上的任务调度方法、电子设备及机器可读存储介质 Download PDFInfo
- Publication number
- CN116560814A CN116560814A CN202310550183.3A CN202310550183A CN116560814A CN 116560814 A CN116560814 A CN 116560814A CN 202310550183 A CN202310550183 A CN 202310550183A CN 116560814 A CN116560814 A CN 116560814A
- Authority
- CN
- China
- Prior art keywords
- task
- task thread
- thread
- preset
- preset execution
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000004927 fusion Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000012805 post-processing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种SoC上的任务调度方法、电子设备及机器可读存储介质,本发明提供的方法中,首先获取SoC上可预期性调度的多个任务线程的预设执行时长和预设执行顺序,然后当任一任务线程开始执行时,开始对任务线程的执行时间计时,若计时达到该任务线程对应的预设执行时长而任务线程未执行完成,确定任务线程为第一任务线程,控制第一任务线程关闭且根据预设执行顺序控制第二任务线程开启,其中,第二任务线程为第一任务线程的下一任务线程,从而确保软件运行时长不超过WCET,软件一直正常运行,增强了软件的健壮性。
Description
技术领域
本发明涉及汽车技术领域,特别是涉及一种SoC上的任务调度方法。
背景技术
对于实时性要求高的汽车场景中,高性能处理器(SoC,system on chip)上的可预期性调度中会有WCET(worst case excute time,最差场景执行时间),基于WCET来准确无误执行可预期性调度的其他逻辑。
而WCET是工程师理论计算+实车测试得到的值,在真实的长时间的汽车运行过程中,有可能会遇到软件运行时间超过WCET的场景,这种情况必须要考虑进去。目前有些可预期性调度方案是直接关闭或者重启软件,应对这种异常情况如何使软件能继续正常运行下去亟待解决。本发明提供了一种方法,该方法可以很好的弥补此异常,使软件继续正常执行。
发明内容
本发明的目的是要提供一种SoC上的任务调度方法,确保软件运行时间不会超过WCET。
特别地,根据本发明的一个方面,提供了一种SoC上的任务调度方法,包括:
获取所述SoC上可预期性调度的多个任务线程的预设执行时长和预设执行顺序;
当任一所述任务线程开始执行,开始对所述任务线程的执行时间计时;
若计时达到所述任务线程对应的预设执行时长而所述任务线程未执行完成,确定所述任务线程为第一任务线程,控制所述第一任务线程关闭且根据所述预设执行顺序控制第二任务线程开启,其中,所述第二任务线程为所述第一任务线程的下一任务线程。
可选地,所述根据所述预设执行顺序控制所述第二任务线程开启后,还包括:
判断所述第二任务线程是否在其对应的第二预设执行时长内执行完成;
若是,计算所述第二任务线程的执行时长和所述第二预设执行时长的差值;
若所述差值大于预设百分比的所述第一任务进程对应的第一预设时长,控制所述第一任务线程继续执行。
可选地,所述判断所述第二任务线程是否在其对应的第二预设执行时长内执行完成后,还包括:
若所述第二任务线程未在其对应的第二预设执行时长内执行完成,则在计时达到所述第二预设执行时长时根据所述预设执行顺序控制第三任务线程开启,其中,所述第三任务进程为所述第二任务进程的下一任务进程。
可选地,所述计算所述第二任务线程的执行时长和所述第二预设执行时长的差值后,还包括:
若所述差值小于或等于预设百分比的所述第一预设时长,则在计时达到所述第二预设执行时长时根据所述预设执行顺序控制第三任务线程开启,其中,所述第三任务进程为所述第二任务进程的下一任务进程。
可选地,所述控制所述第一任务线程继续执行后,还包括:
当计时达到所述第二预设执行时长时根据所述预设执行顺序控制控制第三任务线程开启,其中,所述第三任务线程为所述第二任务线程的下一任务线程。
可选地,所述控制所述第一任务线程继续执行后,还包括:当所述第一任务线程执行完成时,将所述第一任务线程执行完成这一信息输出至应用层。
可选地,当计时达到所述任务线程对应的预设执行时长而所述任务线程未执行完成,还包括:
将所述任务线程未执行完成这一信息输出至应用层。
可选地,所述对所述任务线程的执行时间进行计时后,还包括:
若所述任务线程的执行完成时长小于或等于所述任务线程对应的预设执行时长,则在计时达到所述预设执行时长时,控制所述任务线程关闭。
根据本发明的另一个方面,还提供了一种电子设备,包括:
存储器和处理器,所述存储器内存储有控制程序,所述控制程序被所述处理器执行时用于实现根据上述任一项所述的SoC上的任务调度方法。
根据本发明的再一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,其中
所述机器可执行程序被处理器执行时用于实现根据上述任一项所述的SoC上的任务调度方法。
本发明提出的SoC上的任务调度方法中,首先获取SoC上可预期性调度的多个任务线程的预设执行时长和预设执行顺序,然后当任一任务线程开始执行时,开始对任务线程的执行时间计时,若计时达到该任务线程对应的预设执行时长而任务线程未执行完成,确定任务线程为第一任务线程,控制第一任务线程关闭且根据预设执行顺序控制第二任务线程开启,其中,第二任务线程为所述第一任务线程的下一任务线程,从而确保软件运行时长不超过WCET,软件一直正常运行,增强了软件的健壮性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明一个实施例的SoC上的任务调度方法的流程示意图;
图2是根据本发明一个实施例的SoC上的任务调度方法的实例图;
图3是根据本发明一个实施例的电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
需要说明的是,在不冲突的前提下本发明实施例及可选实施例中的技术特征可以相互结合。
图1是根据本发明一个实施例的SoC上的任务调度方法的流程示意图。参见图1所示,该方法至少包括如下步骤S102-S106。
步骤S102:获取SoC上可预期性调度的多个任务线程的预设执行时长和预设执行顺序。
步骤S104:当任一任务线程开始执行,开始对任务线程的执行时间计时。
步骤S106:若计时达到任务线程对应的预设执行时长而任务线程未执行完成,确定任务线程为第一任务线程,控制第一任务线程关闭且根据预设执行顺序控制第二任务线程开启,其中,第二任务线程为第一任务线程的下一任务线程。
其中,任务线程对应的预设执行时长即为该任务线程对应的WCET。
本发明实施例中,先获取SoC上可预期性调度的多个任务线程的预设执行时长和预设执行顺序,然后当任一任务线程开始执行时,开始对任务线程的执行时间计时,若计时达到该任务线程对应的预设执行时长而任务线程未执行完成,确定任务线程为第一任务线程,控制第一任务线程关闭且根据预设执行顺序控制第二任务线程开启,其中,第二任务线程为第一任务线程的下一任务线程,从而确保软件运行时长不超过WCET,软件一直正常运行,增强了软件的健壮性。
在本发明一个实施例中,上述步骤S104后,该方法还包括:若任务线程的执行完成时长小于或等于任务线程对应的预设执行时长,则在计时达到该任务线程对应的预设执行时长时,控制该任务线程关闭。
在本发明一个实施例中,上述步骤S104后,该方法还包括:将任务线程未执行完成这一信息输出至应用层。
信息输出至应用层后,后续开发工程师会再去标定测试这个任务线程的WCET,同时将此问题通过错误处理报告给用户,用户可以做相应后处理或不做后处理,比如关闭进程或者重启进程或者对超WCET的任务做数据补偿或者使用上个周期的执行结果等。
在本发明的一个实施例中,上述步骤S106后,该方法还包括:判断第二任务线程是否在其对应的第二预设执行时长内执行完成。若是,计算第二任务线程的执行时长和第二预设执行时长的差值。若差值大于预设百分比的第一任务进程对应的第一预设时长,控制第一任务线程继续执行。
其中,预设百分比可选是80%。若差值大于预设百分比的第一任务进程对应的第一预设时长,则说明未完成的第一任务线程可以在余下时间内完成,此种情形下,控制第一任务线程继续执行。
在本发明一个实施例中,控制第一任务线程继续执行后,该方法还包括:当第一任务线程执行完成时,将第一任务线程执行完成这一信息输出至应用层。
另外,在控制第一任务线程继续执行后,该方法还包括:当计时达到第二预设执行时长时,根据预设执行顺序控制第三任务线程开启,其中,第三任务线程为第二任务线程的下一任务线程。
在本发明一个实施例中,判断第二任务线程是否在其对应的第二预设执行时长内执行完成后,该方法还包括:若第二任务线程未在其对应的第二预设执行时长内执行完成,则在计时达到第二预设执行时长时根据预设执行顺序控制第三任务线程开启。
在本发明一个实施例中,计算第二任务线程的执行时长和第二预设执行时长的差值后,该方法还包括:若差值小于或等于预设百分比的第一预设时长,则在计时达到第二预设执行时长时根据预设执行顺序控制第三任务线程开启,。
其中,若差值小于或等于预设百分比的第一预设时长,则说明未完成的第一任务线程在余下时间内无法完成,因此在计时达到第二预设执行时长时根据预设执行顺序控制第三任务线程开启。
图2是根据本发明一个实施例的SoC上的任务调度方法的实例图。参见图2所示,横坐标是时长,纵坐标是任务线程。周期时长为10ms,多个任务线程分别是交通灯识别线程a、高精地图管理线程b、图像定位融合线程c以及路径规划线程d。其中,交通灯识别线程a对应的预设执行时长是2ms,高精地图管理线程b对应的预设执行时长是3ms,图像定位融合线程c对应的预设执行时长是2ms,路径规划线程d对应的预设执行时长是3ms,执行顺序从前至后是交通灯识别线程a、高精地图管理线程b、图像定位融合线程c以及路径规划线程d。
其中,第一周期内,交通灯识别线程a执行时长是1.9ms,高精地图管理线程b执行时长是2.9ms,图像定位融合线程c执行时长是1.8s,路径规划线程d执行时长是2.9s,均未超过各自对应的预设执行时长,各任务线程均在对应的触发点执行。
第二周期内,交通灯识别线程a执行时长是1.8ms,高精地图管理线程b执行时长是3ms,图像定位融合线程c未在其对应的预设执行时长内执行完成,路径规划线程d执行时长是0.2ms,余下时长大于图像定位融合线程c对应的预设执行时长的80%,因此,继续运行图像定位融合线程c。
第三周期内,交通灯识别线程a未在其对应的预设执行时长内执行完成,高精地图管理线程b的执行时长是1.5s,余下时长小于交通灯识别线程a对应预设执行时长的80%,因此,在图像定位融合线程c触发时间点直接触发图像定位融合线程c,图像定位融合线程c的执行时长是1.8ms,路径规划线程d的执行线程是2.9ms。
基于同一发明构思,本发明还提出了一种电子设备,图3是根据本发明一个实施例的电子设备的结构框图。参见图3所示,电子设备300包括:存储器和320处理器310,存储器320内存储有控制程序321,控制程序321被处理器310执行时用于实现上述任一实施例的SoC上的任务调度方法。
另外,本发明还提出了一种机器可读存储介质,其上存储有机器可执行程序,其中,机器可执行程序被处理器执行时用于实现根据上述任一实施例的SoC上的任务调度方法。
本发明提出了一种SoC上的任务调度方法中,本发明提供的方法中,首先获取SoC上可预期性调度的多个任务线程的预设执行时长和预设执行顺序,然后当任一任务线程开始执行时,开始对任务线程的执行时间计时,若计时达到该任务线程对应的预设执行时长而任务线程未执行完成,确定任务线程为第一任务线程,控制第一任务线程关闭且根据预设执行顺序控制第二任务线程开启,其中,第二任务线程为第一任务线程的下一任务线程,从而确保软件运行时长不超过WCET,软件一直正常运行,增强了软件的健壮性。
另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
本领域普通技术人员可以理解:集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行指令时执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM),磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。
Claims (10)
1.一种SoC上的任务调度方法,包括:
获取所述SoC上可预期性调度的多个任务线程的预设执行时长和预设执行顺序;
当任一所述任务线程开始执行,开始对所述任务线程的执行时间计时;
若计时达到所述任务线程对应的预设执行时长而所述任务线程未执行完成,确定所述任务线程为第一任务线程,控制所述第一任务线程关闭;
根据所述预设执行顺序控制第二任务线程开启,其中,所述第二任务线程为所述第一任务线程的下一任务线程。
2.根据权利要求1所述的方法,其特征在于,所述根据所述预设执行顺序控制所述第二任务线程开启后,还包括:
判断所述第二任务线程是否在其对应的第二预设执行时长内执行完成;
若是,计算所述第二任务线程的执行时长和所述第二预设执行时长的差值;
若所述差值大于预设百分比的所述第一任务进程对应的第一预设时长,控制所述第一任务线程继续执行。
3.根据权利要求2所述的方法,其特征在于,所述判断所述第二任务线程是否在其对应的第二预设执行时长内执行完成后,还包括:
若所述第二任务线程未在其对应的第二预设执行时长内执行完成,则在计时达到所述第二预设执行时长时根据所述预设执行顺序控制第三任务线程开启,其中,所述第三任务进程为所述第二任务进程的下一任务进程。
4.根据权利要求2所述的方法,其特征在于,所述计算所述第二任务线程的执行时长和所述第二预设执行时长的差值后,还包括:
若所述差值小于或等于预设百分比的所述第一预设时长,则在计时达到所述第二预设执行时长时根据所述预设执行顺序控制第三任务线程开启,其中,所述第三任务进程为所述第二任务进程的下一任务进程。
5.根据权利要求2所述的方法,其特征在于,所述控制所述第一任务线程继续执行后,还包括:
当计时达到所述第二预设执行时长时,根据所述预设执行顺序控制第三任务线程开启,其中,所述第三任务线程为所述第二任务线程的下一任务线程。
6.根据权利要求2所述的方法,其特征在于,所述控制所述第一任务线程继续执行后,还包括:
当所述第一任务线程执行完成时,将所述第一任务线程执行完成这一信息输出至应用层。
7.根据权利要求1所述的方法,其特征在于,当计时达到所述任务线程对应的预设执行时长而所述任务线程未执行完成,还包括:
将所述任务线程未执行完成这一信息输出至应用层。
8.根据权利要求1所述的方法,其特征在于,所述对所述任务线程的执行时间进行计时后,还包括:
若所述任务线程的执行完成时长小于或等于所述任务线程对应的预设执行时长,则在计时达到所述预设执行时长时,控制所述任务线程关闭。
9.一种电子设备,包括:
存储器和处理器,所述存储器内存储有控制程序,所述控制程序被所述处理器执行时用于实现根据权利要求1至8中任一项所述的SoC上的任务调度方法。
10.一种机器可读存储介质,其上存储有机器可执行程序,其中
所述机器可执行程序被处理器执行时用于实现根据权利要求1至8所述的SoC上的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310550183.3A CN116560814A (zh) | 2023-05-16 | 2023-05-16 | SoC上的任务调度方法、电子设备及机器可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310550183.3A CN116560814A (zh) | 2023-05-16 | 2023-05-16 | SoC上的任务调度方法、电子设备及机器可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116560814A true CN116560814A (zh) | 2023-08-08 |
Family
ID=87489503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310550183.3A Pending CN116560814A (zh) | 2023-05-16 | 2023-05-16 | SoC上的任务调度方法、电子设备及机器可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116560814A (zh) |
-
2023
- 2023-05-16 CN CN202310550183.3A patent/CN116560814A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103676722B (zh) | 使用修改的监视计时器的安全系统的质问和响应 | |
US11151475B2 (en) | Method and device for generating a machine learning system and virtual sensor device | |
CN112100085B (zh) | 安卓应用程序稳定性测试方法、装置和设备 | |
JP4648396B2 (ja) | コンピュータプログラムを処理する方法、駆動システムおよび計算装置 | |
CN105074656A (zh) | 管理并发谓词表达式的方法和装置 | |
US11500679B2 (en) | Operating a controller in a motor vehicle according to different time slots | |
CN108885570B (zh) | 车辆控制装置 | |
US20230236088A1 (en) | Computer-aided method and device for predicting speeds for vehicles on the basis of probability | |
CN116560814A (zh) | SoC上的任务调度方法、电子设备及机器可读存储介质 | |
US9880813B2 (en) | RTE code generating method and apparatus performing the same | |
CN103823711A (zh) | 在Java虚拟机中提供相对定时的方法及装置 | |
US8412496B2 (en) | Simulation system, method, and program | |
EP2950210A1 (en) | Control method and device for system log recording | |
US20030083858A1 (en) | Incremental automata verification | |
CN114490193B (zh) | 一种面向异构冗余系统的恢复方法及装置 | |
Giusto et al. | Modeling and analysis of automotive systems: Current approaches and future trends | |
CN110909023A (zh) | 一种查询计划的获取方法、数据查询方法及装置 | |
CN111679924B (zh) | 构件化软件系统可靠性仿真方法、装置及电子设备 | |
CN114625572B (zh) | 逆向调试内存备份方法、电子设备和介质 | |
Philipps et al. | Prototype-based tests for hybrid reactive systems | |
JP2010086207A (ja) | シミュレーション方法、システム及びプログラム | |
US11520964B1 (en) | Method and system for assertion-based formal verification using unique signature values | |
WO2015116057A1 (en) | Dumping resources | |
CN112599172B (zh) | 电子控制单元的数据写入方法、装置及存储介质 | |
CN115952172B (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 |