CN112965829A - 一种在并行任务分组调度下使用锁协议的方法 - Google Patents

一种在并行任务分组调度下使用锁协议的方法 Download PDF

Info

Publication number
CN112965829A
CN112965829A CN202110197392.5A CN202110197392A CN112965829A CN 112965829 A CN112965829 A CN 112965829A CN 202110197392 A CN202110197392 A CN 202110197392A CN 112965829 A CN112965829 A CN 112965829A
Authority
CN
China
Prior art keywords
priority
resource
subtask
subtasks
shared
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
Application number
CN202110197392.5A
Other languages
English (en)
Other versions
CN112965829B (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202110197392.5A priority Critical patent/CN112965829B/zh
Publication of CN112965829A publication Critical patent/CN112965829A/zh
Application granted granted Critical
Publication of CN112965829B publication Critical patent/CN112965829B/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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明提出了一种在并行任务分组调度下使用锁协议的方法通过P‑FP调度将子任务固定地分配到具体的每个核上,实现子任务之间可近似地被看做串行任务,然后再通过将共享资源lq划分为局部资源和全局资源,并设置子任务的优先级和处理器的优先级等,本发明通过以上设置,再具体结合对子任务和共享资源以及处理器之间的分配以及锁协议的使用,解决了现有技术在并行任务调度技术领域使用串行任务的锁协议的技术需求,实现了串行任务的锁协议可适应性地迁移到并行任务的调度中,降低了并行任务出现死锁、阻塞链等的问题,同时降低了优先级翻转造成的调度损失,提高了并行任务调度的效率等。

Description

一种在并行任务分组调度下使用锁协议的方法
技术领域
本发明属于计算机实时信息处理任务调度技术领域,具体地说,涉及一种在并行任务分组调度下使用锁协议的方法。
背景技术
在实时系统中,任务互斥访问关键数据结构、I/O设备等共享资源时,需要采用实时锁协议以避免死锁、阻塞链,同时减小优先级反转所造成的调度损失。
而已有的锁协议基本都是针对串行任务的调度而涉及的,随着多核系统的发展,对于并行任务的需求也在日渐增加,而不同于串行任务简单的串行关系,并行任务的结构更加的复杂,已有的针对串行任务的锁协议方法都无法直接应用到并行任务的调度中。
发明内容
本发明针对现有技术在并行任务调度技术领域使用串行任务的锁协议的技术需求及技术空白,提出了一种在并行任务分组调度下使用锁协议的方法,通过P-FP调度将子任务固定地分配到具体的每个核上,实现子任务之间可近似地被看做串行任务,然后再通过将共享资源lq划分为局部资源和全局资源,并设置子任务的优先级和处理器的优先级等,本发明通过以上设置再具体结合对子任务、共享资源以及处理器之间的分配以及锁协议的使用,实现了串行任务的锁协议可适应性地迁移到并行任务的调度中,降低了并行任务出现死锁、阻塞链等的问题,同时降低了优先级翻转造成的调度损失,提高了并行任务调度的效率等。
本发明具体实现内容如下:
本发明提出了一种在并行任务分组调度下使用锁协议的方法,首先采用固定优先级分组调度的P-FP调度,对所有并行任务设定固定的优先级,将并行任务的每个子任务固定地分配到具体的处理器pk上去,即设置i个处理器pk,k=1、2、3、…、i;并将并行任务的所有子任务固定地分配到具体的一个个处理器pk中去;然后在使用P-FP调度的情况下,将共享资源lq分为局部资源和全局资源;接着设定资源天花板优先级Ωq、系统天花板优先级Πk,根据共享资源lq划分为局部资源和全局资源的具体情况并结合资源天花板优先级Ωq、系统天花板优先级Πk进行优先级的排序,所述资源天花板优先级Ωq为所有访问共享资源lq的子任务中优先级最高的子任务的优先级,所述系统天花板优先级Πk为处理器pk中所有共享资源中资源天花板优先级最高的共享资源的资源天花板优先级;最后根据得到的优先级在运行阶段对并行任务使用锁协议;
所述局部资源为只在某一个处理器pk的子任务之间进行共享的共享资源lq;所述全局资源为在多个处理器pk之间进行共享的共享资源lq
根据优先级在运行阶段对并行任务使用锁协议具体包括以下操作:
首先将并行任务中排序在前的子任务已经执行完毕但自身还没有执行完毕的子任务定义为处于等待状态的子任务,对于处于等待状态的子任务,具体再划分为以下三个状态:执行、就绪而未执行、挂起;
然后设置两个子任务队列:子任务就绪队列RQk、资源阻塞队列SQq;将处于就绪而未执行状态的子任务存储到子任务就绪队列RQk中;将处于挂起状态的子任务存储到资源阻塞队列SQq中;
在子任务就绪队列RQk和资源阻塞队列SQq中采用优先级队列结合链表的数据结构形式对子任务进行存储,即将子任务按照优先级高低的顺序进行队列的排序,对于同一优先级的子任务,在队列中使用链表的形式进行插入;
最后根据优先级使用锁协议,并在结束共享资源lq的访问后将通过锁协议锁住的共享资源lq解除锁住状态进行释放。
为了更好地实现本发明,进一步地,对于每个子任务都设置一个优先级提升标志位,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为
Figure BDA0002947540480000023
当子任务
Figure BDA0002947540480000024
的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为全局资源,则将子任务
Figure BDA0002947540480000025
的优先级提升标志位进行标记,使得被标记了优先级提升标志位的子任务
Figure BDA0002947540480000026
比处于同一优先级下未被标记优先级提升标志位的子任务优先被进行处理。
为了更好地实现本发明,进一步地,当子任务
Figure BDA0002947540480000027
的执行过程中需要访问某个共享资源lq时,若被访问的共享资源lq为全局资源并且已经被其他子任务
Figure BDA0002947540480000028
锁住,则将子任务
Figure BDA0002947540480000029
阻塞并加入到资源阻塞队列SQq中。
为了更好地实现本发明,进一步地,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为
Figure BDA0002947540480000021
当子任务
Figure BDA0002947540480000022
的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为局部资源且已经被其他子任务
Figure BDA00029475404800000323
锁住,则将子任务
Figure BDA0002947540480000037
阻塞并加入到资源阻塞队列SQq中。
为了更好地实现本发明,进一步地,若其他子任务
Figure BDA0002947540480000038
的优先级比子任务
Figure BDA00029475404800000311
的优先级低,则采用优先级继承的方式临时提升其他子任务
Figure BDA0002947540480000039
的优先级为子任务
Figure BDA00029475404800000310
的优先级,具体计算公式为:
Figure BDA0002947540480000031
其中
Figure BDA0002947540480000032
为子任务
Figure BDA0002947540480000033
的基础的优先级,
Figure BDA0002947540480000034
为子任务
Figure BDA0002947540480000035
的有效优先级,即子任务
Figure BDA0002947540480000036
经过优先级继承后的优先级。
为了更好地实现本发明,进一步地,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为
Figure BDA00029475404800000312
当子任务
Figure BDA00029475404800000313
的执行过程中需要访问某个共享资源lq时,若共享资源lq未被其他子任务
Figure BDA00029475404800000314
锁住且子任务
Figure BDA00029475404800000317
的优先级高于系统天花板优先级Πk,则采用子任务
Figure BDA00029475404800000315
锁住需要访问的共享资源lq,并将子任务
Figure BDA00029475404800000316
存储到子任务就绪队列RQk中等待CPU的调度。
为了更好地实现本发明,进一步地,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务
Figure BDA00029475404800000318
被标记优先级提升标志位取消提升置位恢复最初状态。
为了更好地实现本发明,进一步地,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务
Figure BDA00029475404800000319
的有效优先级
Figure BDA00029475404800000320
恢复为基础的优先级
Figure BDA00029475404800000321
即将子任务
Figure BDA00029475404800000322
经过优先级继承后的优先级还原。
为了更好地实现本发明,进一步地,共享资源访问结束后,将锁住的共享资源lq进行释放后,若资源阻塞队列SQq中还存储有子任务,则将资源阻塞队列SQq中存储的排在首位的子任务取出,并使用取出的子任务锁住共享资源lq,然后将取出的子任务加入到子任务就绪队列RQk中等待CPU的调度。
为了更好地实现本发明,进一步地,所述资源天花板优先级Ωq的具体计算公式为:
Ωq=max{πii∈τ(lq)};
其中:Ωq为资源天花板优先级,τi为具体的并行任务i,τ(lq)为访问的共享资源lq的任务集合;πi为具体的并行任务τi的优先级;
定义所述系统天花板优先级Πk在t时刻的系统天花板优先级为Πk(t),具体计算方式为:
若在t时刻有全局资源被锁住,则系统天花板优先级Πk(t)为t时刻被处理器k锁住的全局资源的资源天花板优先级Ωq,具体计算公式为:
Πk(t)=max{Ωq|lq∈ΦG∩Φ′(t)};
其中:Πk(t)为t时刻处理器k的系统天花板优先级,Ωq为被锁住的全局资源的资源天花板优先级,ΦG为全局资源的集合,Φ′(t)为t时刻时被锁住的资源集合;
若在t时刻没有全局资源被锁住,则系统天花板优先级Πk(t)是t时刻被处理器k上被锁住的局部资源q的资源天花板优先级Ωq',具体计算公式为:
Πk(t)=max{Ωq'|lq∈ΦL(pk)∩Φ′(t)};
其中:Πk(t)为t时刻处理器k的系统天花板优先级,Ωq'为被锁住的局部资源的资源天花板优先级,ΦL(pk)为处理器k上的局部资源集合,Φ′(t)为t时刻时被锁住的资源集合。
本发明与现有技术相比具有以下优点及有益效果:
本发明通过P-FP调度将子任务固定地分配到具体的每个核上,实现子任务之间可近似地被看做串行任务,然后再通过将共享资源lq划分为局部资源和全局资源,并设置子任务的优先级和处理器的优先级等,通过以上设置再具体对子任务和共享资源以及处理器之间进行分配以及锁协议的使用,实现了串行任务的锁协议可适应性地迁移到并行任务的调度中,降低了并行任务出现死锁、阻塞链等的问题,同时降低了优先级翻转造成的调度损失,提高了并行任务调度的效率等。
附图说明
图1为本发明全局资源和局部资源划分示意图;
图2为本发明子任务就绪队列RQk、资源阻塞队列SQq的队列数据结构形式示意图。
具体实施方式
为了更清楚地说明本发明实施例的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,因此不应被看作是对保护范围的限定。基于本发明中的实施例,本领域普通技术工作人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;也可以是直接相连,也可以是通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1:
本发明提出了一种在并行任务分组调度下使用锁协议的方法,如图1、图2所示,首先采用固定优先级分组调度的P-FP调度,对所有并行任务设定固定的优先级,将并行任务的每个子任务固定地分配到具体的处理器pk上去,即设置i个处理器pk,k=1、2、3、…、i;并将并行任务的所有子任务固定地分配到具体的一个个处理器pk中去;然后在使用P-FP调度的情况下,将共享资源lq分为局部资源和全局资源;接着设定资源天花板优先级Ωq、系统天花板优先级Πk,根据共享资源lq划分为局部资源和全局资源的具体情况并结合资源天花板优先级Ωq、系统天花板优先级Πk进行优先级的排序,所述资源天花板优先级Ωq为所有访问共享资源lq的子任务中优先级最高的子任务的优先级,所述系统天花板优先级Πk为处理器pk中所有共享资源中资源天花板优先级最高的共享资源的资源天花板优先级;最后根据得到的优先级在运行阶段对并行任务使用锁协议;
所述局部资源为只在某一个处理器pk的子任务之间进行共享的共享资源lq;所述全局资源为在多个处理器pk之间进行共享的共享资源lq
根据优先级在运行阶段对并行任务使用锁协议具体包括以下操作:
首先将并行任务中排序在前的子任务已经执行完毕但自身还没有执行完毕的子任务定义为处于等待状态的子任务,对于处于等待状态的子任务,具体再划分为以下三个状态:执行、就绪而未执行、挂起;
然后设置两个子任务队列:子任务就绪队列RQk、资源阻塞队列SQq;将处于就绪而未执行状态的子任务存储到子任务就绪队列RQk中;将处于挂起状态的子任务存储到资源阻塞队列SQq中;
在子任务就绪队列RQk和资源阻塞队列SQq中采用优先级队列结合链表的数据结构形式对子任务进行存储,即将子任务按照优先级高低的顺序进行队列的排序,对于同一优先级的子任务,在队列中使用链表的形式进行插入;两个队列都是优先队列加上链表的数据结构,如图2所示,加入链表结构的原因是由于系统内可能存在相同优先级的子任务,从而在队列中使用链表将这些子任务按照插入队列的顺序存储起来。图2中每一个小方块代表一个子任务,方框内的数字代表子任务的优先级。插入子任务
Figure BDA0002947540480000061
到队列中时,首先会按照其优先级找到优先队列的相应位置,此时需要分情况讨论:若该位置没有其他相同优先级的子任务,则直接插入到优先队列;否则插入到相应位置的链表尾部;
最后根据优先级使用锁协议,并在结束共享资源lq的访问后将通过锁协议锁住的共享资源lq解除锁住状态进行释放。
工作原理:对于锁协议对子任务进行锁住操作的工作原理为:子任务锁住(lock)共享资源lq之后,就能互斥地访问共享资源lq;在该子任务释放(unlock)被锁住的共享资源lq之前,其他子任务访问该共享资源lq时需要根据具体的锁协议进入等待状态,如在本发明后续实施例中所述,会转为阻塞状态并进入子任务等待队列。若lq只被一个处理器上的子任务共享,那么该lq就被称为是局部资源,否则lq是全局资源。如图1所示,处理器p1和pm上有两个资源:l1和l2。l1被分布在同一个核上的子任务v1和v3共享,因此l1是局部资源;l2被分布在处理器p1的子任务v2和分布在处理器pm的子任务v4、v5共享,因此l2是全局资源。
实施例2:
本实施例在上述实施例1的基础上,为了更好地实现本发明,进一步地,对于每个子任务都设置一个优先级提升标志位,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为
Figure BDA0002947540480000064
当子任务
Figure BDA0002947540480000065
的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为全局资源,则将子任务
Figure BDA0002947540480000063
的优先级提升标志位进行标记,使得被标记了优先级提升标志位的子任务
Figure BDA0002947540480000062
比处于同一优先级下未被标记优先级提升标志位的子任务优先被进行处理。
进一步地,当子任务
Figure BDA0002947540480000072
的执行过程中需要访问某个共享资源lq时,若被访问的共享资源lq为全局资源并且已经被其他子任务
Figure BDA0002947540480000074
锁住,则将子任务
Figure BDA0002947540480000073
阻塞并加入到资源阻塞队列SQq中。
进一步地,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务
Figure BDA00029475404800000721
被标记优先级提升标志位取消提升置位恢复最初状态。
工作原理:访问和释放全局资源相比局部资源,子任务的响应时间会更长,比如在迁移执行策略下,申请访问其他处理器全局资源的子任务,在获取和释放资源时分别需要迁入、迁出其他处理器,因此会消耗更多的CPU资源。基于上述原因,本发明的锁协议规则让访问全局资源的子任务优先执行完毕。在具体的实现中,每个子任务拥有一个“优先级提升(priority boosted)”标志位,拥有该标志位置位的子任务可以优先于没有改标志位置位的子任务,而同时拥有该标志位置位的任务则需要比较彼此的基础的优先级(basicpriority)。
本实施例的其他部分与上述实施例1相同,故不再赘述。
实施例3:
本实施例在上述实施例1-2任一项的基础上,为了更好地实现本发明,进一步地,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为
Figure BDA0002947540480000076
当子任务
Figure BDA0002947540480000077
的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为局部资源且已经被其他子任务
Figure BDA0002947540480000075
锁住,则将子任务
Figure BDA0002947540480000078
阻塞并加入到资源阻塞队列SQq中。
进一步地,若其他子任务
Figure BDA0002947540480000079
的优先级比子任务
Figure BDA00029475404800000722
的优先级低,则采用优先级继承的方式临时提升其他子任务
Figure BDA00029475404800000710
的优先级为子任务
Figure BDA00029475404800000711
的优先级,具体计算公式为:
Figure BDA0002947540480000071
其中
Figure BDA00029475404800000713
为子任务
Figure BDA00029475404800000714
的基础的优先级,
Figure BDA00029475404800000712
为子任务
Figure BDA00029475404800000715
的有效优先级,即子任务
Figure BDA00029475404800000716
经过优先级继承后的优先级。
进一步地,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务
Figure BDA00029475404800000718
的有效优先级
Figure BDA00029475404800000717
恢复为基础的优先级
Figure BDA00029475404800000719
即将子任务
Figure BDA00029475404800000720
经过优先级继承后的优先级还原。
工作原理:为了防止优先级翻转(priority inversions)问题,使用优先级继承的方式临时地提升资源占有任务的有效优先级。因此如果
Figure BDA0002947540480000082
的有效优先级比
Figure BDA0002947540480000083
的有效优先级低,那么需要
Figure BDA0002947540480000084
继承
Figure BDA0002947540480000085
的有效优先级:
Figure BDA0002947540480000081
本实施例的其他部分与上述实施例1-2任一项相同,故不再赘述。
实施例4:
本实施例在上述实施例1-3任一项的基础上,为了更好地实现本发明,进一步地,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为
Figure BDA0002947540480000088
当子任务
Figure BDA0002947540480000089
的执行过程中需要访问某个共享资源lq时,若共享资源lq未被其他子任务
Figure BDA0002947540480000086
锁住且子任务
Figure BDA00029475404800000810
的优先级高于系统天花板优先级Πk,则采用子任务
Figure BDA0002947540480000087
锁住需要访问的共享资源lq,并将子任务
Figure BDA00029475404800000811
存储到子任务就绪队列RQk中等待CPU的调度。
工作原理:若lq没有被锁住,且此时
Figure BDA00029475404800000812
的有效优先级高于系统优先级Πk(t),那么
Figure BDA00029475404800000813
可以锁住该资源,并加入RQk中等待CPU调度。子任务锁住(lock)共享资源之后,就能互斥地访问共享资源;在该子任务释放(unlock)该共享资源之前,其他子任务访问该共享资源时需要根据具体的锁协议进入等待状态,如在本发明中,会转为阻塞状态并进入子任务等待队列。
本实施例的其他部分与上述实施例1-3任一项相同,故不再赘述。
实施例5:
本实施例在上述实施例1-4任一项的基础上,进一步地,共享资源访问结束后,将锁住的共享资源lq进行释放后,若资源阻塞队列SQq中还存储有子任务,则将资源阻塞队列SQq中存储的排在首位的子任务取出,并使用取出的子任务锁住共享资源lq,然后将取出的子任务加入到子任务就绪队列RQk中等待CPU的调度。
本实施例的其他部分与上述实施例1-4任一项相同,故不再赘述。
实施例6:
本实施例在上述实施例1-5任一项的基础上,为了更好地实现本发明,进一步地,所述资源天花板优先级Ωq是所有访问资源lq的任务里优先级最高任务的优先级的具体计算公式为:
Ωq=max{πii∈τ(lq)};
其中:Ωq为资源天花板优先级,τi为具体的并行任务i,τ(lq)为访问的共享资源lq的任务集合;πi为具体的并行任务τi的优先级;
为了避免低优先级子任务访问比它优先级更高且正被锁住的资源,每个处理器都有一个系统天花板优先级Πk(t);定义所述系统天花板优先级Πk在t时刻的系统天花板优先级为Πk(t),具体计算方式为:
若在t时刻有全局资源被锁住,则系统天花板优先级Πk(t)为t时刻被处理器k锁住的全局资源的资源天花板优先级Ωq,具体计算公式为:
Πk(t)=max{Ωq|lq∈ΦG∩Φ′(t)};
其中:Πk(t)为t时刻处理器k的系统天花板优先级,Ωq为被锁住的全局资源的资源天花板优先级,ΦG为全局资源的集合,Φ′(t)为t时刻时被锁住的资源集合;
若在t时刻没有全局资源被锁住,则系统天花板优先级Πk(t)是t时刻被处理器k上被锁住的局部资源q的资源天花板优先级Ωq',具体计算公式为:
Πk(t)=max{Ωq'|lq∈ΦL(pk)∩Φ′(t)};
其中:Πk(t)为t时刻处理器k的系统天花板优先级,Ωq'为被锁住的局部资源的资源天花板优先级,ΦL(pk)为处理器k上的局部资源集合,Φ′(t)为t时刻时被锁住的资源集合。
本实施例的其他部分与上述实施例1-5任一项相同,故不再赘述。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

Claims (10)

1.一种在并行任务分组调度下使用锁协议的方法,其特征在于,首先采用固定优先级分组调度的P-FP调度,对所有并行任务设定固定的优先级,将并行任务的每个子任务固定地分配到具体的处理器pk上去,即设置i个处理器pk,k=1、2、3、…、i;并将并行任务的所有子任务固定地分配到具体的一个个处理器pk中去;然后在使用P-FP调度的情况下,将共享资源lq分为局部资源和全局资源;接着设定资源天花板优先级Ωq、系统天花板优先级Πk,根据共享资源lq划分为局部资源和全局资源的具体情况并结合资源天花板优先级Ωq、系统天花板优先级Πk进行优先级的排序,所述资源天花板优先级Ωq为所有访问共享资源lq的子任务中优先级最高的子任务的优先级,所述系统天花板优先级Πk为处理器pk中所有共享资源中资源天花板优先级最高的共享资源的资源天花板优先级;最后根据得到的优先级在运行阶段对并行任务使用锁协议;
所述局部资源为只在某一个处理器pk的子任务之间进行共享的共享资源lq;所述全局资源为在多个处理器pk之间进行共享的共享资源lq
根据优先级在运行阶段对并行任务使用锁协议具体包括以下操作:
首先将并行任务中排序在前的子任务已经执行完毕但自身还没有执行完毕的子任务定义为处于等待状态的子任务,对于处于等待状态的子任务,具体再划分为以下三个状态:执行、就绪而未执行、挂起;
然后设置两个子任务队列:子任务就绪队列RQk、资源阻塞队列SQq;将处于就绪而未执行状态的子任务存储到子任务就绪队列RQk中;将处于挂起状态的子任务存储到资源阻塞队列SQq中;
在子任务就绪队列RQk和资源阻塞队列SQq中采用优先级队列结合链表的数据结构形式对子任务进行存储,即将子任务按照优先级高低的顺序进行队列的排序,对于同一优先级的子任务,在队列中使用链表的形式进行插入;
最后根据优先级使用锁协议,并在结束共享资源lq的访问后将通过锁协议锁住的共享资源lq解除锁住状态进行释放。
2.如权利要求1所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,对于每个子任务都设置一个优先级提升标志位,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为
Figure FDA0002947540470000021
当子任务
Figure FDA0002947540470000022
的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为全局资源,则将子任务
Figure FDA0002947540470000023
的优先级提升标志位进行标记,使得被标记了优先级提升标志位的子任务
Figure FDA0002947540470000024
比处于同一优先级下未被标记优先级提升标志位的子任务优先被进行处理。
3.如权利要求2所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,当子任务
Figure FDA0002947540470000025
的执行过程中需要访问某个共享资源lq时,若被访问的共享资源lq为全局资源并且已经被其他子任务
Figure FDA0002947540470000026
锁住,则将子任务
Figure FDA0002947540470000027
阻塞并加入到资源阻塞队列SQq中。
4.如权利要求1所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为
Figure FDA0002947540470000028
当子任务
Figure FDA0002947540470000029
的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为局部资源且已经被其他子任务
Figure FDA00029475404700000210
锁住,则将子任务
Figure FDA00029475404700000211
阻塞并加入到资源阻塞队列SQq中。
5.如权利要求4所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,若其他子任务
Figure FDA00029475404700000212
的优先级比子任务
Figure FDA00029475404700000213
的优先级低,则采用优先级继承的方式临时提升其他子任务
Figure FDA00029475404700000214
的优先级为子任务
Figure FDA00029475404700000215
的优先级,具体计算公式为:
Figure FDA00029475404700000216
其中
Figure FDA00029475404700000217
为子任务
Figure FDA00029475404700000218
的基础的优先级,
Figure FDA00029475404700000219
为子任务
Figure FDA00029475404700000220
的有效优先级,即子任务
Figure FDA00029475404700000221
经过优先级继承后的优先级。
6.如权利要求1所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为
Figure FDA00029475404700000222
当子任务
Figure FDA00029475404700000223
的执行过程中需要访问某个共享资源lq时,若共享资源lq未被其他子任务
Figure FDA00029475404700000224
锁住且子任务
Figure FDA00029475404700000225
的优先级高于系统天花板优先级Πk,则采用子任务
Figure FDA00029475404700000226
锁住需要访问的共享资源lq,并将子任务
Figure FDA00029475404700000227
存储到子任务就绪队列RQk中等待CPU的调度。
7.如权利要求2或3所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务
Figure FDA00029475404700000228
被标记优先级提升标志位取消提升置位恢复最初状态。
8.如权利要求5所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务
Figure FDA0002947540470000031
的有效优先级
Figure FDA0002947540470000032
恢复为基础的优先级
Figure FDA0002947540470000033
即将子任务
Figure FDA0002947540470000034
经过优先级继承后的优先级还原。
9.如权利要求1所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,共享资源访问结束后,将锁住的共享资源lq进行释放后,若资源阻塞队列SQq中还存储有子任务,则将资源阻塞队列SQq中存储的排在首位的子任务取出,并使用取出的子任务锁住共享资源lq,然后将取出的子任务加入到子任务就绪队列RQk中等待CPU的调度。
10.如权利要求1所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,所述资源天花板优先级Ωq的具体计算公式为:
Ωq=max{πii∈τ(lq)};
其中:Ωq为资源天花板优先级,τi为具体的并行任务i,τ(lq)为访问的共享资源lq的任务集合;πi为具体的并行任务τi的优先级;
定义所述系统天花板优先级Πk在t时刻的系统天花板优先级为Πk(t),具体计算方式为:
若在t时刻有全局资源被锁住,则系统天花板优先级Πk(t)为t时刻被处理器k锁住的全局资源的资源天花板优先级Ωq,具体计算公式为:
Πk(t)=max{Ωq|lq∈ΦG∩Φ′(t)};
其中:Πk(t)为t时刻处理器k的系统天花板优先级,Ωq为被锁住的全局资源的资源天花板优先级,ΦG为全局资源的集合,Φ′(t)为t时刻时被锁住的资源集合;
若在t时刻没有全局资源被锁住,则系统天花板优先级Πk(t)是t时刻被处理器k上被锁住的局部资源q的资源天花板优先级Ωq',具体计算公式为:
Πk(t)=max{Ωq'|lq∈ΦL(pk)∩Φ′(t)};
其中:Πk(t)为t时刻处理器k的系统天花板优先级,Ωq'为被锁住的局部资源的资源天花板优先级,ΦL(pk)为处理器k上的局部资源集合,Φ′(t)为t时刻时被锁住的资源集合。
CN202110197392.5A 2021-02-22 2021-02-22 一种在并行任务分组调度下使用锁协议的方法 Active CN112965829B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110197392.5A CN112965829B (zh) 2021-02-22 2021-02-22 一种在并行任务分组调度下使用锁协议的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110197392.5A CN112965829B (zh) 2021-02-22 2021-02-22 一种在并行任务分组调度下使用锁协议的方法

Publications (2)

Publication Number Publication Date
CN112965829A true CN112965829A (zh) 2021-06-15
CN112965829B CN112965829B (zh) 2023-08-11

Family

ID=76285511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110197392.5A Active CN112965829B (zh) 2021-02-22 2021-02-22 一种在并行任务分组调度下使用锁协议的方法

Country Status (1)

Country Link
CN (1) CN112965829B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113810479A (zh) * 2021-08-31 2021-12-17 山石网科通信技术股份有限公司 服务协调系统以及服务协调方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0383142A (ja) * 1989-08-28 1991-04-09 Nec Corp 共有資源排他制御方式
CN1437727A (zh) * 1999-12-28 2003-08-20 英特尔公司 多线程环境中的读锁定丢失控制
CN101894045A (zh) * 2010-06-18 2010-11-24 阳坚 一种实时Linux操作系统
CN102238144A (zh) * 2010-04-30 2011-11-09 电子科技大学 多层网络中实现层间资源共享的方法、装置及系统
CN102298539A (zh) * 2011-06-07 2011-12-28 华东师范大学 一种用于分布式并行处理的共享资源调度方法及系统
CN103294536A (zh) * 2012-01-31 2013-09-11 辉达公司 控制用于处理任务的工作分布
CN105468460A (zh) * 2015-12-02 2016-04-06 上海电机学院 一种混合云环境下虚拟资源监控与分配方法
US20170339243A1 (en) * 2014-11-11 2017-11-23 Unify Gmbh & Co. Kg Method and system for real-time resource consumption control in a distributed computing environment

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0383142A (ja) * 1989-08-28 1991-04-09 Nec Corp 共有資源排他制御方式
CN1437727A (zh) * 1999-12-28 2003-08-20 英特尔公司 多线程环境中的读锁定丢失控制
CN102238144A (zh) * 2010-04-30 2011-11-09 电子科技大学 多层网络中实现层间资源共享的方法、装置及系统
CN101894045A (zh) * 2010-06-18 2010-11-24 阳坚 一种实时Linux操作系统
CN102298539A (zh) * 2011-06-07 2011-12-28 华东师范大学 一种用于分布式并行处理的共享资源调度方法及系统
CN103294536A (zh) * 2012-01-31 2013-09-11 辉达公司 控制用于处理任务的工作分布
US20170339243A1 (en) * 2014-11-11 2017-11-23 Unify Gmbh & Co. Kg Method and system for real-time resource consumption control in a distributed computing environment
CN105468460A (zh) * 2015-12-02 2016-04-06 上海电机学院 一种混合云环境下虚拟资源监控与分配方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MUNY TAMUT 等: "A hybrid approach to synchronization in real time multiprocessor systems" *
刘加海 等: "共享资源约束下多核实时任务分配算法" *
王俊杰: "基于分组调度的并行实时任务可调度性分析" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113810479A (zh) * 2021-08-31 2021-12-17 山石网科通信技术股份有限公司 服务协调系统以及服务协调方法
CN113810479B (zh) * 2021-08-31 2023-11-07 山石网科通信技术股份有限公司 服务协调系统以及服务协调方法

Also Published As

Publication number Publication date
CN112965829B (zh) 2023-08-11

Similar Documents

Publication Publication Date Title
EP3380937B1 (en) Techniques for analytics-driven hybrid concurrency control in clouds
US7209990B2 (en) Maintain fairness of resource allocation in a multi-node environment
JP4569846B2 (ja) I/oノード制御方式及び方法
US8930584B2 (en) System and method for providing a linearizable request manager
US7644213B2 (en) Resource access manager for controlling access to a limited-access resource
EP2962200B1 (en) System and method for using a sequencer in a concurrent priority queue
JP2016062606A (ja) 共有メモリにおけるメッセージデータにアクセスすることによりクライアントとサーバとの間で通信するためのメカニズム及び方法
Kumar et al. Time and cost optimization algorithm for scheduling multiple workflows in hybrid clouds
JP4348639B2 (ja) マルチプロセッサシステム、ワークロード管理方法
US20090133099A1 (en) Methods and systems for transparent software license suspension
US7299269B2 (en) Dynamically allocating data buffers to a data structure based on buffer fullness frequency
CN112965829A (zh) 一种在并行任务分组调度下使用锁协议的方法
Maiti et al. Internet of Things applications placement to minimize latency in multi-tier fog computing framework
Pandey et al. RACE: A concurrency control protocol for time-constrained transactions
Qureshi et al. Grid resource allocation for real-time data-intensive tasks
Hashim Yosuf et al. Scheduling Algorithm for Grid Computing Using Shortest Job First with Time Quantum.
EP2951691B1 (en) System and method for supporting work sharing muxing in a cluster
US9990240B2 (en) Event handling in a cloud data center
CN112214318A (zh) 一种任务调度方法、系统、设备以及介质
Nivodhini et al. Algorithms to improve scheduling techniques in IaaS cloud
Pradhan et al. A comparative study on dynamic scheduling of real-time tasks in multiprocessor system using genetic algorithms
CN112749020A (zh) 一种物联网操作系统的微内核优化方法
Samuel et al. Scheduling diverse high performance computing systems with the goal of maximizing utilization
Rafi et al. Multi-Queue Priority Based Algorithm for CPU Process Scheduling
Tyagi et al. Different Scheduling Options in YARN

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