一种任务处理方法、装置及可读存储介质与流程

xiaoxiao22天前  18


本技术涉及终端,尤其涉及一种任务处理方法、装置及可读存储介质。


背景技术:

1、微控制器单元(microcontroller unit,mcu)又称单片机,具有体积小、功耗低以及可靠性高的优点,被广泛应用于工业控制、交通管理以及日常生活等领域。在mcu嵌入式系统中,可以通过操作系统(operating system,os)实现对任务处理(包括任务的执行和任务切换),该方法中,任务是os调度的基本单元,每个任务在执行时会独占cpu,且cpu在任务切换的过程中,需要先将当前执行任务的cpu上下文保存至当前任务对应的堆栈空间中,再将新任务的cpu上下文装载至cpu寄存器中,以运行新任务,实现任务的切换。

2、不难看出,在任务处理过程中,该方法需要为每个任务的堆栈提供对应的存储资源以在任务切换时存储正在执行任务的cpu上下文,这样增加了任务处理对存储资源以及cpu性能的开销。


技术实现思路

1、本技术提供一种任务处理方法、装置及可读存储介质,一定程度上解决了现有的任务处理方法对存储资源以及cpu消耗较大的问题。

2、为达到上述目的,本技术采用如下技术方案:

3、第一方面,本技术提供一种任务处理方法,该方法包括:

4、获取第一任务的进度指示信息,所述进度指示信息包括与第一子任务对应的第一指示参数,所述第一任务包括多个子任务,所述第一子任务为多个所述子任务中未被执行的子任务;

5、根据所述第一指示参数执行与所述第一子任务对应的处理函数;

6、在所述处理函数执行完后,将所述进度指示信息中的第一指示参数更新为与第二子任务对应的第二指示参数,所述第二子任务为所述多个子任务中所述第一子任务的下一个子任务。

7、基于本技术提供的任务处理方法,先通过进度指示信息确定第一任务的第一子任务后,执行与第一子任务对应的处理函数,在处理函数执行完成之后,再将进度指示信息中的第一指示参数更新为与第二子任务对应的第二指示参数。这样将第一任务分成多个子任务的方式能够极大的缩短第一子任务执行所占用cpu的时间,以便于在第一任务的至少一个子任务执行完毕的情况下执行其他任务,为其他任务的执行提供一定的时间,且由于在第一子任务处理完成之后,上述方法还将进度指示信息中的第一指示参数更新为与第二子任务对应的第二指示参数,这样就避免了在任务切换时需要给当前执行的第一任务分配单独的存储空间以保存当前执行的第一任务的cpu上下文,有效减少了任务处理对存储资源的依赖,大大降低了对存储资源和cpu的消耗。

8、此外,通过将第一任务划分为多个子任务可以在第一任务中的部分子任务执行完毕后切换执行其他任务,使其他任务得到及时响应或处理,有效避免由于第一任务占用cpu时间过长而导致阻塞情况的发生,达到了多任务并行执行的效果,提高了cpu的利用率。

9、在第一方面的一种可能的实施方式中,在所述处理函数执行过程中,若检测到新增的第二任务,所述第二任务的任务处理优先级高于所述第一任务,则在对所述第一指示参数更新后,执行所述第二任务。

10、基于上述可选的方式,通过上述任务处理方法使得第一子任务完整的处理过程既包括利用与第一子任务对应的处理函数对第一子任务进行处理的过程,又包括利用处理函数对第一子任务处理完成后,根据第一任务中多个子任务的执行顺序对进度指示信息进行更新的过程,这样的设计避免了在第一子任务执行过程中由于其他任务的影响而导致第一子任务执行中断情况的发生,通过将第一任务划分为多个子任务的方式,降低了第一任务执行过程中异常或中断的发生率。

11、在第一方面的一种可能的实施方式中,若所述第一子任务是所述多个子任务中的最后一个子任务,则所述第二子任务为与所述多个子任务中的第一个子任务。

12、在第一方面的一种可能的实施方式中,所述获取第一任务的进度指示信息之前,所述方法还包括:

13、对多个任务进行初始化处理,得到任务集合,所述任务集合包括所述第一任务;

14、基于预设的任务调度策略对所述任务集合中的多个任务进行调度。

15、示例性的,任务调度策略可以包括:先进先出调度策略、基于优先级调度策略以及轮询调度策略中的任意一种。

16、不难理解的,在实际应用中,任务调度策略还可以根据实际应用需求自定义,本技术对此不作限定。

17、基于上述可选的实施方式,通过自定义、先进先出调度策略、基于优先级调度策略以及轮询调度策略等调度策略从任务集合中确定第一任务,不仅符合实际应用需求或业务场景,而且调度策略的多样性选择有效保证了不同任务之间的选择任务调度策略的灵活性。

18、在第一方面的一种可能的实施方式中,所述第一任务中的多个所述子任务通过状态机或迭代器的方式实现。

19、应理解,第一任务中多个上述子任务的实现方式也可以根据具体的业务场景进行自定义。

