CN107515781B - 一种基于多处理器的确定性任务调度及负载均衡系统 - Google Patents
一种基于多处理器的确定性任务调度及负载均衡系统 Download PDFInfo
- Publication number
- CN107515781B CN107515781B CN201710593976.8A CN201710593976A CN107515781B CN 107515781 B CN107515781 B CN 107515781B CN 201710593976 A CN201710593976 A CN 201710593976A CN 107515781 B CN107515781 B CN 107515781B
- Authority
- CN
- China
- Prior art keywords
- tasks
- memory
- deterministic
- queue
- task
- 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/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+λ)Т,可以认为当前处理器分配方式负载不平衡,从而开启处理器分配模块进行分配。处理器分配在消息队列层面,避免任务在分配过程中直接与处理器相关,方便记录任务处理的顺序从而保证任务调度的确定性。
由于系统中存在多个处理器,各个处理器共享一块内存,在进行内存读写操作时出现的内存冲突是系统不确定性的主要来源;
在进行确定性任务调度时,系统设置专门进程记录存储,对每个任务获得处理的顺序和时间进行记录,并写入对应模块的内存备份上,完成内存隔离的备份写入,所述确定性调度模块执行如下步骤:
步骤1:扫描系统全部进程,按照优先级分类;
步骤2:将任务分配到对应优先级的消息队列等待处理器响应,同时将已经分配的进程信息记录到存储器;
步骤3:系统根据进程在队列中的排队时间和占用处理器时间对优先级进行重新评估;
步骤4:若进程的优先级出现变化则将其顺序调整到队列尾部,转步骤2;
步骤5:处理器采用时间片轮转方式对队列中的消息进行处理,并将相应的访存任务记录到存储器;
步骤6:按照存储器记录的顺序将备份写入内存。
根据任务数量和优先级进行的负载均衡分配方式,其步骤如下:
步骤1:对全部消息队列进行扫描,获取等待处理的进程信息;
步骤2:按照进程的数量和优先级建立具体数值评价;
步骤3:根据每个消息队列的数值按照轮盘赌方式根据所占比例分配处理器;
步骤4:对消息队列中的进程等待时间进行记录,计算该队列的平均等待时间Т;
步骤5:当有进程的等待时间达到(1+λ)Т时,为该队列数值增加该队列优先级w的1+λ既(1+λ)w,更新数值,跳转步骤3;
步骤6:当有消息队列的处于等待状态进程数量达到当全部等待状态进程50%时,对该进程的优先级进行重新评估,跳转步骤3;
通过设置进程记录器对进程ID进行记录和管理,以及和内存隔离的备份内存空间建立联系的方式避免出现访存冲突,从而实现确定性调度。同时针对固定处理器分配方法效率低下,可能出现的空闲和阻塞问题进行了优化,采用公用消息队列的方法根据任务数量和优先级按照分配算法对处理器进行分配。等待队列将任务发送到确定性调度模块,按照满足确定性的方式将任务调度,并传送到负载均衡模块,该模块根据当前各个任务队列中的任务数对任务进行均衡的分配,然后等待任务被处理器响应,处理完毕后传送到完成队列。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种基于多处理器的确定性任务调度及负载均衡系统,其特征在于:能够在多处理器系统下保证任务调度的确定性,以及根据任务数量和优先级进行负载均衡,从而提高系统效率;所述系统包括确定性调度模块,任务消息队列存储器,负载均衡模块;
确定性调度模块,用于在多处理器系统中,记录进程访问主存的顺序和相关消息,保证任务调度的结果具有确定性;
任务消息队列模块,按照任务的优先级进行分类并分别分配对应的消息队列存储区,相应优先级任务在对应的消息队列等待,防止低优先级的任务抢占高优先级的处理资源或者高优先级的任务迟迟得不到处理,降低系统效率;
负载均衡模块,用于根据各个消息队列中的任务数量按照算法对处理器进行分配,设置时间等待因子λ,当队列中有任务的等待时间超过该队列中所有任务的平均等待时间Т的一定限度(1+λ)Т,可以认为当前处理器分配方式负载不平衡,从而开启处理器分配模块进行分配;处理器分配在消息队列层面,避免任务在分配过程中直接与处理器相关,方便记录任务处理的顺序从而保证任务调度的确定性。
2.根据权利要求1所述的基于多处理器的确定性任务调度及负载均衡系统; 其特征在于,所述确定性调度模块;
由于系统中存在多个处理器,各个处理器共享一块内存,在进行内存读写操作是出现的内存冲突时系统不确定性的主要来源;
在进行确定性任务调度时,系统设置专门进程记录存储,对每个任务获得处理的顺序和时间进行记录,并写入对应模块的内存备份上,完成内存隔离的备份写入,所述确定性调度模块执行如下步骤:
步骤1:扫描系统全部进程,按照优先级分类;
步骤2:将任务分配到对应优先级的消息队列等待处理器响应,同时将已经分配的进程信息记录到存储器;
步骤3:系统根据进程在队列中的排队时间和占用处理器时间对优先级进行重新评估;
步骤4:若进程的优先级出现变化则将其顺序调整到队列尾部,转步骤2;
步骤5:处理器采用时间片轮转方式对队列中的消息进行处理,并将相应的访存任务记录到存储器;
步骤6:按照存储器记录的顺序将备份写入内存。
3.根据权利要求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 CN107515781A (zh) | 2017-12-26 |
CN107515781B true 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) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471734A (zh) * | 2018-10-27 | 2019-03-15 | 哈尔滨工业大学(威海) | 一种新型缓存优化多线程确定性方法 |
CN109981473B (zh) * | 2019-02-15 | 2021-03-09 | 浙江吉利汽车研究院有限公司 | 一种实时消息总线系统 |
CN109889455B (zh) * | 2019-02-15 | 2020-09-11 | 浙江吉利汽车研究院有限公司 | 一种实时消息处理装置 |
CN110502347B (zh) * | 2019-08-28 | 2022-05-27 | 中国银行股份有限公司 | 任务负载调度方法及装置 |
US11379269B2 (en) * | 2020-08-26 | 2022-07-05 | International Business Machines Corporation | Load balancing based on utilization percentage of CPU cores |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458634B (zh) * | 2008-01-22 | 2011-03-16 | 中兴通讯股份有限公司 | 负载均衡调度方法和装置 |
CN102104487B (zh) * | 2009-12-21 | 2014-12-17 | 上海贝尔股份有限公司 | 一种消息处理方法及其设备 |
CN102739781A (zh) * | 2012-06-13 | 2012-10-17 | 苏州阔地网络科技有限公司 | 一种消息的批量调度方法及系统 |
-
2017
- 2017-07-20 CN CN201710593976.8A patent/CN107515781B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107515781A (zh) | 2017-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107515781B (zh) | 一种基于多处理器的确定性任务调度及负载均衡系统 | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
US11941434B2 (en) | Task processing method, processing apparatus, and computer system | |
US8424007B1 (en) | Prioritizing tasks from virtual machines | |
US10802877B2 (en) | Task management methods and system, and computer storage medium | |
US8458712B2 (en) | System and method for multi-level preemption scheduling in high performance processing | |
US6779182B1 (en) | Real time thread dispatcher for multiprocessor applications | |
US20060130062A1 (en) | Scheduling threads in a multi-threaded computer | |
KR101638136B1 (ko) | 멀티 스레드 구조에서 작업 분배 시 스레드 간 락 경쟁을 최소화하는 방법 및 이를 사용한 장치 | |
US8875146B2 (en) | Systems and methods for bounding processing times on multiple processing units | |
US9507633B2 (en) | Scheduling method and system | |
EP3208709B1 (en) | Batch processing method and device for system invocation commands | |
CN107818012B (zh) | 一种数据处理方法、装置及电子设备 | |
EP3376381A1 (en) | Resource management method and system, and computer storage medium | |
CN107577534A (zh) | 一种资源调度方法及装置 | |
CN111831411B (zh) | 任务处理方法、装置、存储介质及电子设备 | |
US10733024B2 (en) | Task packing scheduling process for long running applications | |
CN115509704A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN112114958A (zh) | 资源隔离方法、分布式平台、计算机设备和存储介质 | |
CN114461365A (zh) | 一种进程调度处理方法、装置、设备和存储介质 | |
CN116450328A (zh) | 内存分配方法、装置、计算机设备和存储介质 | |
JP2015148909A (ja) | 並列計算機システム、並列計算機システムの制御方法及び管理ノードの制御プログラム | |
EP2413240A1 (en) | Computer micro-jobs | |
US20230063893A1 (en) | Simultaneous-multi-threading (smt) aware processor allocation for cloud real-time workloads | |
CN115202842A (zh) | 任务调度方法及装置 |
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 |