CN107515781A - 一种多处理器系统确定性调度和负载均衡方法 - Google Patents
一种多处理器系统确定性调度和负载均衡方法 Download PDFInfo
- Publication number
- CN107515781A CN107515781A CN201710593976.8A CN201710593976A CN107515781A CN 107515781 A CN107515781 A CN 107515781A CN 201710593976 A CN201710593976 A CN 201710593976A CN 107515781 A CN107515781 A CN 107515781A
- Authority
- CN
- China
- Prior art keywords
- task
- processor
- message queue
- queue
- priority
- 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.)
- Granted
Links
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明提出了一种面向多处理器的确定性调度及负载平衡方法,包括确定性调度模块,任务消息队列存储器,负载均衡模块。本发明可用于在多处理器系统中对任务进行确定性调度和负载平衡,防止因为进程调度不确定性而带来的访存冲突和运算错误。解决现有多处理器系统的任务分配效率低下和不具备确定性的问题,通过设置进程记录器对进程ID进行记录和管理,以及和内存隔离的备份内存空间建立联系的方式避免出现访存冲突,从而实现确定性调度。同时针对固定处理器分配方法效率低下,可能出现的空闲和阻塞问题进行了优化,采用公用消息队列的方法根据任务数量和优先级按照分配算法对处理器进行分配。
Description
技术领域
本发明应用于多处理器系统的进程确定性调度及处理器负载均衡。
背景技术
进程确定性及负载均衡技术是多处理器系统和平台所必需的,为保障所有处理器在访问内存时不会出现访问内存的冲突,导致内存中的数据被篡改,影响进程正常的运行,多处理器系统调度进程时必须保证具有确定性;所谓确定性,是指系统多次运行进程能够得到一个确定的结果,且该结果是可以预知的;当多处理器系统在调度进程时需要按照具有确定性的方法进行调度,来保证系统运行的结果是可靠的;确定性又有强确定性和弱确定性之分,系统的不确定性因素也有很多,包括:在多线程并行中,不确定性因素是线程对与共享内存的竞争访问;在多进程程序中,进程之间的交互也会引发不确定性,同是程序中还可能存在其他一些能够引起不确定的操作,例如系统对rand()函数的调用。
近些年来,随着人们对于计算需求的迫切增长,多处理器系统已经非常普遍;由于多处理器具有很强的硬件运算能力,因此普遍应用在各种类型的计算机、嵌入式系统和各种移动设备中;然而,由于具有多个处理器,系统在任务时如果不能将任务合理分配,就会出现某些处理器任务数量过载而有些处理器处于空闲状态,也就是负载不均衡状态;这样会使系统的效率下降而且存在硬件上的浪费,因此在多处理器系统上,负载均衡技术十分重要,合理的应用这项技术能够让系统获得客观的性能提升。
发明内容
基于背景技术存在的技术问题,本发明提出了一种多处理器确定性调度和负载均衡方法。
本发明提出的一种多处理器确定性调度和负载均衡方法,所述系统包括确定性调度模块,任务消息队列存储器,负载均衡模块。
优选地,确定性调度模块用于对等待的任务按照满足确定性的原则进行调度。
优选地,任务消息队列用于管理等待处理的任务,并按照调度算法给处理器提供任务。
优选地。负载均衡模块用于均衡各个处理器的任务,负责在各个处理器之间均衡任务数量。
本发明中,任务消息队列在任务和处理器之间建立联系,本发明为处理器分组,每个组配备一个消息队列,若一个消息队列的任务数超过全部消息队列任务平均数20%,就启动负载均衡策略将该组任务分配给所有任务数组中任务数量最少的那一组;对任务进行确定性调度主要在于将每次调度的进程ID进行记录,使后面的进程在调度时按照之前记录的相对顺序进行调度,达到确定性调度的目的。
附图说明
图1为本发明提出的一种确定性调度和负载均衡示意图。
具体实施方式
下面结合具体实施例对本发明作进一步解说。
实施例
参考图1,本实施例提出了一种多处理器的确定性调度和负载均衡方法。通过设置进程记录器对进程ID进行记录和管理,以及和内存隔离的备份内存空间建立联系的方式避免出现访存冲突,从而实现确定性调度。同时针对固定处理器分配方法效率低下,可能出现的空闲和阻塞问题进行了优化,采用公用消息队列的方法根据任务数量和优先级按照分配算法对处理器进行分配。等待队列将任务发送到确定性调度模块,按照满足确定性的方式将任务调度,并传送到负载均衡模块,该模块根据当前各个任务队列中的任务数对任务进行均衡的分配,然后等待任务被处理器响应,处理完毕后传送到完成队列。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种多处理器系统的任务确定性,其特征在于:能够在多处理器系统下保证任务调度的确定性,以及根据任务数量和优先级进行负载均衡,从而提高系统效率。所述系统包括确定性调度模块,任务消息队列存储器,负载均衡模块。
确定性调度模块,用于在多处理器系统中,记录进程访问主存的顺序和相关消息,保证任务调度的结果具有确定性;
任务消息队列模块,按照任务的优先级进行分类并分别分配对应的消息队列存储区,相应优先级任务在对应的消息队列等待,防止低优先级的任务抢占高优先级的处理资源或者高优先级的任务迟迟得不到处理,降低系统效率;
负载平衡模块,用于根据各个消息队列中的任务数量按照算法对处理器进行分配,设置时间等待因子λ,当队列中有任务的等待时间超过该队列中所有任务的平均等待时间Т的一定限度(1+λ)Т,可以认为当前处理器分配方式负载不平衡,从而开启处理器分配模块进行分配。处理器分配在消息队列层面,避免任务在分配过程中直接与处理器相关,方便记录任务处理的顺序从而保证任务调度的确定性。
2.根据1所述的应用于多处理器系统的确定性任务调度及负载平衡系统。其特征在于,所述确定性调度模块;
由于系统中存在多个处理器,各个处理器共享一块内存,在进行内存读写操作时出现的内存冲突时系统不确定性的主要来源;
在进行确定性任务调度时,系统设置专门进程记录存储,对每个任务获得处理的顺序和时间进行记录,并写入对应模块的内存备份上,完成内存隔离的备份写入,所述方法包括如下步骤:
步骤1:扫描系统全部进程,按照优先级分类;
步骤2:将任务分配到对应优先级的消息队列等待处理器响应,同时将已经分配的进程信息记录到存储器;
步骤3:系统根据进程在队列中的排队时间和占用处理器时间对优先级进行重新评估;
步骤4:若进程的优先级出现变化则将其顺序调整到队列尾部,转步骤2;
步骤5:处理器采用时间片轮转方式对队列中的消息进行处理,并将相应的访存任务记录到存储器;
步骤6:按照存储器记录的顺序将备份写入内存。
3.根据1所述的应用于多处理器系统的确定性任务调度及处理器分配系统。其特征在于任务分配和任务与处理器之间的联系全部在消息队列中进行。
消息队列作为任务等待处理器响应的接口,可以看作是中间介质,是系统中联系任务和处理器的桥梁,因此设置专用的物理存储区。采用这种方式的主要原因是避免任务和处理器产生之间联系,在多处理器系统中,任务和处理器之间难以保证一个相对稳定的联系,这让系统对进程信息的记录产生了很大困难,让任务全都在对应优先级的消息队列中等待处理,可以建立任务与消息队列的一对一关系,记录任务在队列中获得处理器响应的时间和顺序,保证系统的确定性调度。消息队列是系统中被访问次数最多的部件之一,对消息队列按照计算机存储结构在每一层存储中建立专门存储区可以优化处理器访问消息队列的速度,有助于提升系统的性能。
4.根据1所述的应用于多处理器系统的确定性任务调度及处理器分配系统。其特征在于根据任务数量和优先级进行的负载平衡分配方式,其中包括消息队列、队列进程数值计算模块、等待时间因子λ、计时器、分配评估模块,其步骤如下:
步骤1:对全部消息队列进行扫描,获取等待处理的进程信息;
步骤2:按照进程的数量和优先级建立具体数值评价;
步骤3:根据每个消息队列的数值按照轮盘赌方式根据所占比例分配处理器;
步骤4:对消息队列中的进程等待时间进行记录,计算该队列的平均等待时间Т;
步骤5:当有进程的等待时间达到(1+λ)Т时,为该队列数值增加该队列优先级w的1+λ既(1+λ)w,更新数值,跳转步骤3;
步骤6:当有消息队列的处于等待状态进程数量达到当全部等待状态进程50%时,对该组进程的优先级进行重新评估,跳转步骤3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710593976.8A CN107515781B (zh) | 2017-07-20 | 2017-07-20 | 一种基于多处理器的确定性任务调度及负载均衡系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710593976.8A CN107515781B (zh) | 2017-07-20 | 2017-07-20 | 一种基于多处理器的确定性任务调度及负载均衡系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107515781A true CN107515781A (zh) | 2017-12-26 |
CN107515781B CN107515781B (zh) | 2020-07-07 |
Family
ID=60721838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710593976.8A Active CN107515781B (zh) | 2017-07-20 | 2017-07-20 | 一种基于多处理器的确定性任务调度及负载均衡系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107515781B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471734A (zh) * | 2018-10-27 | 2019-03-15 | 哈尔滨工业大学(威海) | 一种新型缓存优化多线程确定性方法 |
CN109889455A (zh) * | 2019-02-15 | 2019-06-14 | 浙江吉利汽车研究院有限公司 | 一种实时消息处理装置 |
CN109981473A (zh) * | 2019-02-15 | 2019-07-05 | 浙江吉利汽车研究院有限公司 | 一种实时消息总线系统 |
CN110502347A (zh) * | 2019-08-28 | 2019-11-26 | 中国银行股份有限公司 | 任务负载调度方法及装置 |
WO2022043812A1 (en) * | 2020-08-26 | 2022-03-03 | International Business Machines Corporation | Storage level load balancing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458634A (zh) * | 2008-01-22 | 2009-06-17 | 中兴通讯股份有限公司 | 负载均衡调度方法和装置 |
CN102104487A (zh) * | 2009-12-21 | 2011-06-22 | 上海贝尔股份有限公司 | 一种消息处理方法及其设备 |
CN102739781A (zh) * | 2012-06-13 | 2012-10-17 | 苏州阔地网络科技有限公司 | 一种消息的批量调度方法及系统 |
-
2017
- 2017-07-20 CN CN201710593976.8A patent/CN107515781B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458634A (zh) * | 2008-01-22 | 2009-06-17 | 中兴通讯股份有限公司 | 负载均衡调度方法和装置 |
CN102104487A (zh) * | 2009-12-21 | 2011-06-22 | 上海贝尔股份有限公司 | 一种消息处理方法及其设备 |
CN102739781A (zh) * | 2012-06-13 | 2012-10-17 | 苏州阔地网络科技有限公司 | 一种消息的批量调度方法及系统 |
Non-Patent Citations (1)
Title |
---|
刘鸽: "基于多分区操作系统的多核确定性调度方法设计", 《航空计算技术》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471734A (zh) * | 2018-10-27 | 2019-03-15 | 哈尔滨工业大学(威海) | 一种新型缓存优化多线程确定性方法 |
CN109889455A (zh) * | 2019-02-15 | 2019-06-14 | 浙江吉利汽车研究院有限公司 | 一种实时消息处理装置 |
CN109981473A (zh) * | 2019-02-15 | 2019-07-05 | 浙江吉利汽车研究院有限公司 | 一种实时消息总线系统 |
CN109889455B (zh) * | 2019-02-15 | 2020-09-11 | 浙江吉利汽车研究院有限公司 | 一种实时消息处理装置 |
CN110502347A (zh) * | 2019-08-28 | 2019-11-26 | 中国银行股份有限公司 | 任务负载调度方法及装置 |
CN110502347B (zh) * | 2019-08-28 | 2022-05-27 | 中国银行股份有限公司 | 任务负载调度方法及装置 |
WO2022043812A1 (en) * | 2020-08-26 | 2022-03-03 | International Business Machines Corporation | Storage level load balancing |
US11379269B2 (en) | 2020-08-26 | 2022-07-05 | International Business Machines Corporation | Load balancing based on utilization percentage of CPU cores |
GB2613125A (en) * | 2020-08-26 | 2023-05-24 | Ibm | Storage level load balancing |
Also Published As
Publication number | Publication date |
---|---|
CN107515781B (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107515781A (zh) | 一种多处理器系统确定性调度和负载均衡方法 | |
US8424007B1 (en) | Prioritizing tasks from virtual machines | |
CN102193853B (zh) | 虚拟机监控器及其调度方法 | |
US5884077A (en) | Information processing system and method in which computer with high load borrows processor of computer with low load to execute process | |
US9442760B2 (en) | Job scheduling using expected server performance information | |
US9389995B2 (en) | Optimization of Map-Reduce shuffle performance through snuffler I/O pipeline actions and planning | |
US20190220319A1 (en) | Usage instrumented workload scheduling | |
US9448864B2 (en) | Method and apparatus for processing message between processors | |
US11188392B2 (en) | Scheduling system for computational work on heterogeneous hardware | |
US8739171B2 (en) | High-throughput-computing in a hybrid computing environment | |
US20120054771A1 (en) | Rescheduling workload in a hybrid computing environment | |
CN102541460B (zh) | 一种多磁盘场景下的磁盘管理方法和设备 | |
Wang et al. | Pigeon: An effective distributed, hierarchical datacenter job scheduler | |
US20110302586A1 (en) | Multithread application-aware memory scheduling scheme for multi-core processors | |
CN107515784B (zh) | 一种在分布式系统中计算资源的方法与设备 | |
US8042119B2 (en) | States matrix for workload management simplification | |
CN104040486A (zh) | 解耦paas资源、作业和调度 | |
CN101946235A (zh) | 用于在共享处理器分区环境中移动线程的方法及装置 | |
EP2391943B1 (en) | Allocation of processing tasks | |
CN107273200B (zh) | 一种针对异构存储的任务调度方法 | |
CN1975655B (zh) | 用于管理对存储装置的访问的方法和设备 | |
US9507633B2 (en) | Scheduling method and system | |
Gandomi et al. | HybSMRP: a hybrid scheduling algorithm in Hadoop MapReduce framework | |
US20110191779A1 (en) | Recording medium storing therein job scheduling program, job scheduling apparatus, and job scheduling method | |
US11886898B2 (en) | GPU-remoting latency aware virtual machine migration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |