CN107463442B - 一种星载多核SoC任务级负载均衡并行调度方法 - Google Patents
一种星载多核SoC任务级负载均衡并行调度方法 Download PDFInfo
- Publication number
- CN107463442B CN107463442B CN201710566062.2A CN201710566062A CN107463442B CN 107463442 B CN107463442 B CN 107463442B CN 201710566062 A CN201710566062 A CN 201710566062A CN 107463442 B CN107463442 B CN 107463442B
- Authority
- CN
- China
- Prior art keywords
- task
- core
- processor
- scheduling
- global
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Radio Relay Systems (AREA)
- Multi Processors (AREA)
Abstract
本发明提出了一种星载多核SoC任务级负载均衡并行调度方法,步骤如下:将多核任务控制块TCB作为节点构建全局任务调度队列;调度器模块初始化时创建4个优先级最低的空闲任务,并加入全局任务调度队列OSTaskRdyList;多核SoC系统的多个处理器核并行运行调度器模块;调度器模块采用自旋锁访问全局任务调度队列OSTaskRdyList,从全局任务调度队列OSTaskRdyList中取得当前优先级最高的任务T1;调度器模块查找空闲的处理器核或者运行最低优先级任务的处理器核,把优先级最高的任务调度到该处理器核上。本发明解决了多任务在多核SoC上均衡分配和并行运行的问题,大幅度提高了多核SoC的计算和处理效率。
Description
技术领域
本发明属于多核并行高性能操作系统软件领域,尤其涉及一种星载多核SoC任务级负载均衡并行调度方法。
背景技术
随着航天器功能日趋复杂,世界各国都采用多核处理器或片上系统(SoC,Systemon Chip)实现高性能和实时计算。为了充分多核SoC计算性能,需要在操作系统层次上支持多核并行任务调度,并实现多核间的负载平衡。
传统航天器处理器采用单核结构,操作系统基于单核实现多任务调度,基于单核处理器的多任务是一种宏观上的并发微观上的并行模式。针对多核SoC2012,需要实现一种多核SoC的并行多任务调度方法,以便达到充分利用处理器资源的目的。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提出一种星载多核SoC任务级负载均衡并行调度方法方法,解决了多任务在多核SoC上均衡分配和并行运行的问题,大幅度提高了多核SoC的计算和处理效率。
本发明的技术方案是:一种星载多核SoC任务级负载均衡并行调度方法,该方法包括如下步骤:
(1)将多核任务控制块TCB作为节点构建全局任务调度队列;其中,多核任务控制块TCB中的处理器号CPU_ID数据域用于多核并行调度,多核任务控制块TCB中的自旋锁SpinLock数据域用于任务自身相关的互斥访问;
(2)调度器模块初始化时创建4个优先级最低的空闲任务,并加入全局任务调度队列OSTaskRdyList;
(3)多核SoC系统的多个处理器核并行运行调度器模块;
(4)调度器模块采用自旋锁访问全局任务调度队列OSTaskRdyList,从全局任务调度队列OSTaskRdyList中取得当前优先级最高的任务T1;
(4-1)判断当前优先级最高的任务T1是否为就绪态;
(4-2)如果该任务状态是就绪态则执行步骤(5);
(4-3)如果该任务状态未就绪则从全局任务调度队列OSTaskRdyList中取得除T1外的优先级最高任务,然后执行步骤(4-1);
(5)调度器模块查找空闲的处理器核或者运行最低优先级任务的处理器核,把步骤(4-2)中优先级最高的任务调度到该处理器核上。
上述星载多核SoC任务级负载均衡并行调度方法中,在所述步骤(4)中,自旋锁访问包括首先通过自旋锁SpinLock数据域申请访问权限,然后进行读写访问,完成访问后,释放自旋锁SpinLock。
上述星载多核SoC任务级负载均衡并行调度方法中,在所述步骤(5)中,调度器模块查找空闲的处理器核或者运行最低优先级任务的处理器核并把步骤(4-2)中优先级最高的任务调度到该处理器核上包括:调度器模块查找多核SoC系统中是否有空闲处理器核,如果有则把步骤(4-2)中优先级最高的任务调度到该处理器核上;如果没有则查找运行最低优先级任务的处理器核,并把优先级最高任务调度到该处理器核上。
上述星载多核SoC任务级负载均衡并行调度方法中,在步骤(3)中,所述多核SoC系统包括存储器和四个处理器核;其中,四个处理器核组成对称多处理结构,四个处理器核并行运行;全局任务调度队列OSTaskRdyList存储在存储器中。
本发明与现有技术相比的优点在于:本发明在空间应用领域,首次针对多核SoC或处理器实现了任务级负载均衡的并行任务调度,适用于航天器嵌入式高实时性系统,能够充分发挥多核SoC或处理器的性能。此外,本发明具备以下优点:
(1)采用全局队列调度模式,有效避免多核并行环境下任务控制块及其状态可能出现的不一致性。
(2)多核同时运行调度算法,相对比主核调度策略,本方法提高了系统的可靠性,避免了主核失效情况下导致整个多核处理器失效的情况,实现了多核SoC的软件容错。
(3)采用多任务多核的二维调度模式,能够实现任务核间迁移,从而保证最高优先级的任务总能够在多核上最先执行。
附图说明
图1为本发明的星载多核SoC任务级负载均衡并行调度结构图;
图2为本发明的多核SoC的多任务多核二维调度模式;
图3为本发明的星载多核SoC任务级负载均衡并行调度方法的流程图。
具体实施方式
为充分发挥星载多核SoC的计算性能、实现星载多核并行和容错嵌入式操作系统任务调度,本发明提出了一种星载多核SoC任务级负载均衡并行调度方法。
本实施例采用全局任务调度队列,而多处理器核独立运行调度算法;在调度过程中,每个处理器核采用自旋锁对全局任务调度队列进行互斥访问,从而保证全局任务调度队列数据的一致性和完整性;调度算法采用二维调度模式,即首先选择最高优先级任务作为将要被调度的任务,然后选择空闲的或者运行最低优先级任务的处理器核作为将要运行被调度任务的处理器核。
由于采用每个处理器核独立运行调度算法的分离调度模式,避免了主处理器核统一调度模式中主核失效情况下导致整个多核SoC失效的情况,提高了系统的容错性;由于每个处理器核单独运行调度算法,没有主处理器核的主控算法,降低了操作系统从单核到多核开发的难度。
本实施例针对四核SoC2012进行实现,该SoC是由四个处理器核组成的对称多处理(SMP,Symmetric Multi-Processing)结构,四个处理器核并行运行,每个处理器核具有各自的指令和数据Cache、共享存储器以及总线上的各种外设。需要理解的是,适用的核数可以根据需要进行设置,本实施例中以四核为例。
针对四核SoC2012中每个处理器核并行运行且共享存储器的特点,本实施例设计了自旋锁用于对存储器的互斥访问,采用全局任务调度队列以及每个处理器核分别运行调度算法的方案实现星载多核SoC任务级负载均衡并行调度方法,能够实现多个处理器核上任务级别的负载平衡,即任务在多个处理器核上的平均分配,从而达到充分利用多核处理器或SoC计算资源的目的,实现卫星上实时的高性能计算。本实施例的总体方案如图1所示。
(1)将多核任务控制块TCB(Task Control Block)作为节点构建全局任务调度队列;其中,多核任务控制块TCB中的处理器号CPU_ID数据域用于多核并行调度,多核任务控制块TCB中的自旋锁SpinLock数据域用于任务自身相关的互斥访问。全局任务调度队列是一个多维队列,相同优先级的就绪任务组成一维队列,M个优先级则组成M维的全局任务调度队列,以便于高效地查找整个全局任务调度队列中优先级最高的任务。
全局任务调度队列中TCB的关键数据结构如下:
实现自旋锁的主要流程如下:
(2)调度器模块初始化时创建4个优先级最低的空闲任务,并加入全局任务调度队列OSTaskRdyList,4个空闲任务在系统中没有其他任务时,被分别调度到多核SoC的四个处理器核上。
(3)完成初始化后,多核SoC2012的4个处理器核分别运行,4个处理器核独立并行的运行调度器模块;在步骤(3)中,多核SoC系统包括存储器和四个处理器核;其中,四个处理器核组成对称多处理结构,四个处理器核并行运行;全局任务调度队列OSTaskRdyList存储在存储器中。
(4)调度器模块采用二维调度模式,如图2所示,并行调度的流程图如图3所示。第一维是高优先级任务选择算法,调度器模块采用自旋锁访问全局任务调度队列OSTaskRdyList,从全局任务调度队列OSTaskRdyList中取得当前优先级最高的任务T1;其中,自旋锁访问包括首先通过自旋锁SpinLock数据域申请访问权限,然后进行读写访问,完成访问后,释放自旋锁SpinLock;
(4-1)判断当前优先级最高的任务T1是否为就绪态
(4-2)如果该任务状态是就绪态则执行步骤(5);
(4-3)如果该任务状态未就绪则从全局任务调度队列OSTaskRdyList中取得除T1外的优先级最高任务,然后执行步骤(4-1);
(5)第二维是处理器核选择算法,即调度器模块查找多核SoC中是否有空闲处理器核,如果有则把步骤(4-2)中优先级最高的任务调度到该处理器核上;如果没有则查找运行最低优先级任务的处理器核,并把步骤(4-2)中优先级最高的任务调度到该处理器核上。
本发明在空间应用领域,首次针对多核SoC或处理器实现了任务级负载均衡的并行任务调度,适用于航天器嵌入式高实时性系统,能够充分发挥多核SoC或处理器的性能。此外,本专利方法具备以下优点:采用全局队列调度模式,有效避免多核并行环境下任务控制块及其状态可能出现的不一致性;多核同时运行调度算法,相对比主核调度策略,本方法提高了系统的可靠性,避免了主核失效情况下导致整个多核处理器失效的情况,实现了多核SoC的软件容错;采用多任务多核的二维调度模式,能够实现任务核间迁移,从而保证最高优先级的任务总能够在多核上最先执行。
以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (1)
1.一种星载多核SoC任务级负载均衡并行调度方法,其特征在于,所述方法包括如下步骤:
(1)将多核任务控制块TCB作为节点构建全局任务调度队列;其中,多核任务控制块TCB中的处理器号CPU_ID数据域用于多核并行调度,多核任务控制块TCB中的自旋锁SpinLock数据域用于任务自身相关的互斥访问;
(2)调度器模块初始化时创建4个优先级最低的空闲任务,并加入全局任务调度队列OSTaskRdyList;
(3)多核SoC系统的多个处理器核并行运行调度器模块;
(4)调度器模块采用自旋锁访问全局任务调度队列OSTaskRdyList,从全局任务调度队列OSTaskRdyList中取得当前优先级最高的任务T1;
(4-1)判断当前优先级最高的任务T1是否为就绪态;
(4-2)如果该任务状态是就绪态则执行步骤(5);
(4-3)如果该任务状态未就绪则从全局任务调度队列OSTaskRdyList中取得除T1外的优先级最高任务,然后执行步骤(4-1);
(5)调度器模块查找空闲的处理器核或者运行最低优先级任务的处理器核,把步骤(4-2)中优先级最高的任务调度到该处理器核上;
在所述步骤(4)中,自旋锁访问包括首先通过自旋锁SpinLock数据域申请访问权限,然后进行读写访问,完成访问后,释放自旋锁SpinLock;
在所述步骤(5)中,调度器模块查找空闲的处理器核或者运行最低优先级任务的处理器核并把步骤(4-2)中优先级最高的任务调度到该处理器核上包括:调度器模块查找多核SoC系统中是否有空闲处理器核,如果有则把步骤(4-2)中优先级最高的任务调度到该处理器核上;如果没有则查找运行最低优先级任务的处理器核,并把优先级最高任务调度到该处理器核上;
在步骤(3)中,所述多核SoC系统包括存储器和四个处理器核;其中,
四个处理器核组成对称多处理结构,四个处理器核并行运行;
全局任务调度队列OSTaskRdyList存储在存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710566062.2A CN107463442B (zh) | 2017-07-12 | 2017-07-12 | 一种星载多核SoC任务级负载均衡并行调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710566062.2A CN107463442B (zh) | 2017-07-12 | 2017-07-12 | 一种星载多核SoC任务级负载均衡并行调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107463442A CN107463442A (zh) | 2017-12-12 |
CN107463442B true CN107463442B (zh) | 2020-09-18 |
Family
ID=60543986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710566062.2A Active CN107463442B (zh) | 2017-07-12 | 2017-07-12 | 一种星载多核SoC任务级负载均衡并行调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107463442B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109581925A (zh) * | 2018-12-05 | 2019-04-05 | 北京和利时系统工程有限公司 | 一种任务处理方法及装置、计算机可读存储介质 |
CN110009259B (zh) * | 2019-04-18 | 2023-04-07 | 天津工业大学 | 一种应用于双向路径下柔性制造车间的多agv调度方法 |
CN110806938B (zh) * | 2019-10-21 | 2022-06-07 | 中国人民解放军国防科技大学 | 面向多核处理器的自适应容错数据并行计算实现方法 |
CN114880075B (zh) * | 2022-05-11 | 2023-01-06 | 科东(广州)软件科技有限公司 | 一种用户态虚拟机虚拟核间任务的调度方法及装置 |
CN115098258B (zh) * | 2022-06-23 | 2022-12-23 | 云南大学 | 基于多核堆栈处理器的Forth多任务调度方法及装置 |
CN117076145B (zh) * | 2023-08-22 | 2024-02-23 | 电子科技大学 | 一种基于细粒度读写锁的安全高效stm同步方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0519981D0 (en) * | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
CN103729480B (zh) * | 2014-01-29 | 2017-02-01 | 重庆邮电大学 | 一种多核实时操作系统多个就绪任务快速查找及调度方法 |
CN104063295B (zh) * | 2014-06-26 | 2016-08-24 | 北京控制工程研究所 | 一种多核操作系统可重构容错启动方法 |
CN105204952B (zh) * | 2015-08-21 | 2018-03-09 | 北京控制工程研究所 | 一种多核操作系统容错管理方法 |
-
2017
- 2017-07-12 CN CN201710566062.2A patent/CN107463442B/zh active Active
Non-Patent Citations (1)
Title |
---|
支持多核处理器的星载嵌入式操作系统的研究与实现;诸利勇;《中国优秀硕士学位论文全文数据库 信息科技辑》;20100515(第05期);I138-527 * |
Also Published As
Publication number | Publication date |
---|---|
CN107463442A (zh) | 2017-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107463442B (zh) | 一种星载多核SoC任务级负载均衡并行调度方法 | |
KR102600852B1 (ko) | 이종 cpu/gpu 시스템에서 데이터 흐름 신호 처리 애플리케이션 가속화 | |
US8914805B2 (en) | Rescheduling workload in a hybrid computing environment | |
Polo et al. | Performance management of accelerated mapreduce workloads in heterogeneous clusters | |
US8739171B2 (en) | High-throughput-computing in a hybrid computing environment | |
US20140130057A1 (en) | Scheduling jobs in a cluster | |
EP3226133A1 (en) | Task scheduling and resource provisioning system and method | |
Awatramani et al. | Increasing GPU throughput using kernel interleaved thread block scheduling | |
EP3422183B1 (en) | Managing parallel processing | |
Li et al. | Efficient algorithms for task mapping on heterogeneous CPU/GPU platforms for fast completion time | |
Hu et al. | GPGPU cloud: A paradigm for general purpose computing | |
Thomadakis et al. | Toward runtime support for unstructured and dynamic exascale-era applications | |
US20080134187A1 (en) | Hardware scheduled smp architectures | |
Peterson et al. | Reducing overhead in the uintah framework to support short-lived tasks on gpu-heterogeneous architectures | |
Ottaviano et al. | ControlPULP: a RISC-V power controller for HPC processors with parallel control-law computation acceleration | |
Zhang et al. | Workload-balancing schedule with adaptive architecture of MPSoCs for fault tolerance | |
Qu et al. | Improving the energy efficiency and performance of data-intensive workflows in virtualized clouds | |
Czarnul | A multithreaded CUDA and OpenMP based power‐aware programming framework for multi‐node GPU systems | |
Papadopoulos et al. | Performance and power consumption evaluation of concurrent queue implementations in embedded systems | |
Pavlidakis et al. | Arax: a runtime framework for decoupling applications from heterogeneous accelerators | |
Singla et al. | Task Scheduling Algorithms for Grid Computing with Static Jobs: A Review | |
Tarakji et al. | Os support for load scheduling on accelerator-based heterogeneous systems | |
Perarnau et al. | Argo | |
Akram et al. | Real‐time partitioned scheduling: Exploiting the inter‐resource affinity for task allocation on multiprocessors | |
He | Scheduling in Mapreduce Clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |