一种基于微内核的负载均衡方法和装置与流程

文档序号:36489863发布日期:2023-12-26 16:32阅读:42来源:国知局
一种基于微内核的负载均衡方法和装置与流程

本发明涉及操作系统,尤其涉及一种基于微内核的负载均衡方法和装置。


背景技术:

1、随着处理器技术的不断发展,越来越多的应用场景选择采用多核嵌入式soc芯片作为硬件平台。

2、操作系统初始化完成后,内核通过任务管理模块将任务分配到各个核心上运行。调度机制是关乎全局的设计,调度机制主要有三种方式,分别是全局调度、局部调度和混合调度。

3、全局调度方式,是将所有等待核心资源的就绪任务都存放在同一个按照优先级排序的队列中,每次出现空闲的核心资源时,调度程序会选取队列中优先级最高的就绪任务,并将它调度到空闲的核心上去执行。但全局调度方式缓存命中率较低,任务执行效率较低。局部调度方式,是每个核心都有对应的任务就绪队列,且只能运行存放在该队列中的任务;而对于任务来说,一旦被分配到了某个核心,那么它之后就只能在这个核心上运行,直至退出。混合调度方式则吸收了全局调度和局部调度的优势,将所有核心作为一个调度簇(schedule cluster),在簇内使用全局调度,所有任务都存放在一个就绪队列中。

4、局部调度方式和混合调度方式均存在核心任务分布不均衡的现象,容易出现负载不均衡的场景。并且,混合调度方式设计较复杂,维护成本高。


技术实现思路

1、本发明旨在至少解决现有技术中存在的技术问题,为此,本发明第一方面提出一种基于微内核的负载均衡方法,应用于微内核操作系统中的内核调度器,所述微内核操作系统包括多个簇,每个簇中包括多个核心,所述内核调度器部署于第一簇的目标核心中,所述方法包括:

2、获取当前微内核操作系统中,除所述目标核心外,其余核心的负载;

3、以所述簇为单位,对各个所述簇中的所述核心按照所述负载进行排序;

4、根据所述负载确定各个所述核心是否触发对应的负载均衡门限;

5、当同一个簇中,负载最重的第一核心触发所述负载均衡门限、且负载最轻的第二核心未触发所述负载均衡门限时,对所述第一核心中消耗时间片最小的第一任务执行第一调度操作,所述第一调度操作包括同簇负载均衡操作或跨簇负载均衡操作;

6、当同一个簇中,所述负载最重的第一核心和所述负载最轻的第二核心均触发所述负载均衡门限时,对所述第一核心中消耗时间片最小的第一任务执行跨簇负载均衡操作。

7、可选的,所述根据所述负载确定各个所述核心是否触发对应的负载均衡门限,包括:

8、获取所述核心的预设平均有效负载;

9、当所述核心的负载大于所述平均有效负载时,确定所述核心的负载与所述平均有效负载的差值;

10、当所述差值与所述平均有效负载的商大于或等于预设的负载均衡比例时,确定所述核心触发对应的负载均衡门限;所述负载均衡比例为预设比例值。

11、可选的,所述执行第一调度操作,包括:

12、当所述第二核心的负载为0时,将所述第一核心中消耗时间片最小的第一任务切换至所述第二核心;

13、当所述第二核心的负载不为0、且未触发所述负载均衡门限时,确定将所述第一任务切换至所述第二核心后,所述第二核心的预期任务负载;

14、若所述第二核心的预期任务负载小于所述第一核心的任务负载,则将所述第一任务切换至所述第二核心;

15、若所述第二核心的预期任务负载大于或等于所述第一核心的任务负载,则执行跨域负载均衡操作。

16、可选的,所述执行跨簇负载均衡操作,包括:

17、筛选出各个所述簇中负载最小的核心,或,从当前时刻开始在最短时间内负载为0的核心,得到第三核心;

18、当所述第三核心的负载为0时,将所述第一核心中消耗时间片最小的第一任务切换至所述第三核心;

19、当所述第三核心的负载不为0、且未触发所述负载均衡门限时,确定将所述第一任务切换至所述第三核心后,所述第三核心的预期任务负载;

20、确定将所述第一任务切换至所述第三核心所需的跨域调度时间;

21、基于所述第三核心的预期任务负载和所述跨域调度时间,确定所述第一任务的切换方式。

22、可选的,所述基于所述第三核心的预期任务负载和所述跨域调度时间,确定所述第一任务的切换方式,包括:

23、确定所述第一任务的负载和所述第三核心的当前负载的和,得到所述第三核心的预期任务负载;

24、确定所述跨域调度时间和所述预期任务负载的和,得到目标和;

25、若所述目标和小于所述第一核心的任务负载,则将所述第一任务切换至所述第三核心。

26、可选的,在获取当前微内核操作系统中,除所述目标核心外,其余核心的负载之前,还包括:

27、当所述微内核操作系统中有新任务创建时,获取当前微内核操作系统中,除所述目标核心外,其余核心的负载;

28、以所述簇为单位,对各个所述簇中的所述核心按照所述负载进行排序;

29、将所述新任务分配至负载最轻的核心,或,从当前时刻开始在最短时间内负载为0的核心。

30、可选的,在执行第一调度操作或执行跨簇负载均衡操作之后,还包括:

31、重置用于计时负载调整周期的计时器。

32、本发明第二方面提出一种基于微内核的负载均衡装置,应用于微内核操作系统中的内核调度器,所述微内核操作系统包括多个簇,每个簇中包括多个核心,所述内核调度器部署于第一簇的目标核心中,所述装置包括:

33、负载获取模块,用于获取当前微内核操作系统中,除所述目标核心外,其余核心的负载;

34、排序模块,用于以所述簇为单位,对各个所述簇中的所述核心按照所述负载进行排序;

35、触发确定模块,用于根据所述负载确定各个所述核心是否触发对应的负载均衡门限;

36、第一调度模块,用于当同一个簇中,负载最重的第一核心触发所述负载均衡门限、且负载最轻的第二核心未触发所述负载均衡门限时,对所述第一核心中消耗时间片最小的第一任务执行第一调度操作,所述第一调度操作包括同簇负载均衡操作或跨簇负载均衡操作;

37、跨域调度模块,用于当同一个簇中,所述负载最重的第一核心和所述负载最轻的第二核心均触发所述负载均衡门限时,对所述第一核心中消耗时间片最小的第一任务执行跨簇负载均衡操作。

38、本发明第三方面提出一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的基于微内核的负载均衡方法。

39、本发明第四方面提出一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的基于微内核的负载均衡方法。

40、本发明实施例具有以下有益效果:

41、本发明实施例提供的基于微内核的负载均衡方法,获取当前微内核操作系统中,除所述目标核心外,其余核心的负载;以所述簇为单位,对各个所述簇中的所述核心按照所述负载进行排序;根据所述负载确定各个所述核心是否触发对应的负载均衡门限;当同一个簇中,负载最重的第一核心触发所述负载均衡门限、且负载最轻的第二核心未触发所述负载均衡门限时,执行第一调度操作,所述第一调度操作包括同簇负载均衡操作或跨簇负载均衡操作;当同一个簇中,所述负载最重的第一核心和所述负载最轻的第二核心均触发所述负载均衡门限时,执行跨簇负载均衡操作。本方案通过同簇负载均衡操作和跨簇负载均衡操作,使得各个内核能够维持负载均衡,不需要因为长时间等待造成任务缓存被置换到下一级低速存储空间,进而提高了缓存命中率,并且,由于整体设计简单明了,降低了维护成本。

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