一种处理器核心的调度方法及系统、设备、存储介质与流程

文档序号:36832590发布日期:2024-01-26 16:47阅读:18来源:国知局
一种处理器核心的调度方法及系统、设备、存储介质与流程

本技术涉及处理器,尤其涉及一种处理器核心的调度方法及系统、设备、存储介质。


背景技术:

1、当前的智能终端设备大多采用多核处理器,不同核心的能效比不同,比如小核功耗小但是性能一般,适合运行低负载任务或者后台任务;大核功耗大但是性能好,适合高负载任务。

2、然而在有些场景下,有些低负载任务也需要在中大核运行以提升性能来满足用户体验要求,比如相机预览、拍照、视频通话等场景,这些场景下的任务负载并不重,因此一般运行在小核,但是当用户对性能要求提高时,小核运行就会造成用户体验不佳。

3、现有技术中通常采用线程绑核技术,把某个场景的相关线程和处理器线程进行绑定,例如将相机预览场景下的线程均绑定到大核。但是这种方法会造成处理器负载过重,无法在系统功耗和性能之间做到平衡。


技术实现思路

1、为了解决上述技术问题,本技术提供一种处理器核心的调度方法及系统、设备、存储介质。

2、具体的,本技术的技术方案如下:

3、第一方面,一种处理器核心的调度方法,应用于操作系统的内核空间,包括:

4、按照配置优先级,获取目标线程的第一调度系数和第二调度系数;

5、遍历所述目标线程的所有备选核心,若所述备选核心的处理能力小于系统上限处理能力,根据备选核心相对于处理所述目标线程的前一核心的处理能力,从所述第一调度系数和所述第二调度系数中选取目标调度系数;

6、根据所述目标调度系数和所述目标线程的负载参数,判断所述备选核心是否满足所述目标线程的处理需求;

7、选取满足所述处理需求的备选核心作为处理所述目标线程的下一核心。

8、在一些实施方式,所述的按照配置优先级,获取第一调度系数和第二调度系数,包括:

9、若所述目标线程已配置向上调度值和/或向下调度值,获取所述目标线程的向上调度值和/或向下调度值作为所述第一调度系数和/或所述第二调度系数;

10、若所述目标线程未配置向上调度值和/或向下调度值,获取所述目标线程所属分组的向上调度值和/或向下调度值作为所述第一调度系数和/或所述第二调度系数。

11、在一些实施方式中,还包括:若所述目标线程未配置向上调度值和/或向下调度值,且所述目标线程所属分组也未配置向上调度值和/或向下调度值,则以系统向上调度值和/或向下调度值作为所述第一调度系数和/或所述第二调度系数。

12、在一些实施方式中,所述的根据备选核心相对于处理所述目标线程的前一核心的处理能力,从所述第一调度系数和所述第二调度系数中选取目标调度系数,包括:

13、若所述前一核心的处理能力小于或等于所述备选核心的处理能力,选取所述第一调度系数作为所述目标调度系数;

14、若所述前一核心的处理能力大于所述备选核心的处理能力,选取所述第二调度系数作为所述目标调度系数。

15、在一些实施方式中,所述的根据所述目标调度系数和所述目标线程的负载参数,判断所述备选核心是否满足所述目标线程的处理需求,包括:

16、按照所述内核空间相对于用户空间的转换比例,对目标调度系数进行转换,得到第三调度系数;

17、若所述第三调度系数和所述目标线程的负载参数满足下列公式,则认为所述备选核心满足所述目标线程的处理需求:

18、capacity(cpu)*capacity(max)>uclamp(p)*margin;

19、其中,capacity(cpu)为所述备选核心的处理能力,capacity(max)为所述系统上限处理能力,uclamp(p)为所述目标线程的负载参数,margin为所述第三调度系数。

20、在一些实施方式中,所述的根据所述目标调度系数和所述目标线程的负载参数,判断所述备选核心是否满足所述目标线程的处理需求之后,包括:

21、若所有备选核心均不满足所述目标线程的处理需求,判断所述前一核心是否位于所述备选核心中;

22、若判断为是,以所述前一核心作为所述下一核心;

23、若判断为否,判断唤醒所述目标线程的核心是否在所述备选核心中;

24、若判断为是,则将唤醒所述目标线程的核心作为所述下一核心;

25、若判断为否,则将调度域中的首个核心作为所述下一核心。

26、第二方面,本技术提供一种处理器核心的调度系统,应用于操作系统的内核空间,包括:

27、获取模块,用于按照配置优先级,获取目标线程的第一调度系数和第二调度系数;

28、第一选取模块,用于遍历所述目标线程的所有备选核心,若所述备选核心的处理能力小于系统上限处理能力,根据备选核心相对于处理所述目标线程的前一核心的处理能力,从所述第一调度系数和所述第二调度系数中选取目标调度系数;

29、判断模块,用于根据所述目标调度系数和所述目标线程的负载参数,判断所述备选核心是否满足所述目标线程的处理需求;

30、第二选取模块,选取满足所述处理需求的备选核心作为处理所述目标线程的下一核心。

31、在一些实施方式中,所述获取模块,用于若所述目标线程已配置向上调度值和/或向下调度值,获取所述目标线程的向上调度值和/或向下调度值作为所述第一调度系数和/或所述第二调度系数;

32、所述获取模块,还用于若所述目标线程未配置向上调度值和/或向下调度值,获取所述目标线程所属分组的向上调度值和/或向下调度值作为所述第一调度系数和/或所述第二调度系数。具体的,设置两层优先级,第一层优先级为线程级别,第二层优先级别为分组级别,提升处理器调度时的精细化程度。

33、在一些实施方式中,所述获取模块,还用于若所述目标线程未配置向上调度值和/或向下调度值,且所述目标线程所属分组也未配置向上调度值和/或向下调度值,则以系统向上调度值和/或向下调度值作为所述第一调度系数和/或所述第二调度系数。除了前述两层优先级以外,以系统控制值作为兜底,在

34、在一些实施方式中,还包括:

35、分组调度模块,位于控制器内,所述分组调度模块向用户空间提供分组配置接口,以便于所述用户空间通过所述分组配置接口,设置各个分组的向上调度值和/或向下调度值;

36、线程调度模块,用于向所述用户空间提供线程配置接口,以便于所述用户空间通过所述线程配置接口,设置各个线程的向上调度值和/或向下调度值。

37、第三方面,本技术提供一种设备,包括如上述任一所述的处理器核心的调度系统。

38、在一些实施方式中,还包括:调整系统,用于根据用户输入的调整指令,将所述设备的处理器调度模式调整至与所述调整指令对应的模式。

39、第四方面,本技术提供一种存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述任一所述的处理器核心的调度方法所执行的操作。

40、与现有技术相比,本技术至少具有以下一项有益效果:

41、(1)本技术能够根据不同用户场景的需求,进行处理器核心动态调度,相比于静态的绑核技术,调度方式更加灵活,有利于避免处理器负载过重的情况。

42、(2)本技术基于调度系数进行处理器核心调度,实现线程级别的调度系数配置,能够根据用户场景的需求提供更加精细化的调度。

43、(3)本技术在负载参数的基础上叠加调度系数,以此作为选核依据,相比于直接调整负载参数的方式,有利于减少系统功耗。

44、(4)本技术对内核空间中进程组控制器(cgroup)中cpu子系统的功能进行拓展,在其中增加调度系数配置功能,从而能够对进程组进行参数配置,实现进程组级别的处理器核心调度。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1