CN112463716B - 基于多核多处理器并行系统的全局信号量实现方法 - Google Patents
基于多核多处理器并行系统的全局信号量实现方法 Download PDFInfo
- Publication number
- CN112463716B CN112463716B CN202011353047.8A CN202011353047A CN112463716B CN 112463716 B CN112463716 B CN 112463716B CN 202011353047 A CN202011353047 A CN 202011353047A CN 112463716 B CN112463716 B CN 112463716B
- Authority
- CN
- China
- Prior art keywords
- semaphore
- global
- thread
- global semaphore
- processing core
- 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
- 238000000034 method Methods 0.000 title claims abstract description 21
- 239000000872 buffer Substances 0.000 claims abstract description 41
- 238000013507 mapping Methods 0.000 claims abstract description 13
- 239000003795 chemical substances by application Substances 0.000 claims abstract description 11
- 230000007717 exclusion Effects 0.000 abstract description 6
- 238000007726 management method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/526—Mutual exclusion algorithms
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于多核多处理器并行系统的全局信号量实现方法,该方法包括:各处理核心进行系统初始化,通过SRIO映射出共享存储空间;所述各处理核心创建线程,并进行线程初始化,建立线程与本地信号量的映射表;从线程所属处理核心对应的全局信号量缓冲池中创建全局信号量,并将全局信号量信息填入全局信号量名表;当线程被挂起在一个全局信号量的等待队列上或被解挂时,通过信号量代理机制,将该线程挂起或解挂。通过信号量代理机制,利用软件方法实现全局信号量,可用于多核多处理器间线程同步与互斥场合,解决在多核多处理器并行系统上同一时刻线程的同步与互斥问题。
Description
技术领域
本发明涉及一种全局信号量的实现方法,具体为一种基于多核多处理器并行系统的全局信号量实现方法,属于嵌入式计算机技术领域。
背景技术
随着计算机系统的发展以及其应用领域对实时性、并行性需求的日益增长,多核多处理器并行系统己成为嵌入式计算机系统发展的重要趋势,受到了学术界和产业界的密切关注。
一般而言,在多核多处理器并行系统中,处理器核之间、处理器之间都需要联合工作,同时运行的多个线程可能都需要访问或使用同一种资源;或者是线程间存在依赖关系,某个线程的运行依赖于另一个线程。在软件复杂度较高,且对运行时序要求严格的情况下,这些约束可能会影响多核多处理器并行系统的正常运行,因此,需要解决临界资源分配、共享资源争用、线程间存在依赖关系时的运行次序等线程同步与互斥等问题。
发明内容
本发明的目的就在于为了解决上述问题而提供一种基于多核多处理器并行系统的全局信号量实现方法,该全局信号量实现方法能够解决多核多处理器并行系统中线程同步与互斥的问题,保证系统有秩序、正确的执行。
本发明通过以下技术方案来实现上述目的:一种基于多核多处理器并行系统的全局信号量实现方法,该全局信号量实现方法包括:
S1)多核多处理器并行系统的各处理核心进行系统初始化,通过SRIO映射出共享存储空间;
S2)所述各处理核心创建线程,并进行线程初始化,建立线程与本地信号量的映射表;
S3)从线程所属处理核心对应的全局信号量缓冲池中创建全局信号量,并将全局信号量信息填入全局信号量名表;
S4)当线程被挂起在一个全局信号量的等待队列上或被解挂时,通过信号量代理机制,将该线程挂起或解挂。
优选地,所述多核多处理器并行系统的处理器节点数至少有1个;所述处理器节点的处理核心至少有1个;并且所述处理器节点间或处理核心支持SRIO总线互连。
优选地,步骤S1)中,所述系统初始化的过程包括:
S11)各处理核心均初始化SRIO,通过SRIO映射一段共享存储空间用于存储全局信号量、全局信号量等待队列与全局信号量名表,并安装SRIO的doorBell中断;
S12)选取任一处理核心为主处理核心,创建并初始化一张共享的全局信号量名表,用于记录所有已创建的全局信号量的信息;
S13)在各处理核心映射出的共享存储空间中,创建并初始化全局信号量缓冲池和全局信号量等待队列缓冲池;
S14)各处理核心创建并初始化一张线程与本地信号量映射表,用于记录已创建的线程与本地信号量之间的对应关系。
优选地,步骤S12)中,所述全局信号量名表的内容包括控制名表互斥访问的全局信号量、名表中所有已创建的全局信号量数目,以及所有已创建的全局信号量信息;
其中,全局信号量信息包括名称、类型、所属处理核心、值、打开次数和等待队列;所述等待队列包括等待线程所属处理核心、线程ID以及链表指针。
优选地,步骤S13)中,所述全局信号量缓冲池和全局信号量等待队列缓冲池均为带表头指针的、具有固定大小缓冲块的双向链表,并且链表表头均放置在各自所属的处理核心上;其中,所述全局信号量缓冲池和全局信号量等待队列缓冲池可用自旋锁或者全局信号量管理互斥访问。
优选地,步骤S4)中,所述信号量代理机制,即进行全局信号量相关操作时,是指通过线程对应的本地信号量代替该全局信号量完成操作。
优选地,步骤S4)中,所述线程被挂起在一个全局信号量的等待队列上的操作具体包括:
S41)获取线程所属处理核心、线程ID及本地信号量;
S42)从该全局信号量所属处理核心上的全局信号量等待队列缓冲池中分配空间,填入等待队列信息;
S43)按照“FIFO”或其他原则,将线程插入全局信号量等待队列;
S44)执行本地信号量的等待操作,将线程挂起。
优选地,步骤S4)中,解挂线程操作具体包括:
S45)按照“FIFO”或其他原则,取下全局信号量等待队列上的首线程;
S46)获取首线程所属处理核心(简称目的处理核心)和首线程ID,并释放首线程等待队列空间到该全局信号量所属处理核心上的全局信号量等待队列缓冲池中;
S47)向目的处理器核心互斥发送doorBell中断;
S48)目的处理核心接收到doorBell中断信息后,根据线程ID查找并释放相应的本地信号量,将该线程解挂。
优选地,步骤S48),所述doorBell中断发送的信息为16位,低8位为线程ID,高8位为线程所属处理核心。
本发明的有益效果是:基于多核多处理器并行系统的全局信号量实现方法,通过信号量代理机制,利用软件方法实现全局信号量,可用于多核多处理器间线程同步与互斥场合,解决在多核多处理器并行系统上同一时刻线程的同步与互斥问题,保证多核多处理器并行系统有秩序、正确的执行,具有性能高、速度快、灵活可拓展的特点,能在极大程度上简化应用开发人员的工作。
附图说明
图1为本发明实施例中应用的原理示意图;
图2为本发明实施例应用的系统初始化流程图;
图3为本发明实施例应用的全局信号量名表结构;
图4为本发明实施例应用的全局信号量等待流程图;
图5为本发明实施例应用的全局信号量释放流程图;
图6为本发明实施例应用的doorBell中断服务流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于多核多处理器并行系统的全局信号量实现方法,该全局信号量实现方法包括:
S1)多核多处理器并行系统的各处理核心进行系统初始化,通过SRIO映射出共享存储空间;其中,所述多核多处理器并行系统的处理器节点数至少有1个;所述处理器节点的处理核心至少有1个;并且所述处理器节点间或处理核心支持SRIO总线互连。
其中,所述系统初始化的过程包括:
S11)各处理核心均初始化SRIO,通过SRIO映射一段共享存储空间用于存储全局信号量、全局信号量等待队列与全局信号量名表,并安装SRIO的doorBell中断;
S12)选取任一处理核心为主处理核心,创建并初始化一张共享的全局信号量名表,用于记录所有已创建的全局信号量的信息;
其中,所述全局信号量名表的内容包括控制名表互斥访问的全局信号量、名表中所有已创建的全局信号量数目,以及所有已创建的全局信号量信息;全局信号量信息包括名称、类型、所属处理核心、值、打开次数和等待队列;所述等待队列包括等待线程所属处理核心、线程ID以及链表指针。
S13)在各处理核心映射出的共享存储空间中,创建并初始化全局信号量缓冲池和全局信号量等待队列缓冲池;
其中,所述全局信号量缓冲池和全局信号量等待队列缓冲池均为带表头指针的、具有固定大小缓冲块的双向链表,并且链表表头均放置在各自所属的处理核心上;
其中,所述全局信号量缓冲池和全局信号量等待队列缓冲池可用自旋锁或者全局信号量管理互斥访问。
S14)各处理核心创建并初始化一张线程与本地信号量映射表,用于记录已创建的线程与本地信号量之间的对应关系。
S2)所述各处理核心创建线程,并进行线程初始化,建立线程与本地信号量的映射表。
S3)从线程所属处理核心对应的全局信号量缓冲池中创建全局信号量,并将全局信号量信息填入全局信号量名表。
S4)当线程被挂起在一个全局信号量的等待队列上或被解挂时,通过信号量代理机制,将该线程挂起或解挂。
所述信号量代理机制,即进行全局信号量相关操作时,是指通过线程对应的本地信号量代替该全局信号量完成操作。
所述线程被挂起在一个全局信号量的等待队列上的操作具体包括:
S41)获取线程所属处理核心、线程ID及本地信号量;
S42)从该全局信号量所属处理核心上的全局信号量等待队列缓冲池中分配空间,填入等待队列信息;
S43)按照“FIFO”或其他原则,将线程插入全局信号量等待队列;
S44)执行本地信号量的等待操作,将线程挂起。
解挂线程操作具体包括:
S45)按照“FIFO”或其他原则,取下全局信号量等待队列上的首线程;
S46)获取首线程所属处理核心(简称目的处理核心)和首线程ID,并释放首线程等待队列空间到该全局信号量所属处理核心上的全局信号量等待队列缓冲池中;
S47)向目的处理器核心互斥发送doorBell中断;
S48)目的处理核心接收到doorBell中断信息后,根据线程ID查找并释放相应的本地信号量,将该线程解挂,其中,所述doorBell中断发送的信息为16位,低8位为线程ID,高8位为线程所属处理核心。
实施例
需要说明的是:
1)本实施例是在一个嵌入式多核处理器上实施的实施例;
2)本实施例应用的嵌入式多核处理器系统,包含两个处理核心,选定处理核心1为主处理核心;
3)本实施例应用的处理器均支持SRIO总线互连;
4)本实施例是基于SRIO的多核多处理器并行系统。
如图1所示,一种基于SRIO的多核多处理器并行系统的全局信号量实现方法,所述全局信号量实现方法包括以下步骤:
S1)嵌入式多核处理器系统各处理核心进行系统初始化,通过SRIO映射一段共享存储空间用于存储全局信号量、全局信号量等待队列与全局信号量名表。
S2)各处理核心创建线程,并进行线程初始化,建立线程与本地信号量的映射。
S3)从线程所属处理核心对应的全局信号量缓冲池中创建全局信号量,将全局信号量信息填入全局信号量名表。
S4)当线程被挂起在一个全局信号量的等待队列上或被解挂时,通过信号量代理机制,将该线程挂起或解挂。
如图2所示:步骤S1)中,所述系统初始化过程具体包括:
S11)各处理核心均初始化SRIO,通过SRIO映射一段共享存储空间用于存储全局信号量、全局信号量等待队列与全局信号量名表,并安装SRIO的doorBell中断;
S12)选取处理核心1为主处理核心,创建并初始化一张共享的全局信号量名表,用于记录所有已创建的全局信号量的信息;
S13)在各处理核心映射出的共享存储空间中,创建并初始化全局信号量缓冲池和全局信号量等待队列缓冲池;
S14)各处理核心创建并初始化一张线程与本地信号量映射表,用于记录已创建的线程与本地信号量之间的对应关系。
如图3所示,步骤S12)中,所述全局信号量名表的内容包括控制名表互斥访问的全局信号量、名表中所有已创建的全局信号量数目,以及所有已创建的全局信号量信息。所述全局信号量信息主要包括名称、类型、所属处理核心、值、打开次数、等待队列等;所述等待队列主要包括等待线程所属处理核心、线程ID以及链表指针等。
其中,步骤S13)中,所述全局信号量缓冲池和全局信号量等待队列缓冲池均为带表头指针的、具有固定大小缓冲块的双向链表,链表表头均放置在各自所属的处理核心上;步骤S13)中,所述全局信号量缓冲池和全局信号量等待队列缓冲池可用自旋锁或者全局信号量管理互斥访问。步骤S4)中,所述信号量代理机制,即进行全局信号量相关操作时,通过线程对应的本地信号量代替该全局信号量完成操作。
如图4所示,步骤S4)中,所述线程被挂起在一个全局信号量的等待队列上的操作具体包括:
S41)获取线程所属处理核心、线程ID及本地信号量;
S42)从该全局信号量所属处理核心上的全局信号量等待队列缓冲池中分配空间,填入等待队列信息;
S43)按照“FIFO”或其他原则,将线程插入全局信号量等待队列;
S44)执行本地信号量的等待操作,将线程挂起。
如图5和图6所示,步骤S4)中,解挂线程操作具体包括:
S45)按照“FIFO”或其他原则,取下全局信号量等待队列上的首线程;
S46)获取首线程所属处理核心(简称目的处理核心)和首线程ID,并释放首线程等待队列空间到该全局信号量所属处理核心上的全局信号量等待队列缓冲池中;
S47)向目的处理器核心互斥发送doorBell中断;
S48)目的处理核心接收到doorBell中断信息后,根据线程ID查找并释放相应的本地信号量,将该线程解挂。
其中,步骤S48)中,所述doorBell中断发送的信息为16位,低8位为线程ID,高8位为线程所属处理核心。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (6)
1.一种基于多核多处理器并行系统的全局信号量实现方法,其特征在于,该全局信号量实现方法包括:
S1)多核多处理器并行系统的各处理核心进行系统初始化,通过SRIO映射出共享存储空间;
S2)所述各处理核心创建线程,并进行线程初始化,建立线程与本地信号量的映射表;
S3)从线程所属处理核心对应的全局信号量缓冲池中创建全局信号量,并将全局信号量信息填入全局信号量名表;
S4)当线程被挂起在一个全局信号量的等待队列上或被解挂时,通过信号量代理机制,将该线程挂起或解挂;
所述信号量代理机制,即进行全局信号量相关操作时,是指通过线程对应的本地信号量代替该全局信号量完成操作;
所述线程被挂起在一个全局信号量的等待队列上的操作具体包括:
S41)获取线程所属处理核心、线程ID及本地信号量;
S42)从该全局信号量所属处理核心上的全局信号量等待队列缓冲池中分配空间,填入等待队列信息;
S43)按照“FIFO”原则,将线程插入全局信号量等待队列;
S44)执行本地信号量的等待操作,将线程挂起;
解挂线程操作具体包括:
S45)按照“FIFO”原则,取下全局信号量等待队列上的首线程;
S46)获取首线程所属处理核心和首线程ID,并释放首线程等待队列空间到该全局信号量所属处理核心上的全局信号量等待队列缓冲池中;
S47)向目的处理器核心互斥发送doorBell中断;
S48)目的处理核心接收到doorBell中断信息后,根据线程ID查找并释放相应的本地信号量,将该线程解挂。
2.根据权利要求1所述的基于多核多处理器并行系统的全局信号量实现方法,其特征在于:所述多核多处理器并行系统的处理器节点数至少有1个;所述处理器节点的处理核心至少有1个;并且所述处理器节点间或处理核心支持SRIO总线互连。
3.根据权利要求1所述的基于多核多处理器并行系统的全局信号量实现方法,其特征在于,步骤S1)中,所述系统初始化的过程包括:
S11)各处理核心均初始化SRIO,通过SRIO映射一段共享存储空间用于存储全局信号量、全局信号量等待队列与全局信号量名表,并安装SRIO的doorBell中断;
S12)选取任一处理核心为主处理核心,创建并初始化一张共享的全局信号量名表,用于记录所有已创建的全局信号量的信息;
S13)在各处理核心映射出的共享存储空间中,创建并初始化全局信号量缓冲池和全局信号量等待队列缓冲池;
S14)各处理核心创建并初始化一张线程与本地信号量映射表,用于记录已创建的线程与本地信号量之间的对应关系。
4.根据权利要求3所述的基于多核多处理器并行系统的全局信号量实现方法,其特征在于,步骤S12)中,所述全局信号量名表的内容包括控制名表互斥访问的全局信号量、名表中所有已创建的全局信号量数目,以及所有已创建的全局信号量信息;
其中,全局信号量信息包括名称、类型、所属处理核心、值、打开次数和等待队列;所述等待队列包括等待线程所属处理核心、线程ID以及链表指针。
5.根据权利要求3所述的基于多核多处理器并行系统的全局信号量实现方法,其特征在于:步骤S13)中,所述全局信号量缓冲池和全局信号量等待队列缓冲池均为带表头指针的、具有固定大小缓冲块的双向链表,并且链表表头均放置在各自所属的处理核心上;
其中,所述全局信号量缓冲池和全局信号量等待队列缓冲池可用自旋锁或者全局信号量管理互斥访问。
6.根据权利要求1所述的基于多核多处理器并行系统的全局信号量实现方法,其特征在于,步骤S48)中,所述doorBell中断发送的信息为16位,低8位为线程ID,高8位为线程所属处理核心。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011353047.8A CN112463716B (zh) | 2020-11-27 | 2020-11-27 | 基于多核多处理器并行系统的全局信号量实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011353047.8A CN112463716B (zh) | 2020-11-27 | 2020-11-27 | 基于多核多处理器并行系统的全局信号量实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463716A CN112463716A (zh) | 2021-03-09 |
CN112463716B true CN112463716B (zh) | 2024-02-13 |
Family
ID=74808892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011353047.8A Active CN112463716B (zh) | 2020-11-27 | 2020-11-27 | 基于多核多处理器并行系统的全局信号量实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463716B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116069396A (zh) * | 2023-03-01 | 2023-05-05 | 浪潮电子信息产业股份有限公司 | 一种多核cpu乱序执行的检测方法、装置、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777007A (zh) * | 2010-01-28 | 2010-07-14 | 中国科学技术大学苏州研究院 | 片上多核处理器的并行功能仿真系统及其方法 |
CN103049305A (zh) * | 2012-08-03 | 2013-04-17 | 北京航空航天大学 | 针对龙芯多核cpu模拟的动态代码转换的多线程化方法 |
CN104518987A (zh) * | 2013-09-30 | 2015-04-15 | 华为技术有限公司 | 并行多线程报文处理的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058948B2 (en) * | 2001-08-10 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Synchronization objects for multi-computer systems |
US20130290584A1 (en) * | 2012-04-30 | 2013-10-31 | Futurewei Technologies, Inc. | Sequence-based process locking |
US9424103B2 (en) * | 2014-09-30 | 2016-08-23 | Hong Kong Applied Science and Technology Research Institute Company Limited | Adaptive lock for a computing system having multiple runtime environments and multiple processing units |
US10552213B2 (en) * | 2017-12-15 | 2020-02-04 | Red Hat, Inc. | Thread pool and task queuing method and system |
-
2020
- 2020-11-27 CN CN202011353047.8A patent/CN112463716B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777007A (zh) * | 2010-01-28 | 2010-07-14 | 中国科学技术大学苏州研究院 | 片上多核处理器的并行功能仿真系统及其方法 |
CN103049305A (zh) * | 2012-08-03 | 2013-04-17 | 北京航空航天大学 | 针对龙芯多核cpu模拟的动态代码转换的多线程化方法 |
CN104518987A (zh) * | 2013-09-30 | 2015-04-15 | 华为技术有限公司 | 并行多线程报文处理的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112463716A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8245207B1 (en) | Technique for dynamically restricting thread concurrency without rewriting thread code | |
US8418180B2 (en) | Thread priority method for ensuring processing fairness in simultaneous multi-threading microprocessors | |
CN101059783B (zh) | 事务型存储器的虚拟化 | |
US7802032B2 (en) | Concurrent, non-blocking, lock-free queue and method, apparatus, and computer program product for implementing same | |
US9378069B2 (en) | Lock spin wait operation for multi-threaded applications in a multi-core computing environment | |
US9038079B2 (en) | Reducing cross queue synchronization on systems with low memory latency across distributed processing nodes | |
US8584126B2 (en) | Systems and methods for enabling threads to lock a stage prior to processing data | |
US8239867B2 (en) | Method and apparatus for implementing atomic FIFO | |
EP1501013A2 (en) | Method and system for scheduling real-time periodic tasks | |
US7661115B2 (en) | Method, apparatus and program storage device for preserving locked pages in memory when in user mode | |
US10331500B2 (en) | Managing fairness for lock and unlock operations using operation prioritization | |
KR20200014378A (ko) | 직무 관리 | |
WO2014110702A1 (zh) | 协同并发式消息总线、主动构件组装模型及构件拆分方法 | |
CN112463716B (zh) | 基于多核多处理器并行系统的全局信号量实现方法 | |
US11687364B2 (en) | Methods and apparatus for cache-aware task scheduling in a symmetric multi-processing (SMP) environment | |
US20080243887A1 (en) | Exclusion control | |
US10248420B2 (en) | Managing lock and unlock operations using active spinning | |
CN112486702B (zh) | 基于多核多处理器并行系统的全局消息队列实现方法 | |
CN112486704A (zh) | 一种基于共享存储的多核多处理器同步与通信系统 | |
CN105094993B (zh) | 一种多核处理器、数据同步的方法及装置 | |
Kirrmann et al. | Poolpo—a pool of processors for process control applications | |
US8819690B2 (en) | System for reducing data transfer latency to a global queue by generating bit mask to identify selected processing nodes/units in multi-node data processing system | |
CN109375990B (zh) | 一种基于原子操作的环形链表方法 | |
EP3660675A1 (en) | Sharing data by a virtual machine | |
CN118885272A (zh) | 运算装置及执行核的结束方法 |
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 |