系统调度方法、装置及可读存储介质与流程
- 国知局
- 2024-07-31 22:44:16
本发明涉及实时系统调度,尤其涉及一种系统调度方法、装置及可读存储介质。
背景技术:
1、目前,cp autosar框架下实时操作系统的调度方法的理论依据还是liu andlayland在1973年提出的经典rms(单调速率调度)算法,该算法的基本思路是任务的优先级与它的周期表现为单调函数的关系,任务的周期越小优先级越高,以保证实时系统要求的任务在截止时间前完成实际执行。具体实施中,会统筹所有swc(软件模块)的runnables(可运行实体),将相同周期的一组runnables分配给一个固定优先级的os task(系统任务),周期越小,优先级越高。
2、但随着cp autosar在智能驾驶域控制器等更复杂产品中的应用,传统调度算法面临以下问题:未考虑runnable间的资源共享优化,导致过度的临界区保护影响实时性;未优化runnable间的调度顺序,造成信号传输时延和抖动较大;缺乏runnable间的失效屏蔽机制,导致不同功能模块的runnables混杂在一个task中,若某个runnable异常,会影响其他runnables的调度。
技术实现思路
1、针对上述技术问题,本发明提供了一种系统调度方法、装置及可读存储介质,可以减少runnable之间共享资源临界区保护造成的等待时间,优化runnable调度顺序,提高模块间的失效屏蔽,同时保证runnable的可调度性。
2、本发明的第一方面,提供一种系统调度方法,包括:
3、获取预设的可运行实体模型runnable模型;
4、对所述runnable模型进行可调度性预检查,输出满足预设条件的可调runnable模型;
5、将所述可调runnable模型映射至预设格式的task模型中,得到临时runnable模型和临时task模型;
6、确定所述临时runnable模型在所述临时task模型中的执行顺序,得到初步runnable模型;
7、对所述临时task模型进行可调度性后检查,得到最终task模型和最终runnable模型并输出以用于所述系统的实际调度和执行。
8、在一种可能的实现方式中,所述runnable模型的参数至少包括所述runnable所属的特性组、所述runnable的周期、所述runnable的最坏执行时间、所述runnable的全局偏移量以及所述runnable在task中的执行顺序;所述task模型的参数至少包括所述task的优先级,所述task的任务周期以及所述task的最坏执行时间。
9、在一种可能的实现方式中,所述对所述runnable模型进行可调度性预检查,输出满足预设条件的可调runnable模型,包括:
10、检查所述runnable周期是否为所述task任务周期的整数倍;
11、基于检查结果确定所述系统的可调度负载率上限;
12、判断所述系统的总负载率是否低于所述可调度负载率上限;
13、若低于所述可调度负载率上限则满足所述可调度性预检查的条件,确定当前的runnable模型为所述可调runnable模型。
14、在一种可能的实现方式中,所述将所述可调runnable模型映射至预设格式的task模型中,得到临时runnable模型和临时task模型,包括:
15、基于所述特性组对所有可调runnable模型进行分类,并将具有相同特性组的可调runnable模型映射至同一task模型;
16、基于所述task所包含runnable模型的特性组确定所述task模型的优先级;
17、基于所述task所包含runnable模型周期的最大公约数确定所述task模型的任务周期;
18、基于所述task所包含runnable模型最坏执行时间的总和确定所述task模型的最坏执行时间。
19、在一种可能的实现方式中,所述基于所述特性组对所有可调runnable模型进行分类,并将具有相同特性组的可调runnable模型映射至同一task模型,包括:
20、获取所述可调runnable模型,并初始化当前可调runnable模型的参数;
21、检查是否存在与当前runnable特性组相同的task;
22、若存在则将所述可调runnable模型映射至已有task里,不存在则创建新的task直至所有runnable模型遍历结束。
23、在一种可能的实现方式中,所述确定所述临时runnable模型在所述临时task模型中的执行顺序,得到初步runnable模型,包括:
24、根据计算链最小时延原则,采用前驱图和启发式二叉树算法,确定所述临时runnable模型在所述临时task模型中的执行顺序,进而更新所述临时runnable模型的参数得到初步runnable模型。
25、在一种可能的实现方式中,所述对所述临时task模型进行可调度性后检查,得到最终task模型和最终runnable模型并输出以用于所述系统的实际调度和执行,包括:
26、基于预设的可调度性分析算法对所有临时task模型进行可调度性判断;
27、若所述临时task模型可调度,则输出所述临时task模型和对应的初步runnable模型为最终task模型和最终runnable模型;
28、若所述临时task模型不可调度,则在所述初步runnable模型存在可调整参数时,通过调整所述初步runnable模型调整所述临时task的任务周期以满足可调度后检查要求。
29、在一种可能的实现方式中,所述可调性分析算法包括:
30、在一个task的调度周期内,所述临时task模型的最坏执行时间加上所有高优先级任务对所述临时task模型的干扰时间之和小于等于所述临时task模型的任务周期。
31、在一种可能的实现方式中,所述通过调整所述初步runnable模型调整所述临时task的任务周期以满足可调度后检查要求,包括:
32、调整所述初步runnable模型生成新的临时runnable模型及其对应的新的临时task模型;
33、基于所述临时runnable模型生成新的初步runnable模型;
34、对所述新的临时task模型进行可调度性后检查;
35、在不满足时持续迭代调整所述初步runnable模型至满足可调度后检查要求。
36、在一种可能的实现方式中,所述调整所述初步runnable模型生成新的临时runnable模及其对应的新的临时task模型通过调整所述runnable模型调整所述临时task的任务周期,包括:
37、通过拆分runnable降低高优先级task周期;
38、通过合并runnable提高低优先级task周期。
39、本发明的第二方面,提供一种系统调度装置,包括:
40、模型获取模块,至少用于获取预设的可运行实体模型runnable模型;
41、模型预检模块,至少用于对所述runnable模型进行可调度性预检查,输出满足预设条件的可调runnable模型;
42、模型映射模块,至少用于将所述可调runnable模型映射至预设格式的task模型中,得到临时runnable模型和临时task模型;
43、模型排序模块,至少用于确定所述临时runnable模型在所述临时task模型中的执行顺序,得到初步runnable模型;
44、以及模型后检模块,至少用于对所述临时task模型进行可调度性后检查,得到最终task模型和最终runnable模型并输出以用于所述系统的实际调度和执行。
45、本发明的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机运行时,执行如上述第一方面中任一项所述的系统调度方法。
46、本发明通过可调度性预检查、runnable到task映射、确定runnable在task中的执行顺序、进行可调度性后检查及参数适配调整,实现了最小化cpu等待时间和计算链时延,显著提升了系统的实时性、可靠性和调度效率。
本文地址:https://www.jishuxx.com/zhuanli/20240730/194377.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表