CN112965829B - 一种在并行任务分组调度下使用锁协议的方法 - Google Patents
一种在并行任务分组调度下使用锁协议的方法 Download PDFInfo
- Publication number
- CN112965829B CN112965829B CN202110197392.5A CN202110197392A CN112965829B CN 112965829 B CN112965829 B CN 112965829B CN 202110197392 A CN202110197392 A CN 202110197392A CN 112965829 B CN112965829 B CN 112965829B
- Authority
- CN
- China
- Prior art keywords
- priority
- resource
- subtask
- subtasks
- 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
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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为当子任务/>的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为全局资源,则将子任务/>的优先级提升标志位进行标记,使得被标记了优先级提升标志位的子任务/>比处于同一优先级下未被标记优先级提升标志位的子任务优先被进行处理。
为了更好地实现本发明,进一步地,当子任务的执行过程中需要访问某个共享资源lq时,若被访问的共享资源lq为全局资源并且已经被其他子任务/>锁住,则将子任务/>阻塞并加入到资源阻塞队列SQq中。
为了更好地实现本发明,进一步地,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为当子任务/>的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为局部资源且已经被其他子任务/>锁住,则将子任务/>阻塞并加入到资源阻塞队列SQq中。
为了更好地实现本发明,进一步地,若其他子任务的优先级比子任务/>的优先级低,则采用优先级继承的方式临时提升其他子任务/>的优先级为子任务/>的优先级,具体计算公式为:
其中为子任务/>的基础的优先级,/>为子任务/>的有效优先级,即子任务经过优先级继承后的优先级。
为了更好地实现本发明,进一步地,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为当子任务/>的执行过程中需要访问某个共享资源lq时,若共享资源lq未被其他子任务/>锁住且子任务/>的优先级高于系统天花板优先级Πk,则采用子任务/>锁住需要访问的共享资源lq,并将子任务/>存储到子任务就绪队列RQk中等待CPU的调度。
为了更好地实现本发明,进一步地,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务被标记优先级提升标志位取消提升置位恢复最初状态。
为了更好地实现本发明,进一步地,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务的有效优先级/>恢复为基础的优先级/>即将子任务经过优先级继承后的优先级还原。
为了更好地实现本发明,进一步地,共享资源访问结束后,将锁住的共享资源lq进行释放后,若资源阻塞队列SQq中还存储有子任务,则将资源阻塞队列SQq中存储的排在首位的子任务取出,并使用取出的子任务锁住共享资源lq,然后将取出的子任务加入到子任务就绪队列RQk中等待CPU的调度。
为了更好地实现本发明,进一步地,所述资源天花板优先级Ωq的具体计算公式为:
Ωq=max{πi|τi∈τ(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中每一个小方块代表一个子任务,方框内的数字代表子任务的优先级。插入子任务到队列中时,首先会按照其优先级找到优先队列的相应位置,此时需要分情况讨论:若该位置没有其他相同优先级的子任务,则直接插入到优先队列;否则插入到相应位置的链表尾部;
最后根据优先级使用锁协议,并在结束共享资源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为当子任务/>的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为全局资源,则将子任务/>的优先级提升标志位进行标记,使得被标记了优先级提升标志位的子任务/>比处于同一优先级下未被标记优先级提升标志位的子任务优先被进行处理。
进一步地,当子任务的执行过程中需要访问某个共享资源lq时,若被访问的共享资源lq为全局资源并且已经被其他子任务/>锁住,则将子任务/>阻塞并加入到资源阻塞队列SQq中。
进一步地,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务被标记优先级提升标志位取消提升置位恢复最初状态。
工作原理:访问和释放全局资源相比局部资源,子任务的响应时间会更长,比如在迁移执行策略下,申请访问其他处理器全局资源的子任务,在获取和释放资源时分别需要迁入、迁出其他处理器,因此会消耗更多的CPU资源。基于上述原因,本发明的锁协议规则让访问全局资源的子任务优先执行完毕。在具体的实现中,每个子任务拥有一个“优先级提升(priority boosted)”标志位,拥有该标志位置位的子任务可以优先于没有改标志位置位的子任务,而同时拥有该标志位置位的任务则需要比较彼此的基础的优先级(basicpriority)。
本实施例的其他部分与上述实施例1相同,故不再赘述。
实施例3:
本实施例在上述实施例1-2任一项的基础上,为了更好地实现本发明,进一步地,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为当子任务/>的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为局部资源且已经被其他子任务/>锁住,则将子任务/>阻塞并加入到资源阻塞队列SQq中。
进一步地,若其他子任务的优先级比子任务/>的优先级低,则采用优先级继承的方式临时提升其他子任务/>的优先级为子任务/>的优先级,具体计算公式为:
其中为子任务/>的基础的优先级,/>为子任务/>的有效优先级,即子任务经过优先级继承后的优先级。
进一步地,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务的有效优先级/>恢复为基础的优先级/>即将子任务/>经过优先级继承后的优先级还原。
工作原理:为了防止优先级翻转(priority inversions)问题,使用优先级继承的方式临时地提升资源占有任务的有效优先级。因此如果的有效优先级比/>的有效优先级低,那么需要/>继承/>的有效优先级:/>
本实施例的其他部分与上述实施例1-2任一项相同,故不再赘述。
实施例4:
本实施例在上述实施例1-3任一项的基础上,为了更好地实现本发明,进一步地,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为当子任务/>的执行过程中需要访问某个共享资源lq时,若共享资源lq未被其他子任务锁住且子任务/>的优先级高于系统天花板优先级Πk,则采用子任务/>锁住需要访问的共享资源lq,并将子任务/>存储到子任务就绪队列RQk中等待CPU的调度。
工作原理:若lq没有被锁住,且此时的有效优先级高于系统优先级Πk(t),那么可以锁住该资源,并加入RQk中等待CPU调度。子任务锁住(lock)共享资源之后,就能互斥地访问共享资源;在该子任务释放(unlock)该共享资源之前,其他子任务访问该共享资源时需要根据具体的锁协议进入等待状态,如在本发明中,会转为阻塞状态并进入子任务等待队列。
本实施例的其他部分与上述实施例1-3任一项相同,故不再赘述。
实施例5:
本实施例在上述实施例1-4任一项的基础上,进一步地,共享资源访问结束后,将锁住的共享资源lq进行释放后,若资源阻塞队列SQq中还存储有子任务,则将资源阻塞队列SQq中存储的排在首位的子任务取出,并使用取出的子任务锁住共享资源lq,然后将取出的子任务加入到子任务就绪队列RQk中等待CPU的调度。
本实施例的其他部分与上述实施例1-4任一项相同,故不再赘述。
实施例6:
本实施例在上述实施例1-5任一项的基础上,为了更好地实现本发明,进一步地,所述资源天花板优先级Ωq是所有访问资源lq的任务里优先级最高任务的优先级的具体计算公式为:
Ωq=max{πi|τi∈τ(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 (9)
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解除锁住状态进行释放;
所述资源天花板优先级Ωq的具体计算公式为:
Ωq=max{πi|τi∈τ(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时刻时被锁住的资源集合。
2.如权利要求1所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,对于每个子任务都设置一个优先级提升标志位,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为当子任务/>的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为全局资源,则将子任务/>的优先级提升标志位进行标记,使得被标记了优先级提升标志位的子任务/>比处于同一优先级下未被标记优先级提升标志位的子任务优先被进行处理。
3.如权利要求2所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,当子任务的执行过程中需要访问某个共享资源lq时,若被访问的共享资源lq为全局资源并且已经被其他子任务/>锁住,则将子任务/>阻塞并加入到资源阻塞队列SQq中。
4.如权利要求1所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为当子任务/>的执行过程中需要访问某个共享资源lq时,若被需要访问的共享资源lq为局部资源且已经被其他子任务/>锁住,则将子任务/>阻塞并加入到资源阻塞队列SQq中。
5.如权利要求4所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,若其他子任务的优先级比子任务/>的优先级低,则采用优先级继承的方式临时提升其他子任务/>的优先级为子任务/>的优先级,具体计算公式为:
其中为子任务/>的基础的优先级,/>为子任务/>的有效优先级,即子任务/>经过优先级继承后的优先级。
6.如权利要求1所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,在根据优先级使用锁协议的时候,定义某个并行任务i位于某个处理器pk中的某个子任务x为当子任务/>的执行过程中需要访问某个共享资源lq时,若共享资源lq未被其他子任务/>锁住且子任务/>的优先级高于系统天花板优先级Πk,则采用子任务/>锁住需要访问的共享资源lq,并将子任务/>存储到子任务就绪队列RQk中等待CPU的调度。
7.如权利要求2或3所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务被标记优先级提升标志位取消提升置位恢复最初状态。
8.如权利要求5所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,在共享资源访问结束后,将锁住的共享资源lq进行释放后,还需要将子任务的有效优先级恢复为基础的优先级/>即将子任务/>经过优先级继承后的优先级还原。
9.如权利要求1所述的一种在并行任务分组调度下使用锁协议的方法,其特征在于,共享资源访问结束后,将锁住的共享资源lq进行释放后,若资源阻塞队列SQq中还存储有子任务,则将资源阻塞队列SQq中存储的排在首位的子任务取出,并使用取出的子任务锁住共享资源lq,然后将取出的子任务加入到子任务就绪队列RQk中等待CPU的调度。
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 CN112965829A (zh) | 2021-06-15 |
CN112965829B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810479B (zh) * | 2021-08-31 | 2023-11-07 | 山石网科通信技术股份有限公司 | 服务协调系统以及服务协调方法 |
Citations (7)
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 | 上海电机学院 | 一种混合云环境下虚拟资源监控与分配方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10334070B2 (en) * | 2014-11-11 | 2019-06-25 | Unify Gmbh & Co. Kg | Method and system for real-time resource consumption control in a distributed computing environment |
-
2021
- 2021-02-22 CN CN202110197392.5A patent/CN112965829B/zh active Active
Patent Citations (7)
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 | 辉达公司 | 控制用于处理任务的工作分布 |
CN105468460A (zh) * | 2015-12-02 | 2016-04-06 | 上海电机学院 | 一种混合云环境下虚拟资源监控与分配方法 |
Non-Patent Citations (1)
Title |
---|
刘加海 等.共享资源约束下多核实时任务分配算法.《浙江大学学报(工学版)》.2014,第113-117、129页. * |
Also Published As
Publication number | Publication date |
---|---|
CN112965829A (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3380937B1 (en) | Techniques for analytics-driven hybrid concurrency control in clouds | |
Li et al. | Feedback dynamic algorithms for preemptable job scheduling in cloud systems | |
JP2650965B2 (ja) | 計算機システムおよびそのタスクスケジュール方法 | |
US7500037B2 (en) | System, method and program for managing locks | |
US8046759B2 (en) | Resource allocation method and system | |
US20090158299A1 (en) | System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed | |
US20050235289A1 (en) | Method for allocating resources in a hierarchical data processing system | |
US7209990B2 (en) | Maintain fairness of resource allocation in a multi-node environment | |
US8032884B2 (en) | Thread hand off | |
JP4912927B2 (ja) | タスク割当装置、及びタスク割当方法 | |
CN112965829B (zh) | 一种在并行任务分组调度下使用锁协议的方法 | |
CN109992403A (zh) | 多租户资源调度的优化方法、装置、终端设备及存储介质 | |
CN109522101A (zh) | 用于调度多个操作系统任务的方法、系统和/或装置 | |
KR20150122119A (ko) | 동시 우선순위 큐에서 시퀀서를 이용하는 시스템 및 방법 | |
US20090133029A1 (en) | Methods and systems for transparent stateful preemption of software system | |
Stavrinides et al. | Cost-effective utilization of complementary cloud resources for the scheduling of real-time workflow applications in a fog environment | |
EP2256627B1 (en) | Queuing for locks on data | |
CN112073532B (zh) | 一种资源分配的方法及装置 | |
US20040039884A1 (en) | System and method for managing the memory in a computer system | |
CN112214318A (zh) | 一种任务调度方法、系统、设备以及介质 | |
US9990240B2 (en) | Event handling in a cloud data center | |
CN106598726A (zh) | 一种多任务管理系统及其分布式部署方法 | |
CN109992359A (zh) | 一种事务调度方法 | |
US20140366162A1 (en) | Starvationless Kernel-Aware Distributed Scheduling of Software Licenses | |
JP2022079764A (ja) | 同期制御システムおよび同期制御方法 |
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 |