一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

资源池分组分配系统及方法与流程

2022-03-09 08:04:51 来源:中国专利 TAG:


1.本发明涉及资源分配技术领域,具体地,涉及一种资源池分组分配系统及方法,尤其适用于高并发资源池。


背景技术:

2.目前多数处理器都实现了用于提高处理器内部资源利用率和整体指令吞吐率的同步多线程(smt)技术。多线程技术可以提高核心利用率,将空闲的计算资源充分调度起来,增加核心处理部件的并行运算性能,从而提高处理的整体性能。然而在多线程大并发争抢有限资源时,面临最大难题是如何高效有效分配资源。
3.在公开号为cn112445619a的中国专利文献中,公开了一种在多线程系统中动态共享有序资源的管理系统及方法,该系统包括:被配置为管理可用资源的可用资源池;被配置为管理各个线程可分配资源的数量的资源令牌管理模块;被配置为根据可用资源的数量、各个线程可分配资源的数量、各个线程申请分配的资源数量来对各个线程分配资源的仲裁模块;以及每个线程的线程资源管理模块,其中一个线程资源管理模块管理一个线程的资源,每个线程资源管理模块每个被配置为:以被管理的线程被分配的资源的顺序,向可用资源池释放被管理的线程的资源。


技术实现要素:

4.针对现有技术中的缺陷,本发明的目的是提供一种资源池分组分配系统及方法。
5.根据本发明提供的一种资源池分组分配系统,包括:资源管理器模块和资源队列管理模块;
6.所述资源管理器模块用于将资源划分为n个资源队列,并组成有n个节点的循环链表;对循环链表创建分配指针和释放指针,所述分配指针指向当前要分配资源的资源队列,所述释放指针指向当前要接收资源的资源队列;
7.所述资源队列管理模块用于将本队列的资源分配给请求的线程,以及将线程要释放的资源存储到本队列。
8.优选的,所述资源管理器模块还用于创建优先资源队列,所述优先资源队列用于实现部分资源的优先利用。
9.优选的,所述资源队列管理模块采用可重入锁 队列管理资源分配,避免将同一资源分配给不同的线程。
10.优选的,所述线程请求分配资源包括以下步骤:
11.步骤s1.1:检查优先资源队列是否被激活,如果激活,则从优先资源队列请求资源分配资源,否则进入步骤s1.2;
12.步骤s1.2:创建临时指针指向分配指针指向的资源队列,将分配指针移动到下一个资源队列;
13.步骤s1.3:从临时指针指向的资源队列分配资源,若分配到资源则返回,若未分配
到资源则将临时指针移动到下一个资源队列进行分配,如此循环执行,直到指针回到最初位置。
14.优选的,所述线程请求释放资源包括以下步骤:
15.步骤s2.1:检查资源是否满足优先分配条件,若满足则释放资源到优先资源队列,否则进入步骤s2.2;
16.步骤s2.2:标记获取当前释放指针指向的资源队列,将指针移动到下一个资源队列,将资源释放到标记的资源队列。
17.根据本发明提供的一种资源池分组分配方法,包括:资源管理步骤和资源队列管理步骤;
18.资源管理步骤:将资源划分为n个资源队列,并组成有n个节点的循环链表;对循环链表创建分配指针和释放指针,所述分配指针指向当前要分配资源的资源队列,所述释放指针指向当前要接收资源的资源队列;
19.资源队列管理步骤:将本队列的资源分配给请求的线程,以及将线程要释放的资源存储到本队列。
20.优选的,所述资源管理步骤还包括:创建优先资源队列,所述优先资源队列用于实现部分资源的优先利用。
21.优选的,所述资源队列管理步骤中采用可重入锁 队列管理资源分配,避免将同一资源分配给不同的线程。
22.优选的,所述线程请求分配资源包括以下步骤:
23.步骤s3.1:检查优先资源队列是否被激活,如果激活,则从优先资源队列请求资源分配资源,否则进入步骤s3.2;
24.步骤s3.2:创建临时指针指向分配指针指向的资源队列,将分配指针移动到下一个资源队列;
25.步骤s1.3:从临时指针指向的资源队列分配资源,若分配到资源则返回,若未分配到资源则将临时指针移动到下一个资源队列进行分配,如此循环执行,直到指针回到最初位置。
26.优选的,所述线程请求释放资源包括以下步骤:
27.步骤s4.1:检查资源是否满足优先分配条件,若满足则释放资源到优先资源队列,否则进入步骤s4.2;
28.步骤s4.2:标记获取当前释放指针指向的资源队列,将指针移动到下一个资源队列,将资源释放到标记的资源队列。
29.与现有技术相比,本发明具有如下的有益效果:
30.1、本发明通过将资源分成多个资源队列,并组成循环链表,使每个资源队列只同时对应一个线程,提高了资源分配/存储时的效率;
31.2、本发明设计了特殊资源队列来满足特殊资源的优先利用,提高了突发状况的应对能力;
32.3、本发明提高了资源分配效率,进而提高了系统执行效率,有效降低因线程阻塞导致系统故障的几率。
附图说明
33.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
34.图1为本发明实施例资源池分组分配系统的结构示意图。
具体实施方式
35.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
36.本发明介绍了一种资源池分组分配系统,将资源平均划分为n队(资源队列),n队组成n个节点的循环链表,采用指针将每个资源队列分配给请求线程,这样每个线程在各自的资源队列进行资源申请释放,减少竞争,提高吞吐量,并且对于一些特殊资源设置优先队列实现优先利用。
37.具体的,包括:资源管理器模块和资源队列管理模块;
38.资源管理器模块用于将资源划分为n个资源队列,将s个资源平均分配到n个资源队列中,n个资源队列又组成n个节点的循环链表,参照图1所示;并针对循环链表创建分配指针和释放指针,所述分配指针指向当前要分配资源的资源队列,所述释放指针指向当前要接收资源的资源队列;另外还需要创建一个额外的优先资源队列,用于实现部分优先资源的优先利用。
39.所述资源队列管理模块用于将本队列的资源分配给请求的线程,以及将线程要释放的资源存储到本队列。在分配/释放资源时需要实现线程阻塞加锁,避免将同一个资源分配给不同的线程,采用可重入锁 队列的方式实现。在线程请求资源时先抢锁,然后将队列头的资源移除给线程在释放锁;在线程释放资源时先抢锁,然后将资源添加到队列尾再释放锁。
40.在线程并发申请资源场景中,线程请求分配资源包括以下步骤:
41.步骤s1.1:在线程请求分配资源时,首先检查优先资源队列是否被激活,如果激活,则从优先资源队列请求资源分配资源,否则进入步骤s1.2。
42.步骤s1.2:创建临时指针指向分配指针指向的资源队列,将分配指针移动到下一个资源队列。此次分配指针是全局原子操作,其主要负责将请求线程分散在不同的资源队列上。
43.步骤s1.3:从临时指针指向的资源队列分配资源,若分配到资源则返回,若未分配到资源则将临时指针移动到下一个资源队列进行分配,如此循环执行,直到指针回到最初位置。当指针回到最初位置时依然未获取到资源,则需要根据情况创建新的资源。此处临时指针的作用是如果当前资源队列无可用资源时,可以移动到下一个资源队列去分配资源。
44.在线程并发释放资源场景中,线程请求释放资源包括以下步骤:
45.步骤s2.1:在线程请求释放资源时,优先检查资源是否满足优先分配条件,若满足则释放资源到优先资源队列,否则进入步骤s2.2,此时如果资源队列达到一定长度则激活资源队列。
46.步骤s2.2:标记获取当前释放指针指向的资源队列,将指针移动到下一个资源队列,将资源释放到标记的资源队列。
47.本发明还介绍了一种资源池分组分配方法,包括:资源管理步骤和资源队列管理步骤;
48.资源管理步骤:将资源划分为n个资源队列,并组成有n个节点的循环链表;创建分配指针和释放指针,所述分配指针指向当前要分配资源的资源队列,所述释放指针指向当前要接收资源的资源队列;
49.资源队列管理步骤:将本队列的资源分配给请求的线程,以及将线程要释放的资源存储到本队列。
50.进一步的,所述资源管理步骤还包括:创建优先资源队列,所述优先资源队列用于实现部分资源的优先利用。
51.更为详细的,所述资源队列管理步骤中采用可重入锁 队列管理资源分配,避免将同一资源分配给不同的线程。
52.更为详细的,所述线程请求分配资源包括以下步骤:
53.步骤s3.1:检查优先资源队列是否被激活,如果激活,则从优先资源队列请求资源分配资源,否则进入步骤s3.2;
54.步骤s3.2:创建临时指针指向分配指针指向的资源队列,将分配指针移动到下一个资源队列;
55.步骤s1.3:从临时指针指向的资源队列分配资源,若分配到资源则返回,若未分配到资源则将临时指针移动到下一个资源队列进行分配,如此循环执行,直到指针回到最初位置。
56.更为详细的,所述线程请求释放资源包括以下步骤:
57.步骤s4.1:检查资源是否满足优先分配条件,若满足则释放资源到优先资源队列,否则进入步骤s4.2;
58.步骤s4.2:标记获取当前释放指针指向的资源队列,将指针移动到下一个资源队列,将资源释放到标记的资源队列。
59.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
60.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献