实时操作系统的任务调度方法、控制器、终端设备及车辆与流程

    技术2025-05-29  43


    本技术涉及车辆,特别是涉及一种实时操作系统的任务调度方法、装置、控制器、车辆终端设备及车辆。


    背景技术:

    1、目前软件系统开发时,设置很多同步调用的api接口。这些api接口可能会在内部等待一个任务事件的完成之后才会释放。但是在rtos(real-time operating system,实时操作系统)中,在一个高优先级任务内调用一个api接口时,将导致所有任务优先级不高于当前任务的任务无法运行。

    2、由于高优先级的任务在调用这个api接口时,该任务处于接口等待状态,实际上处理器并没有有效地运行,而是处于一个循环等待状态,因此导致其他待处理的低优先级的任务无法执行,影响其他低优先级的任务的处理效率。


    技术实现思路

    1、基于此,有必要针对上述技术问题,提供一种实时操作系统的任务调度方法、装置、控制器、车辆终端设备及车辆,能够在任务处于接口等待的情况下降低其优先级,从而使得在后等待的任务能够被调用执行,避免因为接口阻塞影响其他任务的处理。

    2、一种实时操作系统的任务调度方法,包括:通过系统调度器调度执行前台任务集中的第一前台任务,在执行到第一前台任务中需要等待的操作时,基于第一前台任务中需要等待的操作以及其他未执行的操作生成第一后台任务;在确定前台任务集中存在待调度执行的前台任务时,通过系统调度器调度执行前台任务集中待调度执行的前台任务,直至前台任务集中所有的前台任务均调度执行完毕;在确定前台任务集中不存在待调度执行的前台任务时,通过系统调度器调度执行第一后台任务。

    3、在其中一个实施例中,通过系统调度器调度执行前台任务集中待调度执行的前台任务,包括:通过系统调度器调度执行前台任务集中待调度执行的第二前台任务,在执行到第二前台任务中需要等待的操作时,基于第二前台任务中需要等待的操作以及其他未执行的操作生成第二后台任务;在确定前台任务集中不存在待调度执行的前台任务时,执行第一后台任务,包括:在确定前台任务集中不存在待调度执行的前台任务时,通过系统调度器采用循环处理的方式调度执行第一后台任务和第二后台任务。

    4、在其中一个实施例中,第一前台任务为通过串行外设接口向第一外部芯片发送命令的任务,第二前台任务为通过集成电路总线向第二外部芯片发送命令的任务;在执行到第一前台任务中需要等待的操作时,基于第一前台任务中需要等待的操作以及其他未执行的操作生成第一后台任务,包括:在执行到第一前台任务中已通过串行外设接口向第一外部芯片发送状态查询命令并等待第一外部芯片反馈查询的状态时,将第一前台任务中与第一外部芯片反馈的查询的状态相关的任务操作生成第一后台任务;在执行到第二前台任务中需要等待的操作时,基于第二前台任务中需要等待的操作以及其他未执行的操作生成第二后台任务,包括:在执行到第二前台任务中已通过集成电路总线向第二外部芯片发送数据读取命令并等待第二外部芯片反馈读取到的数据时,将第二前台任务中与第二外部芯片反馈的读取到的数据相关的任务操作生成第二后台任务。

    5、在其中一个实施例中,通过系统调度器采用循环处理的方式调度执行第一后台任务和第二后台任务,包括:在通过系统调度器调度执行第一后台任务时,若确定已通过串行外设接口接收到第一外部芯片反馈的查询的状态,则处理与第一外部芯片反馈的查询的状态相关的任务操作,并在与第一外部芯片反馈的查询的状态相关的任务操作处理结束时,释放第一后台任务的第一线程,以使得释放的第一线程能够被调用,若确定未接收到第一外部芯片反馈的查询的状态,并在确认第二后台任务未执行完毕时,则通过系统调度器调度执行第二后台任务;在通过系统调度器调度执行第二后台任务时,若确定已通过集成电路总线接收到第二外部芯片反馈的读取到的数据,则处理与第二外部芯片反馈的读取到的数据相关的任务操作,并在与第二外部芯片反馈的读取到的数据相关的任务操作处理结束时,释放第二后台任务的第二线程,以使得释放的第二线程能够被调用,若确定未接收到第二外部芯片反馈的读取到的数据,并在确认第一后台任务未执行完毕时,则通过系统调度器调度执行第一后台任务。

    6、在其中一个实施例中,通过系统调度器采用循环处理的方式调度执行第一后台任务和第二后台任务,还包括:在确定前台任务集中不存在待调度执行的前台任务时,读取预配置的后台任务执行逻辑信息,基于预配置的后台任务执行逻辑信息并通过系统调度器调度执行第一后台任务或第二后台任务,并控制第一后台任务和第二后台任务的循环调度执行。

    7、在其中一个实施例中,通过系统调度器调度执行第一后台任务的步骤之后,还包括:若前台任务集中新增待调度执行的第三前台任务,则暂停执行第一后台任务,并通过系统调度器调度执行第三前台任务。

    8、在其中一个实施例中,在系统调度器被配置为不可抢占模式时,通过系统调度器调度执行前台任务集中的第一前台任务的步骤之后,还包括:若通过系统调度器检测到新增待调度执行的第四前台任务,第四前台任务的任务优先级大于或小于第一前台任务的任务优先级,则将第四前台任务作为前台任务集中的待调度执行的前台任务。

    9、在其中一个实施例中,在系统调度器被配置为可抢占模式时,通过系统调度器调度执行前台任务集中的第一前台任务的步骤之后,还包括:若通过系统调度器检测到新增待调度执行的第五前台任务,则识别第五前台任务的任务优先级;若第五前台任务的任务优先级大于第一前台任务的任务优先级,则暂停第一前台任务的执行,并通过系统调度器调度执行第五前台任务;若第五前台任务的任务优先级小于第一前台任务的任务优先级,则将第四前台任务作为前台任务集中的待调度执行的前台任务。

    10、一种实时操作系统的任务调度装置,包括:第一执行模块,用于通过系统调度器调度执行前台任务集中的第一前台任务,在执行到第一前台任务中需要等待的操作时,基于第一前台任务中需要等待的操作以及其他未执行的操作生成第一后台任务;第二执行模块,用于在确定前台任务集中存在待调度执行的前台任务时,通过系统调度器调度执行前台任务集中待调度执行的前台任务,直至前台任务集中所有的前台任务均调度执行完毕;第三执行模块,用于在确定前台任务集中不存在待调度执行的前台任务时,通过系统调度器调度执行第一后台任务。

    11、一种控制器,包括存储组件和处理组件,存储组件存储有实时操作系统的程序代码,实时操作系统的程序代码被处理组件运行时实现上述任一实施例方法的步骤。

    12、一种车辆终端设备,车辆终端设备配置有上述实施例的控制器。

    13、一种车辆,车辆配置有上述实施例的车辆终端设备。

    14、上述一种实时操作系统的任务调度方法、装置、控制器、车辆终端设备及车辆,通过系统调度器调度执行前台任务集中的第一前台任务,在执行到第一前台任务中需要等待的操作时,基于第一前台任务中需要等待的操作以及其他未执行的操作生成第一后台任务;在确定前台任务集中存在待调度执行的前台任务时,通过系统调度器调度执行前台任务集中待调度执行的前台任务,直至前台任务集中所有的前台任务均调度执行完毕;在确定前台任务集中不存在待调度执行的前台任务时,通过系统调度器调度执行第一后台任务。

    15、因此,在确定前台任务执行到需要等待的操作时,将其剩余的操作生成对应的后台任务,从而降低该任务的优先级。此时若还存在其他待调度执行的前台任务,可直接调用执行其他待调度执行的前台任务,直至前台任务执行完毕,再处理生成的后台任务。由此能够在正在执行的任务处于接口等待的情况下降低其优先级,从而使得在后等待的任务能够被调用执行,避免因为接口阻塞影响其他任务的处理。


    技术特征:

    1.一种实时操作系统的任务调度方法,其特征在于,所述方法包括:

    2.根据权利要求1所述的方法,其特征在于,所述通过所述系统调度器调度执行所述前台任务集中待调度执行的前台任务,包括:

    3.根据权利要求2所述的方法,其特征在于,所述第一前台任务为通过串行外设接口向第一外部芯片发送命令的任务,所述第二前台任务为通过集成电路总线向第二外部芯片发送命令的任务;

    4.根据权利要求3所述的方法,其特征在于,所述通过系统调度器采用循环处理的方式调度执行所述第一后台任务和所述第二后台任务,包括:

    5.根据权利要求1所述的方法,其特征在于,所述通过系统调度器调度执行所述第一后台任务的步骤之后,还包括:

    6.根据权利要求1所述的方法,其特征在于,在所述系统调度器被配置为不可抢占模式时,所述通过系统调度器调度执行前台任务集中的第一前台任务的步骤之后,还包括:

    7.根据权利要求1所述的方法,其特征在于,在所述系统调度器被配置为可抢占模式时,所述通过系统调度器调度执行前台任务集中的第一前台任务的步骤之后,还包括:

    8.一种实时操作系统的任务调度装置,其特征在于,所述装置包括:

    9.一种控制器,其特征在于,包括存储组件和处理组件,所述存储组件存储有实时操作系统的程序代码,所述实时操作系统的程序代码被处理组件运行时实现权利要求1至7中任一项所述方法的步骤。

    10.一种车辆终端设备,其特征在于,所述车辆终端设备配置有权利要求9所述的控制器。

    11.一种车辆,其特征在于,所述车辆配置有权利要求10所述的车辆终端设备。


    技术总结
    本申请涉及一种实时操作系统的任务调度方法、装置、控制器、车辆终端设备及车辆,包括:通过系统调度器调度执行前台任务集中的第一前台任务,在执行到第一前台任务中需要等待的操作时,基于第一前台任务中需要等待的操作以及其他未执行的操作生成第一后台任务;在确定前台任务集中存在待调度执行的前台任务时,通过系统调度器调度执行前台任务集中待调度执行的前台任务,直至前台任务集中所有的前台任务均调度执行完毕;在确定前台任务集中不存在待调度执行的前台任务时,通过系统调度器调度执行第一后台任务。上述方法能够在任务处于接口等待的情况下降低其优先级,避免因为接口阻塞影响其他任务的处理。

    技术研发人员:王汉杰
    受保护的技术使用者:上海小马智行智能科技发展有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-31501.html

    最新回复(0)