CN107515781B - 一种基于多处理器的确定性任务调度及负载均衡*** - Google Patents

一种基于多处理器的确定性任务调度及负载均衡*** Download PDF

Info

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
Application number
CN201710593976.8A
Other languages
English (en)
Other versions
CN107515781A (zh
Inventor
季振洲
王开宇
周一豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology Weihai
Original Assignee
Harbin Institute of Technology Weihai
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology Weihai filed Critical Harbin Institute of Technology Weihai
Priority to CN201710593976.8A priority Critical patent/CN107515781B/zh
Publication of CN107515781A publication Critical patent/CN107515781A/zh
Application granted granted Critical
Publication of CN107515781B publication Critical patent/CN107515781B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread 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。
CN201710593976.8A 2017-07-20 2017-07-20 一种基于多处理器的确定性任务调度及负载均衡*** Active CN107515781B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471734A (zh) * 2018-10-27 2019-03-15 哈尔滨工业大学(威海) 一种新型缓存优化多线程确定性方法
CN109889455B (zh) * 2019-02-15 2020-09-11 浙江吉利汽车研究院有限公司 一种实时消息处理装置
CN109981473B (zh) * 2019-02-15 2021-03-09 浙江吉利汽车研究院有限公司 一种实时消息总线***
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)

* Cited by examiner, † Cited by third party
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 苏州阔地网络科技有限公司 一种消息的批量调度方法及***

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
US8458712B2 (en) System and method for multi-level preemption scheduling in high performance processing
US10802877B2 (en) Task management methods and system, and computer storage medium
US6779182B1 (en) Real time thread dispatcher for multiprocessor applications
US9448864B2 (en) Method and apparatus for processing message between processors
US20060130062A1 (en) Scheduling threads in a multi-threaded computer
KR101638136B1 (ko) 멀티 스레드 구조에서 작업 분배 시 스레드 간 락 경쟁을 최소화하는 방법 및 이를 사용한 장치
US8875146B2 (en) Systems and methods for bounding processing times on multiple processing units
US20080086733A1 (en) Computer micro-jobs
US9507633B2 (en) Scheduling method and system
CN107818012B (zh) 一种数据处理方法、装置及电子设备
EP3376381A1 (en) Resource management method and system, and computer storage medium
CN107577534A (zh) 一种资源调度方法及装置
US10733024B2 (en) Task packing scheduling process for long running applications
EP3208709B1 (en) Batch processing method and device for system invocation commands
CN106775975B (zh) 进程调度方法及装置
CN114461365A (zh) 一种进程调度处理方法、装置、设备和存储介质
CN116450328A (zh) 内存分配方法、装置、计算机设备和存储介质
CN115509704A (zh) 一种任务调度方法、装置、设备及存储介质
JP2015148909A (ja) 並列計算機システム、並列計算機システムの制御方法及び管理ノードの制御プログラム
CN112114958A (zh) 资源隔离方法、分布式平台、计算机设备和存储介质
CN116048756A (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