20、基于上述可选的实施方式,上述任务处理方法在具体实现过程中,可以采用模块化的方式(例如状态机或迭代器等方法)对第一任务进行开发和设计,增加编程的灵活性,降低任务编程的难度;当实际业务场景发生变化时,可以利用已建立的第一任务的程序框架来实现与新业务场景对应的功能,提高了程序的可复用性,实现了提升开发和维护效率的目的。

21、第二方面,本技术实施例提供一种任务处理装置,该任务处理装置包括:

22、获取单元,用于获取第一任务的进度指示信息,所述进度指示信息包括与第一子任务对应的第一指示参数,所述第一任务包括多个子任务,所述第一子任务为多个所述子任务中未被执行的子任务;

23、处理单元,用于根据所述第一指示参数执行与所述第一子任务对应的处理函数;

24、更新单元,用于在所述处理函数执行完后,将所述进度指示信息中的第一指示参数更新为与第二子任务对应的第二指示参数,所述第二子任务为所述多个子任务中所述第一子任务的下一个子任务。

25、在第二方面的一种可能的实施方式中,在所述处理函数执行过程中,若检测到新增的第二任务,所述第二任务的任务处理优先级高于所述第一任务,则在对所述第一指示参数更新后,执行所述第二任务。

26、在第二方面的一种可能的实施方式中,若所述第一子任务是所述多个子任务中的最后一个子任务,则所述第二子任务为所述多个子任务中的第一个子任务。

27、在第二方面的一种可能的实施方式中,所述获取第一任务的进度指示信息之前,所述方法还包括:

28、对多个任务进行初始化处理,得到任务集合,所述任务集合包括所述第一任务;

29、基于预设的任务调度策略对所述任务集合中的多个任务进行调度。

30、在第二方面的一种可能的实施方式中,所述第一任务中的多个所述子任务通过状态机或迭代器的方式实现。

31、在第二方面的一种可能的实施方式中,所述任务调度策略包括:先进先出调度策略、基于优先级调度策略以及轮询调度策略中的任意一种。

32、第三方面,本技术实施例提供一种电子设备,包括:处理器,所述处理器用于运行存储器中存储的计算机程序,以实现第一方面或第一方面的任一可能的实现方式中的方法。

33、第四方面,本技术提供一种任务处理系统,该任务处理系统包括第三方面所述的电子设备。

34、第五方面,本技术提供一种芯片,所述芯片包括处理器,处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面或第一方面的任一可能的实现方式中的方法。

35、可选地,所述芯片还包括存储器,存储器与处理器通过电路或电线连接。

36、第六方面,本技术提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现第一方面或第一方面的任一可能的实现方式中的方法。

37、第七方面,本技术提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行第一方面或第一方面的任一可能的实现方式中的方法。

38、本技术提供的第二方面至第七方面的技术效果可以参见上述第一方面的各个可能的实现方式的技术效果,此处不再赘述。


技术特征:

1.一种任务处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的任务处理方法,其特征在于,在所述处理函数执行过程中,若检测到新增的第二任务,所述第二任务的任务处理优先级高于所述第一任务,则在对所述第一指示参数更新后,执行所述第二任务。

3.根据权利要求1或2所述的任务处理方法,其特征在于,若所述第一子任务是所述多个子任务中的最后一个子任务,则所述第二子任务为所述多个子任务中的第一个子任务。

4.根据权利要求1-3任一项所述的任务处理方法,其特征在于,所述获取第一任务的进度指示信息之前,所述方法还包括:

5.根据权利要求4所述的任务处理方法,其特征在于,所述任务调度策略包括:先进先出调度策略、基于优先级调度策略以及轮询调度策略中的任意一种。

6.根据权利要求1-5任一项所述的任务处理方法,其特征在于,所述第一任务中的多个所述子任务通过状态机或迭代器的方式实现。

7.一种任务处理装置,其特征在于,所述装置包括:

8.一种任务处理系统,其特征在于,包括:如权利要求7所述的任务处理装置。

9.一种电子设备,其特征在于,包括:处理器,所述处理器用于运行存储器中存储的计算机程序,以实现如权利要求1至6任一项所述的方法。

10.一种芯片,其特征在于,所述芯片包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6任一项所述的方法。

11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。


技术总结
本申请提供一种任务处理方法、装置及可读存储介质,涉及终端技术领域,该任务处理方法包括:获取第一任务的进度指示信息,所述进度指示信息包括与第一子任务对应的第一指示参数,所述第一任务包括多个子任务,所述第一子任务为多个所述子任务中未被执行的子任务;根据所述第一指示参数执行与所述第一子任务对应的处理函数;在所述处理函数执行完后,将所述进度指示信息中的第一指示参数更新为与第二子任务对应的第二指示参数,所述第二子任务为所述多个子任务中所述第一子任务的下一个子任务。一定程度上解决了现有的任务处理方法对存储资源以及CPU消耗较大的问题。

技术研发人员:薛建成
受保护的技术使用者:华为技术有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)