CN112463397B - lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 - Google Patents
lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN112463397B CN112463397B CN202011438337.2A CN202011438337A CN112463397B CN 112463397 B CN112463397 B CN 112463397B CN 202011438337 A CN202011438337 A CN 202011438337A CN 112463397 B CN112463397 B CN 112463397B
- Authority
- CN
- China
- Prior art keywords
- subtask
- current
- state
- resource
- 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/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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/5083—Techniques for rebalancing the load in a distributed system
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)
- Hardware Redundancy (AREA)
Abstract
本申请公开了lock‑free的分布式死锁避免方法及装置、计算机设备及可读存储介质。方法包括:对于每个任务,从所有绪状态的子任务选出一个子任务作为当前子任务;根据当前的剩余共享资源量对当前子任务进行安全检查以判断针对当前子任务的资源分配是否安全;若不安全则将当前子任务的状态更改为等待状态;若安全则利用当前的剩余共享资源量为当前子任务分配资源并运行当前任务;随后根据运行结束时的剩余共享资源量判断当前子任务是否能够释放资源,并基于判断结果对应更改当前子任务的状态;判断是否存在状态不为完成状态的子任务;在存在时,返回从任务的多个子任务中选出状态为就绪状态的一个子任务作为当前子任务的步骤。
Description
技术领域
本申请涉及计算机应用技术领域,特别涉及一种lock-free的分布式死锁避免方法、lock-free的分布式死锁避免装置、计算机设备及非易失性计算机可读存储介质。
背景技术
在分布式分布式操作***中,有些***资源需要被全局共享,***为用户进行网络资源调度的过程是“透明”的。当用户提交一个作业时,分布式***能够根据当前的***资源进行最佳的资源分配,分布式***中的每一个节点都是高度自治的,而其如何分布对用户来说是透明的。在多节点多任务的分布式作业运行模型中,多个节点同时协作完成一个分布式作业,节点内部也包含并发运行的多个互相依赖的子任务,由于节点之间存在共享资源,在多任务资源分配顺序不当的时候,即使共享资源的总量大于等于能保证任务执行完成的最小值也会产生死锁。资源在任务节点内如何进行分配和释放是设计安全检查算法的关键,常见资源的分配方式有:(1)一次性分配任务所需要的全部资源,运行完毕就释放资源;(2)分配可以保证任务开始运行的部分资源,等资源时不足任务可以再次请求,任务运行完毕就释放;(3)分配任务需要运行的所有需要的资源,任务结束时不释放资源,只有当***资源满足子任务运行所需的全部资源时才释放资源。方式(1)不符合死锁产生的请求和保持条件,不会产生死锁,方式(2)可以用传统的银行家算法避免死锁,方式(3)父子任务之间有更强的依赖性,释放资源也需要满足一定条件,而传统的银行家算法要求在剩余资源满足任务所需的全部资源时,任务总会将持有的资源释放,所以传统的银行家对于这种方式并不适用。
现有关于分布式死锁处理技术主要有以下两种,一种是通过集群间互相通信,同时维护一个局部知识配置表避免死锁,另一种是在已经发生死锁的情况下检测死锁,再进行死锁解除。然而,第一种方案为了避免死锁,需要在集群之间互相通信来维护每个节点的局部知识配置表,其传输的数据量较大,次数较多,代价较高,这是以高内聚低耦合设计为目标的分布式***不可容忍的缺点,且如果存在全局资源的情况下,全局资源所在的集群要承担巨大的计算和通信负载,最终会造成***负载不均、性能下降的结果。第二种方案要求***能承受解除死锁带来的损失,解除死锁的方式一般是事务回滚或者剥夺资源,这需要重新执行事务或者分配资源,代价十分高昂,且可能会再次出现死锁。因此,现有的分布式死锁处理方法不能有效地保证分布式***的可靠运行。
发明内容
本申请实施方式提供了一种lock-free的分布式死锁避免方法、lock-free的分布式死锁避免装置、计算机设备及非易失性计算机可读存储介质,以解决现有的分布式死锁处理方法不能有效地保证分布式***的可靠运行的问题。
本申请实施方式的lock-free的分布式死锁避免方法,用于分布式***。所述分布式***能够执行至少一个任务,每个所述任务包括多个子任务,所述lock-free的分布式死锁避免方法包括:对于每个所述任务,从所述任务的多个所述子任务中选出状态为就绪状态的一个子任务作为当前子任务;根据当前的剩余共享资源量对所述当前子任务进行安全检查以判断针对所述当前子任务的资源分配是否安全;若不安全,则将所述当前子任务的状态更改为等待状态,处于所述等待状态的所述子任务等待所述剩余共享资源量满足该子任务的需求时再运行;若安全,则利用所述当前的剩余共享资源量为所述当前子任务分配资源,并运行所述当前任务;在所述当前子任务运行结束后,释放所述当前子任务的输入资源,所述当前子任务的后置子任务判断所述当前子任务运行结束后的剩余共享资源是否满足所述后置子任务的输出资源需求;若所有的所述后置子任务的所述输出资源需求均满足,则将所述当前子任务的状态更改为完成状态;若存在所述资源需求不能被满足的所述后置子任务,则将所述资源需求不能被满足的所述后置子任务的状态更改为等待状态;判断是否存在状态不为所述完成状态的子任务;在存在所述状态不为完成状态的子任务时,返回所述从所述任务的多个所述子任务中选出状态为就绪状态的一个子任务作为当前子任务的步骤。
在某些实施方式中,所述lock-free的分布式死锁避免方法还包括:初始化每个所述任务中的多个子任务以确定每个所述任务的初始化信息,所述初始化信息包括所述任务的子任务执行信息、所述任务中的每个所述子任务的状态、每个所述子任务的输入资源需求量及输出资源需求量、每个所述子任务的入度、每个所述子任务的出度,其中,入度为零的所述子任务的状态为所述就绪状态。
在某些实施方式中,在一个子任务运行结束后,所述子任务的后置子任务的入度对应减一。
在某些实施方式中,在所述当前子任务为源结点的子任务时,所述根据当前的剩余共享资源量对所述当前子任务进行安全检查以判断针对所述当前子任务的资源分配是否安全,包括:判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量;若否,则确定针对所述当前子任务的资源分配不安全;若是,则将所述当前子任务的后置子任务的入度减一。
在某些实施方式中,在所述当前子任务不为所述源结点的子任务时,所述根据当前的剩余共享资源量对所述当前子任务进行安全检查以判断针对所述当前子任务的资源分配是否安全,包括:根据所述子任务执行信息确定一个当前拓扑排序;判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量;若否,则确定在所述当前拓扑排序下,针对所述当前子任务的资源分配不安全,并返回根据所述子任务执行信息确定一个当前拓扑排序的步骤;若是,则将所述当前子任务的前置子任务的出度减一;判断所述前置子任务的出度是否为零;在所述前置子任务的出度为零时,释放所述前置子任务的资源,并将所述当前的剩余共享资源量与所述前置子任务释放的资源量的总和作为新的当前的剩余共享资源量;判断所述当前子任务是否为最后一个状态不为所述完成状态的子任务;若是,则确定在所述当前拓扑排序下,针对所述当前子任务的资源分配安全;若否,则将下一个子任务作为新的当前子任务,并执行判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量的步骤。
本申请实施方式的lock-free的分布式死锁避免装置用于分布式***。所述分布式***能够执行至少一个任务,每个所述任务包括多个子任务。所述lock-free的分布式死锁避免装置包括选取模块、第一判断模块、更改模块、运行模块、第二判断模块、第三判断模块。所述选取模块用于对于每个所述任务,从所述任务的多个所述子任务中选出状态为就绪状态的一个子任务作为当前子任务。所述第一判断模块用于根据当前的剩余共享资源量对所述当前子任务进行安全检查以判断针对所述当前子任务的资源分配是否安全。所述更改模块用于在不安全时,将所述当前子任务的状态更改为等待状态,处于所述等待状态的所述子任务等待所述剩余共享资源量满足该子任务的需求时再运行。所述运行模块用于在安全时利用所述当前的剩余共享资源量为所述当前子任务分配资源,并运行所述当前任务。所述第二判断模块用于在所述当前子任务运行结束后,释放所述当前子任务的输入资源,并经由所述当前子任务的后置子任务判断所述当前子任务运行结束后的剩余共享资源是否满足所述后置子任务的输出资源需求。所述更改模块还用于在所有的所述后置子任务的所述输出资源需求均满足时,将所述当前子任务的状态更改为完成状态。所述更改模块还用于在存在所述资源需求不能被满足的所述后置子任务时,将所述资源需求不能被满足的所述后置子任务的状态更改为等待状态。所述第三判断模块用于判断是否存在状态不为所述完成状态的子任务。在存在所述状态不为完成状态的子任务时,返回所述从所述任务的多个所述子任务中选出状态为就绪状态的一个子任务作为当前子任务的步骤。
在某些实施方式中,所述lock-free的分布式死锁避免装置还包括初始化模块。所述初始化模块用于初始化每个所述任务中的多个子任务以确定每个所述任务的初始化信息,所述初始化信息包括所述任务的子任务执行信息、所述任务中的每个所述子任务的状态、每个所述子任务的输入资源需求量及输出资源需求量、每个所述子任务的入度、每个所述子任务的出度,其中,入度为零的所述子任务的状态为所述就绪状态。
在某些实施方式中,在一个子任务运行结束后,所述子任务的后置子任务的入度对应减一。
在某些实施方式中,在所述当前子任务为源结点的子任务时,所述第一判断模块用于:判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量;若否,则确定针对所述当前子任务的资源分配不安全;若是,则将所述当前子任务的后置子任务的入度减一。
在某些实施方式中,在所述当前子任务不为所述源结点的子任务时,所述第一判断模块用于:根据所述子任务执行信息确定一个当前拓扑排序;判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量;若否,则确定在所述当前拓扑排序下,针对所述当前子任务的资源分配不安全,并返回根据所述子任务执行信息确定一个当前拓扑排序的步骤;若是,则将所述当前子任务的前置子任务的出度减一;判断所述前置子任务的出度是否为零;在所述前置子任务的出度为零时,释放所述前置子任务的资源,并将所述当前的剩余共享资源量与所述前置子任务释放的资源量的总和作为新的当前的剩余共享资源量;判断所述当前子任务是否为最后一个状态不为所述完成状态的子任务;若是,则确定在所述当前拓扑排序下,针对所述当前子任务的资源分配安全;若否,则将下一个子任务作为新的当前子任务,并执行判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量的步骤。
本申请实施方式的计算机设备包括处理器、存储器及一个或多个程序。所述一个或多个程序存储在所述存储器中,所述一个或多个程序能够被所述处理器执行以实现上述任一实施方式所述的lock-free的分布式死锁避免方法。
本申请实施方式的非易失性计算机可读存储介质包含计算机程序。所述计算机程序被处理器执行时实现上述任一实施方式所述的lock-free的分布式死锁避免方法。
本申请实施方式的lock-free的分布式死锁避免方法、lock-free的分布式死锁避免装置、计算机设备及非易失性计算机可读存储介质中,各个任务执行的节点之间不需要互相通信,每个任务执行的节点只需要和全局资源持有节点通信,通信的内容仅仅是全局资源的剩余总量,大大减少了节点间的通信代价。这种任务调度算法既避免了死锁的产生,也不存在解除死锁耗费的代价,大大提高了***的稳定性和可靠性,能够有效地保证分布式***的可靠运行。
本申请实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点可以从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
图1是本申请某些实施方式的lock-free的分布式死锁避免方法的流程示意图;
图2是本申请某些实施方式的lock-free的分布式死锁避免装置的模块示意图;
图3是本申请某些实施方式的lock-free的分布式死锁避免方法的场景示意图;
图4是本申请某些实施方式的lock-free的分布式死锁避免方法的场景示意图;
图5是本申请某些实施方式的lock-free的分布式死锁避免方法的场景示意图;
图6是本申请某些实施方式的lock-free的分布式死锁避免方法的流程示意图;
图7是本申请某些实施方式的lock-free的分布式死锁避免方法的流程示意图;
图8是本申请某些实施方式的计算机设备的示意图;
图9是本申请某些实施方式的非易失性计算机可读存储介质与处理器的交互示意图。
具体实施方式
下面详细描述本申请的实施方式,所述实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请的实施方式,而不能理解为对本申请的实施方式的限制。
请参阅图1,本申请实施方式提供一种用于分布式***的lock-free的分布式死锁避免方法。分布式***能够执行至少一个任务,每个任务包括多个子任务。lock-free的分布式死锁避免方法包括:
01:对于每个任务,从所有绪状态的子任务选出一个子任务作为当前子任务;
02:根据当前的剩余共享资源量对当前子任务进行安全检查以判断针对当前子任务的资源分配是否安全;
03:若不安全,则将当前子任务的状态更改为等待状态,处于等待状态的子任务等待剩余共享资源量满足该子任务的需求时再运行;
04:若安全,则利用当前的剩余共享资源量为当前子任务分配资源,并运行当前任务;
05:在当前子任务运行结束后,释放当前子任务的输入资源,当前子任务的后置子任务判断当前子任务运行结束后的剩余共享资源是否满足后置子任务的输出资源需求;
06:若所有的后置子任务的输出资源需求均满足,则将当前子任务的状态更改为完成状态;
07:若存在资源需求不能被满足的后置子任务,则将资源需求不能被满足的后置子任务的状态更改为等待状态;
08:判断是否存在状态不为完成状态的子任务;
在存在状态不为完成状态的子任务时,返回从任务的多个子任务中选出状态为就绪状态的一个子任务作为当前子任务的步骤。
请参阅图2,本申请实施方式还提供一种用于分布式***的lock-free的分布式死锁避免装置10。lock-free的分布式死锁避免装置10包括选取模块11、第一判断模块12、更改模块13、运行模块14、第二判断模块15及第三判断模块16。步骤01可以由选取模块11实现。步骤02可以由第一判断模块12实现。步骤03、步骤06及步骤07可以由更改模块13实现。步骤04可以由运行模块14实现。步骤05可以由第二判断模块15实现。步骤08可以由第三判断模块16实现。
也即是说,选取模块11可用于对于每个任务,从任务的多个子任务中选出状态为就绪状态的一个子任务作为当前子任务。第一判断模块12可用于根据当前的剩余共享资源量对当前子任务进行安全检查以判断针对当前子任务的资源分配是否安全。更改模块13可用于在不安全时,将当前子任务的状态更改为等待状态,处于等待状态的子任务等待剩余共享资源量满足该子任务的需求时再运行。运行模块14可用于在安全时利用当前的剩余共享资源量为当前子任务分配资源,并运行当前任务。第二判断模块15可用于在当前子任务运行结束后,释放当前子任务的输入资源,并经由当前子任务的后置子任务判断当前子任务运行结束后的剩余共享资源是否满足后置子任务的输出资源需求。更改模块13还可用于在若所有的后置子任务的输出资源需求均满足时,将当前子任务的状态更改为完成状态。更改模块13还可用于在存在资源需求不能被满足的后置子任务时,将资源需求不能被满足的后置子任务的状态更改为等待状态。第三判断模块16可用于判断是否存在状态不为完成状态的子任务。在存在状态不为完成状态的子任务时,返回从任务的多个子任务中选出状态为就绪状态的一个子任务作为当前子任务的步骤。
进一步地,lock-free的分布式死锁避免方法还包括:初始化每个任务中的多个子任务以确定每个任务的初始化信息。相应地,lock-free的分布式死锁避免装置10包括初始化模块。初始化模块可用于初始化每个任务中的多个子任务以确定每个任务的初始化信息。其中,初始化信息包括任务的子任务执行信息、任务中的每个子任务的状态、每个子任务的输入资源需求量及输出资源需求量、每个子任务的入度、每个子任务的出度。其中,入度为零的子任务的状态为就绪状态。
具体地,分布式***可以执行分布式的多个任务。每个任务包括多个子任务。结合图3所示,分布式***将整个作业划分为一个个较为独立的任务,每个任务由一个节点执行,图3中每个虚线框表示一个任务的执行节点,由此,多个节点协作完成一个作业。每个任务可以包括相互依赖的可以并行执行的多个子任务,每个子任务可看作一个结点,如图2中子任务执行图内的一个圆圈表示一个结点,任务执行图中的有向边表示多个子任务之间的依赖关系。对于每一个子任务,其既可以是指向其他子任务的前置子任务,也可以是被指向的后置子任务。
如图4所示,每个子任务的执行都会经历六种状态:开始状态(start)、就绪状态(ready)、等待状态(wait)、运行状态(running)、运行结束状态(done)、完成状态(finish),处于开始状态的子任务,说明其前置子任务还未执行完毕,因而该子任务不能被调度和分配资源。处于就绪状态的子任务,说明其所有前置子任务均执行完毕,该子任务等待被调度和分配资源。处于等待状态的子任务,说明由于资源不足,该子任务被加入等待队列中等待被调度。处于运行状态的子任务,说明其已经被分配可以具备执行资格的初始资源,该子任务正在运行中。处于运行结束状态的子任务,说明该子任务已执行完毕,但还未释放资源。处于完成状态的子任务,说明该子任务已经释放持有的资源。
每个任务下的多个子任务可以被初始化以获得初始化信息,例如,多个子任务被初始化以获得如图5所示的子任务执行图(也即子任务执行信息)、每个子任务的状态、输入资源需求量、输出资源需求量、出度、入度等。具体地,如图5所示,子任务执行图中每个圆圈代表运行一个子任务的一个结点,圆圈中的数字表示子任务运行所需要的输入资源需求量,某一子任务的后置子任务的输入资源需求量表示该子任务的输出资源需求量,方框中的数字表示当前的剩余共享资源量。一个子任务的输出资源是其后置子任务的输入资源,一个子任务开始前需要分配所有的资源,由于源结点代表的子任务没有前置子任务,所以开始运行前该子任务的资源需求总量为输入资源需求量和输出资源需求量的总和,除源结点以外的其他结点将在其开始前已经持有的其前置子任务的输出资源作为自己的输入资源,所以其开始运行前的资源需求量为输出资源。一个子任务可以被执行的前提是所有指向它的前置子任务执行完毕,且分布式***的当前的剩余共享资源量满足该子任务运行所需的资源需求总量(即,输入资源需求量+输出资源需求量)。如图5中的结点a可以开始运行的条件是当前的剩余共享资源量大于17(17=3+5+4+5),而一个子任务运行完成后(即处于运行结束状态)可以释放分配给该子任务的输入资源,该子任务的后置子任务完成后才会释放分配给该子任务的输出资源,如结点a运行完成后会释放3个资源。需要说明的是,图5所示实施例中仅用一种资源进行描述。在其他实施例中,可以用一个多维资源向量来表示一个子任务需要的多种资源。
从图5可以看出,该子任务执行图满足以下条件:(1)为了维护数据一致性,资源必须是互斥使用的,满足资源互斥条件;(2)为了维护分布式***的正确性,子任务在使用资源的时候不可以被剥夺,满足不可剥夺条件;(3)子任务在分配全部所需资源开始运行,运行完成会释放输入资源,只有在当前的剩余共享资源量满足其后置子任务运行的情况下才会释放输出资源,即除了源结点,一个子任务在持有输入资源的情况下会请求输出资源,满足请求和保持条件;(4)子任务之间存在共享资源,可能会有子任务1拥有资源A请求资源B,子任务2拥有资源B请求资源A,满足循环等待条件。因此,对于如图5所示的满足上述四个条件的子任务执行图,可能出现由于为子任务分配资源的顺序不当而产生死锁的问题。
下面结合图6对本申请实施方式的lock-free的分布式死锁避免方法进行详细解释。在对每个任务下的多个子任务进行初始化后,将当前所有入度为零的结点(也即入度为零的子任务)加入就绪队列。随后,从就绪队列中取出一个结点,也即从任务的多个子任务中选出状态为就绪状态的一个子任务作为当前子任务,锁当前的剩余共享资源。随后,根据当前的剩余共享资源量对当前子任务进行安全检查以判断针对当前子任务的资源分配是否安全,检查完毕后,释放当前的剩余共享资源的锁。如果检查结果为不安全,则将当前子任务的状态更改为等待状态,状态为等待状态的子任务会被加入等待队列,处于等待状态的子任务等待其他子任务释放资源,在其他子任务释放的资源满足其资源需求时,处于等待状态的子任务会被通知唤醒,以进行后续的资源分配及运行动作。如果检查结果为安全,则利用当前的剩余共享资源量为当前子任务分配资源,并将当前子任务提交给线程池,让线程池自动调度,被调度的当前子任务的状态由就绪状态更改为运行状态。运行结束后,该当前子任务的状态由运行状态更改为运行结束状态。在当前子任务运行结束后,释放当前子任务的输入资源,当前子任务的后置子任务判断当前子任务运行结束后的剩余共享资源是否满足后置子任务的输出资源需求。若所有的后置子任务的输出资源需求均满足,则将当前子任务的状态更改为完成状态。若存在资源需求不能被满足的后置子任务,则将资源需求不能被满足的后置子任务的状态更改为等待状态,该资源需求不能被满足的后置子任务被加入等待队列。随后,判断是否存在状态不为完成状态的子任务,若存在状态不为完成状态的子任务,则返回从任务的多个子任务中选出状态为就绪状态的一个子任务作为当前子任务的步骤,从入度为零的子任务中选取一个新的子任务作为新的当前子任务,并重复上述步骤。若不存在状态不为完成状态的子任务,则该节点的任务执行完毕。
本申请实施方式的lock-free的分布式死锁避免方法及lock-free的分布式死锁避免装置10中,各个任务执行的节点之间不需要互相通信,每个任务执行的节点只需要和全局资源持有节点通信,通信的内容仅仅是全局资源的剩余总量,大大减少了节点间的通信代价。这种任务调度算法既避免了死锁的产生,也不存在解除死锁耗费的代价,大大提高了***的稳定性和可靠性,能够有效地保证分布式***的可靠运行。
在某些实施方式中,一个子任务运行结束后,子任务的后置子任务的入度对应减一。
具体地,每当一个子任务的状态由运行状态更改为运行结束状态,该子任务的后置子任务的入度对应减一。如此,入度为零的子任务可以被加入到就绪队列中,可被选取出来作为当前子任务进行资源分配及安全检查。
在某些实施方式中,在当前子任务为源结点的子任务时,步骤02根据当前的剩余共享资源量对当前子任务进行安全检查以判断针对当前子任务的资源分配是否安全,包括:
判断当前的剩余共享资源量是否满足当前子任务的资源需求量;
若否,则确定针对当前子任务的资源分配不安全;
若是,则将当前子任务的后置子任务的入度减一。
请参阅图2,在某些实施方式中,第一判断模块12还可用于:判断当前的剩余共享资源量是否满足当前子任务的资源需求量;若否,则确定针对当前子任务的资源分配不安全;若是,则将当前子任务的后置子任务的入度减一。
具体地,请结合图7,若当前子任务为源结点的子任务,则判断当前的剩余共享资源量是否满足当前子任务的资源需求量,若否,则返回针对当前子任务的资源分配不安全的信息,并等待其他任务释放资源;若是,则将当前的剩余共享资源量减去当前子任务的资源需求量,并将当前子任务的后置子任务的入度减一,源结点的后置子任务的入度减一后,后置子任务可以被加入到就绪队列中,等待资源分配和调度。
在某些实施方式中,在当前子任务不为源结点的子任务时,根据当前的剩余共享资源量对当前子任务进行安全检查以判断针对当前子任务的资源分配是否安全,包括:
根据子任务执行信息确定一个当前拓扑排序;
判断当前的剩余共享资源量是否满足当前子任务的资源需求量;
若否,则确定在当前拓扑排序下,针对当前子任务的资源分配不安全,并返回根据子任务执行信息确定一个当前拓扑排序的步骤;
若是,则将当前子任务的前置子任务的出度减一;
判断前置子任务的出度是否为零;
在前置子任务的出度为零时,释放所述前置子任务的资源,并将当前的剩余共享资源量与前置子任务释放的资源量的总和作为新的当前的剩余共享资源量;
判断当前子任务是否为最后一个状态不为完成状态的子任务;
若是,则确定在当前拓扑排序下,针对当前子任务的资源分配安全;
若否,则将下一个子任务作为新的当前子任务,并执行判断当前的剩余共享资源量是否满足当前子任务的资源需求量的步骤。
请参阅图2,在某些实施方式中,第一判断模块12还可用于:根据子任务执行信息确定一个当前拓扑排序;判断当前的剩余共享资源量是否满足当前子任务的资源需求量;若否,则确定在当前拓扑排序下,针对当前子任务的资源分配不安全,并返回根据子任务执行信息确定一个当前拓扑排序的步骤;若是,则将当前子任务的前置子任务的出度减一;判断前置子任务的出度是否为零;在前置子任务的出度为零时,释放所述前置子任务的资源,并将当前的剩余共享资源量与前置子任务释放的资源量的总和作为新的当前的剩余共享资源量;判断当前子任务是否为最后一个状态不为完成状态的子任务;若是,则确定在当前拓扑排序下,针对当前子任务的资源分配安全;若否,则将下一个子任务作为新的当前子任务,并执行判断当前的剩余共享资源量是否满足当前子任务的资源需求量的步骤。
具体地,请结合图7,若当前子任务不为源结点的子任务,则根据任务执行图找一个拓扑排序。随后,对于该拓扑排序,按照顺序以图1所示的死锁避免方法的资源分配和释放逻辑模拟资源的分配和回收。具体地,判断当前的剩余共享资源量是否满足当前子任务的资源需求量,即将当前的剩余共享资源量减去当前子任务的资源需求量,若结果为负,说明不能满足,则此时判断是否找完所有的拓扑排序,若是,则返回针对当前子任务的资源分配不安全的信息,若否,则返回根据子任务执行信息确定一个当前拓扑排序,并依序执行该步骤之后的后续步骤;若结果不为负,则说明不能满足,此时,将当前子任务的前置子任务的出度减一。随后,判断前置子任务的出度是否为零,若是,则释放前置子任务的资源,并将当前的剩余共享资源量与前置子任务释放的资源量的总和作为新的当前的剩余共享资源量。随后,再判断当前子任务是否为最后一个状态不为完成状态的子任务,若是,则确定在当前拓扑排序下,针对当前子任务的资源分配安全;若否,则将下一个子任务作为新的当前子任务,并执行判断当前的剩余共享资源量是否满足当前子任务的资源需求量的步骤。如此循环往复,直至找到一个拓扑排序可以使当前的剩余共享资源满足当前子任务的顺序执行,或找完所有拓扑排序为止。
本申请实施方式的死锁避免方法及死锁避免装置不仅在资源分配时要进行安全检查的判断,在进程或线程结束任务释放资源的时候还要再次进行资源判断,判断安全模拟资源分配的时候有资源的回收也有资源的占用,资源不是在每次模拟分配时都是递增的,因此,本申请需要回溯拓扑排序的顺序,直到找到一个可以安全分配的顺序,如果所有的拓扑排序都无法满足,则判断不安全。
综上,由于现有的死锁处理大多从死锁预防和死锁解除入手,死锁预防在现在任务动态变化的实时分布***中难以实现,死锁解除代价高昂,而死锁避免是一个较好的解决方案。银行家算法是常用的死锁避免算法,但是使用银行家算法需要全局信息,这要求分布式节点进行高频的全局通信,而分布式***的设计目标之一就是高内聚低耦合,高频的全局通信是分布式***无法容忍的,局部的死锁避免也会产生过判断的情况,其结果是让某个节点内的任务多等待一段时间。因此,本申请采用折中方案,节点内部进行局部任务调度的时候避免死锁产生,节点之间不需要互相通信,每个分布式任务执行的节点只需要和全局资源持有节点通信,通信的内容仅仅是全局资源的剩余总量,大大减少了节点间的通信代价。这种任务调度算法由于避免了死锁的产生,也不存在解除死锁耗费的代价,大大提高了***的稳定性和可靠性。
请参阅图8,本申请实施方式还提供一种计算机设备20。计算机设备20包括处理器21、存储器22及一个或多个程序。一个或多个程序存储在存储器22中,一个或多个程序能够被处理器21执行以实现上述任一实施方式所述的lock-free的分布式死锁避免方法。
例如,请结合图1和图8,一个或多个程序能够被处理器21执行以实现以下步骤:
01:对于每个任务,从任务的多个子任务中选出状态为就绪状态的一个子任务作为当前子任务;
02:根据当前的剩余共享资源量对当前子任务进行安全检查以判断针对当前子任务的资源分配是否安全;
03:若不安全,则将当前子任务的状态更改为等待状态,处于等待状态的子任务等待剩余共享资源量满足该子任务的需求时再运行;
04:若安全,则利用当前的剩余共享资源量为当前子任务分配资源,并运行当前任务;
05:在当前子任务运行结束后,释放该子任务占用的输入资源,后置任务判断当前资源是否满足其输出资源的要求;
06:若所有的后置任务都判断满足,则将当前子任务的状态更改为完成状态;
07:若不能够释放资源,则不满足资源分配的后置子任务的状态更改为等待状态;
08:判断是否存在状态不为完成状态的子任务;
在存在状态不为完成状态的子任务时,返回从任务的多个子任务中选出状态为就绪状态的一个子任务作为当前子任务的步骤。
请参阅图9,本申请实施方式还提供一种非易失性计算机可读存储介质30。非易失性计算机可读存储介质30包含计算机程序。计算机程序被处理器21执行时实现上述任一实施方式所述的lock-free的分布式死锁避免方法。
例如,请结合图1和图9,计算机程序被处理器21执行时实现以下步骤:
01:对于每个任务,从任务的多个子任务中选出状态为就绪状态的一个子任务作为当前子任务;
02:根据当前的剩余共享资源量对当前子任务进行安全检查以判断针对当前子任务的资源分配是否安全;
03:若不安全,则将当前子任务的状态更改为等待状态,处于等待状态的子任务等待剩余共享资源量满足该子任务的需求时再运行;
04:若安全,则利用当前的剩余共享资源量为当前子任务分配资源,并运行当前任务;
05:在当前子任务运行结束后,释放该子任务占用的输入资源,后置任务判断当前资源是否满足其输出资源的要求;
06:若所有的后置任务都判断满足,则将当前子任务的状态更改为完成状态;
07:若不能够释放资源,则不满足资源分配的后置子任务的状态更改为等待状态;
08:判断是否存在状态不为完成状态的子任务;
在存在状态不为完成状态的子任务时,返回从任务的多个子任务中选出状态为就绪状态的一个子任务作为当前子任务的步骤。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
尽管上面已经示出和描述了本申请的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施方式进行变化、修改、替换和变型。
Claims (10)
1.一种lock-free的分布式死锁避免方法,用于分布式***,其特征在于,所述分布式***能够执行至少一个任务,每个所述任务包括多个子任务,所述lock-free的分布式死锁避免方法包括:
对于每个任务,从所有就 绪状态的子任务选出一个子任务作为当前子任务;
根据当前的剩余共享资源量对所述当前子任务进行安全检查以判断针对所述当前子任务的资源分配是否安全;
若不安全,则将所述当前子任务的状态更改为等待状态,处于所述等待状态的所述子任务等待所述剩余共享资源量满足该子任务的需求时再运行;
若安全,则利用所述当前的剩余共享资源量为所述当前子任务分配资源,并运行所述当前子任务;
在所述当前子任务运行结束后,释放所述当前子任务的输入资源,所述当前子任务的后置子任务判断所述当前子任务运行结束后的剩余共享资源是否满足所述后置子任务的输出资源需求;
若所有的所述后置子任务的所述输出资源需求均满足,则将所述当前子任务的状态更改为完成状态;
若存在所述资源需求不能被满足的所述后置子任务,则将所述资源需求不能被满足的所述后置子任务的状态更改为等待状态;
判断是否存在状态不为所述完成状态的子任务;
在存在所述状态不为完成状态的子任务时,返回所述从所述任务的多个所述子任务中选出状态为就绪状态的一个子任务作为当前子任务的步骤;
在所述当前子任务不为源结点的子任务时,所述根据当前的剩余共享资源量对所述当前子任务进行安全检查以判断针对所述当前子任务的资源分配是否安全,包括:
根据所述子任务执行信息确定一个当前拓扑排序;
判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量;
若否,则确定在所述当前拓扑排序下,针对所述当前子任务的资源分配不安全,并返回根据所述子任务执行信息确定一个当前拓扑排序的步骤;
若是,则将所述当前子任务的前置子任务的出度减一;
判断所述前置子任务的出度是否为零;
在所述前置子任务的出度为零时,释放所述前置子任务的资源,并将所述当前的剩余共享资源量与所述前置子任务释放的资源量的总和作为新的当前的剩余共享资源量;
判断所述当前子任务是否为最后一个状态不为所述完成状态的子任务;
若是,则确定在所述当前拓扑排序下,针对所述当前子任务的资源分配安全;
若否,则将下一个子任务作为新的当前子任务,并执行判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量的步骤。
2.根据权利要求1所述的lock-free的分布式死锁避免方法,其特征在于,所述分布式死锁避免方法还包括:
初始化每个所述任务中的多个子任务以确定每个所述任务的初始化信息,所述初始化信息包括所述任务的子任务执行信息、所述任务中的每个所述子任务的状态、每个所述子任务的输入资源需求量及输出资源需求量、每个所述子任务的入度、每个所述子任务的出度,其中,入度为零的所述子任务的状态为所述就绪状态。
3.根据权利要求2所述的lock-free的分布式死锁避免方法,其特征在于,在一个子任务运行结束后,所述子任务的后置子任务的入度对应减一。
4.根据权利要求2所述的lock-free的分布式死锁避免方法,其特征在于,在所述当前子任务为源结点的子任务时,所述根据当前的剩余共享资源量对所述当前子任务进行安全检查以判断针对所述当前子任务的资源分配是否安全,包括:
判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量;
若否,则确定针对所述当前子任务的资源分配不安全;
若是,则将所述当前子任务的后置子任务的入度减一。
5.一种lock-free的分布式死锁避免装置,用于分布式***,其特征在于,所述分布式***能够执行至少一个任务,每个所述任务包括多个子任务,所述lock-free的分布式死锁避免装置包括:
选取模块,用于对于每个所述任务,从所述任务的多个所述子任务中选出状态为就绪状态的一个子任务作为当前子任务;
第一判断模块,用于根据当前的剩余共享资源量对所述当前子任务进行安全检查以判断针对所述当前子任务的资源分配是否安全;
更改模块,用于在不安全时,将所述当前子任务的状态更改为等待状态,处于所述等待状态的所述子任务等待所述剩余共享资源量满足该子任务的需求时再运行;
运行模块,用于在安全时利用所述当前的剩余共享资源量为所述当前子任务分配资源,并运行所述当前子任务;
第二判断模块,用于在所述当前子任务运行结束后,释放所述当前子任务的输入资源,并经由所述当前子任务的后置子任务判断所述当前子任务运行结束后的剩余共享资源是否满足所述后置子任务的输出资源需求;
所述更改模块还用于在所有的所述后置子任务的所述输出资源需求均满足时,将所述当前子任务的状态更改为完成状态;
所述更改模块还用于在存在所述资源需求不能被满足的所述后置子任务时,将所述资源需求不能被满足的所述后置子任务的状态更改为等待状态;
第三判断模块,用于判断是否存在状态不为所述完成状态的子任务;
在存在所述状态不为完成状态的子任务时,返回所述从所述任务的多个所述子任务中选出状态为就绪状态的一个子任务作为当前子任务的步骤;
在所述当前子任务不为源结点的子任务时,所述第一判断模块用于:
根据所述子任务执行信息确定一个当前拓扑排序;
判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量;
若否,则确定在所述当前拓扑排序下,针对所述当前子任务的资源分配不安全,并返回根据所述子任务执行信息确定一个当前拓扑排序的步骤;
若是,则将所述当前子任务的前置子任务的出度减一;
判断所述前置子任务的出度是否为零;
在所述前置子任务的出度为零时,释放所述前置子任务的资源,并将所述当前的剩余共享资源量与所述前置子任务释放的资源量的总和作为新的当前的剩余共享资源量;
判断所述当前子任务是否为最后一个状态不为所述完成状态的子任务;
若是,则确定在所述当前拓扑排序下,针对所述当前子任务的资源分配安全;
若否,则将下一个子任务作为新的当前子任务,并执行判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量的步骤。
6.根据权利要求5所述的lock-free的分布式死锁避免装置,其特征在于,所述分布式死锁避免装置还包括:
初始化模块,用于初始化每个所述任务中的多个子任务以确定每个所述任务的初始化信息,所述初始化信息包括所述任务的子任务执行信息、所述任务中的每个所述子任务的状态、每个所述子任务的输入资源需求量及输出资源需求量、每个所述子任务的入度、每个所述子任务的出度,其中,入度为零的所述子任务的状态为所述就绪状态。
7.根据权利要求6所述的lock-free的分布式死锁避免装置,其特征在于,在一个子任务运行结束后,所述子任务的后置子任务的入度对应减一。
8.根据权利要求6所述的lock-free的分布式死锁避免装置,其特征在于,在所述当前子任务为源结点的子任务时,所述第一判断模块用于:
判断所述当前的剩余共享资源量是否满足所述当前子任务的资源需求量;
若否,则确定针对所述当前子任务的资源分配不安全;
若是,则将所述当前子任务的后置子任务的入度减一。
9.一种计算机设备,其特征在于,包括:
处理器;
存储器;及
一个或多个程序,所述一个或多个程序存储在所述存储器中,所述一个或多个程序能够被所述处理器执行以实现权利要求1-4任意一项所述的lock-free的分布式死锁避免方法。
10.一种包含计算机程序的非易失性计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4任意一项所述的lock-free的分布式死锁避免方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011438337.2A CN112463397B (zh) | 2020-12-10 | 2020-12-10 | lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 |
PCT/CN2020/139345 WO2022120984A1 (zh) | 2020-12-10 | 2020-12-25 | Lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011438337.2A CN112463397B (zh) | 2020-12-10 | 2020-12-10 | lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463397A CN112463397A (zh) | 2021-03-09 |
CN112463397B true CN112463397B (zh) | 2023-02-10 |
Family
ID=74800579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011438337.2A Active CN112463397B (zh) | 2020-12-10 | 2020-12-10 | lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112463397B (zh) |
WO (1) | WO2022120984A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0343646A2 (en) * | 1988-05-26 | 1989-11-29 | Hitachi, Ltd. | Task execution control method for a multiprocessor system with enhanced post/wait procedure |
CN103473122A (zh) * | 2013-08-21 | 2013-12-25 | 上海交通大学 | 一种云计算环境中的工作流***资源调度方法 |
CN104123184A (zh) * | 2013-04-28 | 2014-10-29 | 国际商业机器公司 | 一种用于为构建过程中的任务分配资源的方法和*** |
CN108268318A (zh) * | 2016-12-30 | 2018-07-10 | 华为技术有限公司 | 一种分布式***任务分配的方法和装置 |
CN109561148A (zh) * | 2018-11-30 | 2019-04-02 | 湘潭大学 | 边缘计算网络中基于有向无环图的分布式任务调度方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8887163B2 (en) * | 2010-06-25 | 2014-11-11 | Ebay Inc. | Task scheduling based on dependencies and resources |
CN102591712B (zh) * | 2011-12-30 | 2013-11-20 | 大连理工大学 | 一种云计算中依赖任务的解耦并行调度方法 |
US9628346B2 (en) * | 2012-12-13 | 2017-04-18 | Level 3 Communications, Llc | Devices and methods supporting content delivery with reducer services |
CN103473137B (zh) * | 2013-09-16 | 2017-04-12 | 东软集团股份有限公司 | 避免死锁的资源分配方法及*** |
US10140151B2 (en) * | 2017-04-19 | 2018-11-27 | International Business Machines Corporation | Leveraging directed acyclic graph (DAG) information to group tasks for execution |
CN109144702B (zh) * | 2018-09-06 | 2021-12-07 | 兰州大学 | 一种用于行列并行粗粒度可重构阵列多目标优化自动映射调度方法 |
CN109901926A (zh) * | 2019-01-25 | 2019-06-18 | 平安科技(深圳)有限公司 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
CN111858056B (zh) * | 2020-07-24 | 2021-12-17 | 南方电网数字电网研究院有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
-
2020
- 2020-12-10 CN CN202011438337.2A patent/CN112463397B/zh active Active
- 2020-12-25 WO PCT/CN2020/139345 patent/WO2022120984A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0343646A2 (en) * | 1988-05-26 | 1989-11-29 | Hitachi, Ltd. | Task execution control method for a multiprocessor system with enhanced post/wait procedure |
CN104123184A (zh) * | 2013-04-28 | 2014-10-29 | 国际商业机器公司 | 一种用于为构建过程中的任务分配资源的方法和*** |
CN103473122A (zh) * | 2013-08-21 | 2013-12-25 | 上海交通大学 | 一种云计算环境中的工作流***资源调度方法 |
CN108268318A (zh) * | 2016-12-30 | 2018-07-10 | 华为技术有限公司 | 一种分布式***任务分配的方法和装置 |
CN109561148A (zh) * | 2018-11-30 | 2019-04-02 | 湘潭大学 | 边缘计算网络中基于有向无环图的分布式任务调度方法 |
Non-Patent Citations (2)
Title |
---|
Fine-grained scheduling in multi-resource clusters;Zhou M.,等,;《Journal of supercomputing》;20180831;1931-1958 * |
Resource Sharing under Multiprocessor Semi-partitioned Scheduling;S. Afshar,等;《2012 IEEE International Conference on Embedded and Real-Time Computing Systems and Applications》;20121231;290-299 * |
Also Published As
Publication number | Publication date |
---|---|
WO2022120984A1 (zh) | 2022-06-16 |
CN112463397A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8112751B2 (en) | Executing tasks through multiple processors that process different portions of a replicable task | |
Li et al. | Feedback dynamic algorithms for preemptable job scheduling in cloud systems | |
CN109144710B (zh) | 资源调度方法、装置及计算机可读存储介质 | |
US8893148B2 (en) | Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks | |
US20090064168A1 (en) | System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks By Modifying Tasks | |
US20190146847A1 (en) | Dynamic distributed resource management | |
US20090064165A1 (en) | Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks | |
US8239845B2 (en) | Media for using parallel processing constructs | |
CN109815021B (zh) | 针对递归树建模程序的资源关键树方法及*** | |
CN109117252B (zh) | 基于容器的任务处理的方法、***及容器集群管理*** | |
WO2015127668A1 (en) | Task centric resource scheduling framework | |
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
Mashayekhi et al. | Execution templates: Caching control plane decisions for strong scaling of data analytics | |
CN113010286A (zh) | 并行任务调度方法、装置、计算机设备和存储介质 | |
CN106201681A (zh) | Hadoop平台下基于预释放资源列表的任务调度算法 | |
CN112463397B (zh) | lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 | |
CN113626173A (zh) | 调度方法、装置及存储介质 | |
CN113419839A (zh) | 多类型作业的资源调度方法、装置、电子设备及存储介质 | |
CN108287762B (zh) | 分布式计算交互式模式使用资源优化方法以及计算机设备 | |
Zeng et al. | Optimizing stack memory requirements for real-time embedded applications | |
Chen et al. | Speculative slot reservation: Enforcing service isolation for dependent data-parallel computations | |
Zhang et al. | Cost-efficient and latency-aware workflow scheduling policy for container-based systems | |
Vasu et al. | Application Constraints and Safety Aware Mapping of AUTOSAR Applications on Multi-core Platforms | |
Girisagar et al. | Mapping workflow resource requests for bandwidth efficiency in data centers | |
Chadha | Adaptive Resource-Aware Batch Scheduling for HPC Systems |
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 |