CN114153634B - 基于国产龙芯处理器的进程间通信系统及操作平台 - Google Patents
基于国产龙芯处理器的进程间通信系统及操作平台 Download PDFInfo
- Publication number
- CN114153634B CN114153634B CN202111470368.0A CN202111470368A CN114153634B CN 114153634 B CN114153634 B CN 114153634B CN 202111470368 A CN202111470368 A CN 202111470368A CN 114153634 B CN114153634 B CN 114153634B
- Authority
- CN
- China
- Prior art keywords
- communication
- data
- inter
- writing
- shared memory
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 192
- 238000004891 communication Methods 0.000 title claims abstract description 186
- 238000000034 method Methods 0.000 title claims abstract description 166
- 230000008569 process Effects 0.000 claims abstract description 65
- 230000004888 barrier function Effects 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 23
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000005429 filling process Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/546—Message passing systems or structures, e.g. queues
-
- 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/547—Remote procedure calls [RPC]; Web services
-
- 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/547—Messaging middleware
-
- 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
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
本发明提供一种基于国产龙芯处理器的进程间通信系统及操作平台,包括:原子临界数据读写模块:使用处理器提供端原子读写指令与内存屏障指令实现对于数据的有序写入与读取;支持服务组件模块:负责接受通信端控制指令,创建于管理用于进程间通信的共享内存,负责管理不同通信端之间的链路连接;进程间通信端模块:运行于实例中需要完成进程间通信端的具体进程中,向通信端发送指令与接收支持组件发送端完成指令,在通信端存储支持组件为通信端创建的共享内存地址;进程间通信接口模块:向已创建的共享内存中写入或读取数据。本发明能够实现基于国产龙芯处理器以及相应宏内核操作系统平台的进程间通信方法,优化系统中多进程协作时并发进程间通信性能。
Description
技术领域
本发明涉及计算机技术领域,具体地,涉及基于国产龙芯处理器的进程间通信系统,尤其涉及一种基于国产龙芯处理器的进程间通信系统及操作平台。
背景技术
当前,基于国产龙芯处理器以及相应宏内核操作平台也正在许多不同应用领域逐渐获得了广泛的应用。考虑到国产龙芯处理器是我国研究机构自主研发并维护控制其设计架构,此类处理器很显然将具有优秀的安全可信度,保证了其应用的灵活性与广泛性。因此,基于国产龙芯处理器及相应宏内核操作系统平台的计算机将有能力实现一些项目活动所必需的各种计算功能,包括分布式云计算、多用户云服务、大规模数据处理以及高性能计算等。
然而,由于国产龙芯处理器架构仍然处于新晋开发,并期望在应用测试中逐渐进行长期迭代完善的平台,其在功能完整性上仍然存在一定的不足与限制。很显然,这些功能上的限制整体而言主要可以归咎于两方面的原因:一方面是由于硬件设计的复杂度在支持基础功能以外的扩展功能上存在一定的困难,而另一方面则是由于软件应用环境的不够成熟,许多支持特殊应用功能的系统软件未能成功移植。
由于在国产龙芯处理器的应用领域中,往往具有高效率多任务协作以及并发运行的服务水平要求和关键系统设计约束。这些要求和约束包括了进程间通信延时,进程间上下文切换开销等,其原因是相关进程间同步、通信、任务调度对于系统的整体性能具有重要影响。例如大规模并行计算系统、大数据分析等任务往往会在当前的计算系统中产生大量的相互关联的进程,并在这些相互关联的进程中并行处理计算数据,以此提高运算效率。因此,在这种计算环境中,不同进程间需要进行大量的数据转移来完成计算的并发分配以及任务的流水线式处理。此时进程间的通信接口就必须确保有足够高的性能以免称为整体系统性能的瓶颈。除此之外,分布式的、多进程的在线服务计算以及业务处理系统因为必须通过多进程实现分布式部署以及通过分割进程模块确保系统的鲁棒性和可部署性,进程之间的频繁同步与通信就必须得到低延迟、低开销的进程间通信接口支持。否则无论是时间延迟还是性能开销,在高频率的进程间通信过程中,由乘数效应都会成为系统性能的致命缺陷。因此对于国产龙芯处理器以及其宏内核操作系统而言,低延迟、低开销的进程间通信接口支持是一项极为关键的技术功能。
目前,设计并实现基于国产龙芯处理器及相应宏内核操作系统平台的高性能进程间通信方法需要面对以下问题:目前基于国产龙芯处理器以及相应宏内核操作系统平台,针对进程间通信功能,尚无一套高效率的数据共享与临界数据保护机制。
公开号为CN110046489A的发明专利,公开了一种基于国产龙芯处理器的可信访问验证系统,计算机及可读存储介质,BIOS芯片和外插设备连接端口分别与处理器连接;处理器通过与BIOS芯片连接实现对系统所有模块的控制及系统所有数据信息的获取及发送;处理器通过与外插设备连接端口获取用户插入的口令卡信息,并对口令卡信息进行验证,验证通过后,使用户获取对系统的数据操作访问的权限。采用口令卡,随机数及其叠加进行身份验证,还进行了对重要数据进行额外保护的方式。
发明内容
针对现有技术中的缺陷,本发明提供一种基于国产龙芯处理器的进程间通信系统及操作平台。
根据本发明提供的一种基于国产龙芯处理器的进程间通信系统及操作平台,所述方案如下:
第一方面,本发明提供一种基于国产龙芯处理器的进程间通信系统,所述系统包括:
原子临界数据读写模块、支持服务组件模块、进程间通信端模块及进程间通信接口模块;
其中,原子临界数据读写模块:使用处理器提供端原子读写指令与内存屏障指令实现对于数据的有序写入与读取;
支持服务组件模块:作为守护进程持续运行在计算环境中,负责接受通信端控制指令,并创建于管理用于进程间通信的共享内存,同时负责管理不同通信端之间的链路连接;
进程间通信端模块:运行于实例中需要完成进程间通信端的具体进程中,负责向通信端发送指令与接收支持组件发送端完成指令,在通信端存储支持组件为通信端创建的共享内存地址;
进程间通信接口模块:在保护临界数据的机制下,向已创建的共享内存中写入或读取数据。
优选的,所述原子临界数据读写模块包括:易失读取、顺序写入、易失写入、原子获取增加FAA及比较交换CAS;
其中,易失读取、顺序写入及易失写入均使用MIPS64内存屏障指令;
原子获取增加FAA和比较交换CAS使用MIPS64 LL/SC指令。
优选的,所述支持服务组件模块的运行流程包括:
S1、根据用户输入命令,以预设配置创建并启动支持服务组件;
S2、支持服务组件创建并初始化到组件共享内存,作为与各通信端传递命令的通信接口,各通信端通过写入与读取共享内存连接通信链路;
S3、在支持服务组件运行标志位仍为真时,读取到组件共享内存,获取共享内存中通信端指令,根据指令注册或注销通信端,同时创建或删除到端共享内存用于支持通信端之间的进程间通信,并更新通信链路,其后向到组件共享内存中写入完成指令;
S4、读取到组件共享内存,根据其中的各通信端心跳状态,注销已不再活跃的通信端,根据连接状态回收共享内存;同时,在共享内存中跟新自身心跳数据,以向各通信端保证自己的运行状态;
S5、根据设定的调度参数闲置,回到S3。
优选的,所述进程间通信端模块运行流程包括:
1)通过context数据结构中储存的配置数据,于需要进程间通信的进程汇总,创建新线程,作为通信端构造器;
2)进程调用创建发送端/接受端函数,通信端构造器向到组件共享内存写入注册发送端/接受端命令;
3)进程调用创建发送端/接受端完成函数,通信端构造器不断读取到组件共享内存,直至收到支持组件发送的对应创建完成命令,根据命令中传递的信息在本地初始化发送端/接受端;
4)进程调用进程间通信接口进行进程间通信过程;
5)进程调用关闭发送端/接受端函数,通信端构造器向到组件共享内存中写入注销发送端/接受端命令,删除发送端/接受端;
6)进程调用关闭通信端函数,关闭通信端构造器。
优选的,所述进程间通信接口模块写入流程包括:
a.进程调用写入函数,发送端原子读取当前滑动窗口限制与当前发送队列队尾位置,队尾位置大于滑动窗口限制时,返回写入失败;
b.在当前写入队尾位置到共享内存尾部容量小于所需写入大小时,调用填充过程,首先将数据大小设为负值,以标志写入未完成;将写入数据头中数据类型设置为填充数据,填充完成后将数据头中数据大小设为填充数据大小,返回写入失败;
c.原子获取增加写入队列队尾位置,写入数据头,写入完成后将数据头中数据大小设为写入数据大小,标志写入完成,返回写入完成。
优选的,所述c步骤中原子获取增加写入队列队尾位置,写入数据头,其中数据类型设置为传输数据,数据大小设置为负值,使用memcpy写入数据。
优选的,所述进程间通信接口模块读取流程包括:
A.原子读取当前读取位置,根据当前读取位置获得对应数据块,若数据头中的数据大小小于等于0,则停止读取;
B.若当前数据头中数据类型为填充数据,将读取位置指向下一个数据块,否则,从当前数据块中使用memcpy读出数据,并原子更新读取位置;
C.更新读取位置控制数值,以更新滑动窗口。
第二方面,本发明还提供一种操作平台,所述操作平台包括所述的系统。
与现有技术相比,本发明具有如下的有益效果:
1、基于国产龙芯处理器指令集架构与相应的宏内核操作系统为基础构建原子读写方法,并使用该方法设计实现进程间通信接口,实现原子临界数据读写保护机制,避免了数据读写时的锁定过程;
2、使用支持服务组件作为支持进程管理进程间通信发送端与接受端的注册、注销与链路连接,实现对于各通信端的集中管理,与对于共享内存的统一创建与删除,避免了运行过程中出现大量垃圾;
3、通过使用通信端设计与提供通信端通信接口,允许通过共享内存实现易于编码的进程间通信过程,同时,通信端接口设计为非阻塞的通信机制,避免了写入读取过程中可能的由阻塞引起的非必要的挂起、等待以及切换等额外开销。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为系统平台的内部整体结构详细描述示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明实施例提供了一种基于国产龙芯处理器的进程间通信系统,参照图1所示,该系统具体包括:原子临界数据读写模块、支持服务组件模块、进程间通信端模块及进程间通信接口模块。
其中,原子临界数据读写模块使用国产龙芯处理器提供端原子读写指令与内存屏障指令实现对于数据的有序写入与读取。
支持服务组件模块作为守护进程持续运行在计算环境中,负责接受通信端控制指令,并创建于管理用于进程间通信的共享内存,同时负责管理不同通信端之间的链路连接。
进程间通信端模块运行于实例中需要完成进程间通信端的具体进程中,负责向通信端发送指令与接收支持组件发送端完成指令,在通信端存储支持组件为通信端创建的共享内存地址。
进程间通信接口模块:在保护临界数据的机制下,向已创建的共享内存中写入或读取数据。
本发明整体结构如图1所示,具体地,在本进程间通信方法解决方案架构中,原子临界数据读写模块实现如下:
原子临界数据读写模块包括:易失读取、顺序写入、易失写入、原子获取增加FAA及比较交换CAS;其中,易失读取、顺序写入及易失写入均使用MIPS64内存屏障指令;原子获取增加FAA和比较交换CAS使用MIPS64 LL/SC指令。
在本进程间通信系统解决方案架构中,支持服务组件模块运行流程如下:
S1、根据用户输入命令,以特定配置创建并启动支持服务组件;
S2、支持服务组件创建并初始化到组件共享内存,作为与各通信端传递命令的通信接口,各通信端通过写入与读取共享内存连接通信链路;
S3、在支持服务组件运行标志位仍为真时,读取到组件共享内存,获取共享内存中通信端指令,根据指令注册或注销通信端,同时创建或删除到端共享内存用于支持通信端之间的进程间通信,并更新通信链路,其后向到组件共享内存中写入完成指令;
S4、读取到组件共享内存,根据其中的各通信端心跳状态,注销已不再活跃的通信端,根据连接状态回收共享内存;同时,在共享内存中跟新自身心跳数据,以向各通信端保证自己的运行状态。
S5、根据设定的调度参数闲置,回到S3。
在本进程间通信系统解决方案架构中,进程间通信端模块运行流程如下:
1)通过context数据结构中储存的配置数据,于需要进程间通信的进程汇总,创建新线程,作为通信端构造器;
2)进程调用创建发送端/接受端函数,通信端构造器向到组件共享内存写入注册发送端/接受端命令;
3)进程调用创建发送端/接受端完成函数,通信端构造器不断读取到组件共享内存,直至收到支持组件发送的对应创建完成命令,根据命令中传递的信息在本地初始化发送端/接受端;
4)进程调用进程间通信接口进行进程间通信过程;
5)进程调用关闭发送端/接受端函数,通信端构造器向到组件共享内存中写入注销发送端/接受端命令,删除发送端/接受端;
6)进程调用关闭通信端函数,关闭通信端构造器。
在本进程间通信系统解决方案架构中,进程间通信接口模块写入流程如下:
a.进程调用写入函数,发送端原子读取当前滑动窗口限制与当前发送队列队尾位置,队尾位置大于滑动窗口限制时,返回写入失败;
b.在当前写入队尾位置到共享内存尾部容量小于所需写入大小时,调用填充过程,首先将数据大小设为负值,以标志写入未完成;将写入数据头中数据类型设置为填充数据,填充完成后将数据头中数据大小设为填充数据大小,返回写入失败;
c.原子获取增加写入队列队尾位置,写入数据头,其中数据类型设置为传输数据,数据大小设置为负值,使用memcpy写入数据,写入完成后将数据头中数据大小设为写入数据大小,标志写入完成,返回写入完成。
在本进程间通信系统解决方案架构中,进程间通信接口模块读取流程如下:
A.原子读取当前读取位置,根据当前读取位置获得对应数据块,若数据头中的数据大小小于等于0,则停止读取;
B.若当前数据头中数据类型为填充数据,将读取位置指向下一个数据块,否则,从当前数据块中使用memcpy读出数据,并原子更新读取位置;
C.更新读取位置控制数值,以更新滑动窗口。
接下来,对本发明进行更为具体的说明。
表1为SMAIPC进行多进程间管道进程通信的通信时延。
表1
传输进程数 | 2发送进程+2接受进程 | 2发送进程+2接受进程 |
传输时延/us | 8.05 | 9.03 |
表2为SMAIPC进行多进程间消息队列进程通信的通信时延。
表2
传输进程数 | 2发送进程+2接受进程 | 2发送进程+2接受进程 |
传输时延/us | 8.32 | 8.91 |
表3为SMAIPC进行多进程间互斥信号量进程通信的通信时延。
表3
传输进程数 | 4进程 | 6进程 |
传输时延/us | 1.31 | 1.59 |
在本实施例中,运行平台的配置确定如下。在硬件上,系统硬件的型号是:
(1)平台:龙芯处理器平台4核主机;
(2)CPU:龙芯Loongson 3A3000处理器4核;
(3)内存RAM:8GB DDR3内存;
(4)存储:机械硬盘容量256GB;
而软件系统的设置为:
(1)主机平台:Loongnix release 1.0;
(2)内核:Linux 4.19.90;
在此处,我们使用在平台上使用类ipc-bench性能测试工具进行进程间通信性能测试并记录数据。通过记录测试不同进程间通信接口的通信时延,分析进程间通信接口性能表现。
从表1中可以看出使用SMAIPC管道通信接口传输16K字节数据,在同时存在2个发送进程与两个接受进程时,进程间通信时延为8.05us,其性能符合要求。同时在同时进行通信的数量增加时,所体现出的进程间通信时延为9.03us,并未显著增加。
从表2中可以看出使用SMAIPC消息队列通信接口传输16K字节数据,在同时存在2个发送进程与两个接受进程时,进程间通信时延为8.32us,其性能符合要求。同时在同时进行通信的数量增加时,所体现出的进程间通信时延为8.91us,并未显著增加。
从表3中可以看出使用SMAIPC互斥信号量接口进行进程间通信,在同时存在4个进程使用同一信号量进行进程间通信时,进程间通信时延为1.31us,其性能符合要求。同时在同时进行通信的数量增加时,所体现出的进程间通信时延为1.59us,并未显著增加。
本发明实施例提供了一种基于国产龙芯处理器的进程间通信系统及操作平台,主要涉及以下发明点:
1.基于国产龙芯处理器指令集架构与相应的宏内核操作系统为基础构建原子读写方法,并使用该方法设计实现进程间通信接口,实现原子临界数据读写保护机制,避免了数据读写时的锁定过程。
2.使用支持服务组件作为支持进程管理进程间通信发送端与接受端的注册、注销与链路连接,实现对于各通信端的集中管理,与对于共享内存的统一创建与删除,避免了运行过程中出现大量垃圾。
3.通过使用通信端设计与提供通信端通信接口,允许通过共享内存实现易于编码的进程间通信过程。同时,通信端接口设计为非阻塞的通信机制,避免了写入读取过程中可能的由阻塞引起的非必要的挂起、等待以及切换等额外开销。
通过这三个发明点的共同作用,实现了基于国产龙芯处理器以及相应宏内核操作系统平台的进程间通信方法,优化系统中多进程协作时并发进程间通信性能。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (5)
1.一种基于国产龙芯处理器的进程间通信系统,其特征在于,包括:原子临界数据读写模块、支持服务组件模块、进程间通信端模块及进程间通信接口模块;
其中,原子临界数据读写模块:使用处理器提供端原子读写指令与内存屏障指令实现对于数据的有序写入与读取;
支持服务组件模块:作为守护进程持续运行在计算环境中,负责接受通信端控制指令,并创建于管理用于进程间通信的共享内存,同时负责管理不同通信端之间的链路连接;
进程间通信端模块:运行于实例中需要完成进程间通信端的具体进程中,负责向通信端发送指令与接收支持组件发送端完成指令,在通信端存储支持组件为通信端创建的共享内存地址;
进程间通信接口模块:在保护临界数据的机制下,向已创建的共享内存中写入或读取数据;
所述支持服务组件模块的运行流程包括:
S1、根据用户输入命令,以预设配置创建并启动支持服务组件;
S2、支持服务组件创建并初始化到组件共享内存,作为与各通信端传递命令的通信接口,各通信端通过写入与读取共享内存连接通信链路;
S3、在支持服务组件运行标志位仍为真时,读取到组件共享内存,获取共享内存中通信端指令,根据指令注册或注销通信端,同时创建或删除到端共享内存用于支持通信端之间的进程间通信,并更新通信链路,其后向到组件共享内存中写入完成指令;
S4、读取到组件共享内存,根据其中的各通信端心跳状态,注销已不再活跃的通信端,根据连接状态回收共享内存;同时,在共享内存中跟新自身心跳数据,以向各通信端保证自己的运行状态;
S5、根据设定的调度参数闲置,回到S3;
所述进程间通信接口模块写入流程包括:
a.进程调用写入函数,发送端原子读取当前滑动窗口限制与当前发送队列队尾位置,队尾位置大于滑动窗口限制时,返回写入失败;
b.在当前写入队尾位置到共享内存尾部容量小于所需写入大小时,调用填充过程,首先将数据大小设为负值,以标志写入未完成;将写入数据头中数据类型设置为填充数据,填充完成后将数据头中数据大小设为填充数据大小,返回写入失败;
c.原子获取增加写入队列队尾位置,写入数据头,写入完成后将数据头中数据大小设为写入数据大小,标志写入完成,返回写入完成;
所述进程间通信接口模块读取流程包括:
A.原子读取当前读取位置,根据当前读取位置获得对应数据块,若数据头中的数据大小小于等于0,则停止读取;
B.若当前数据头中数据类型为填充数据,将读取位置指向下一个数据块,否则,从当前数据块中使用memcpy读出数据,并原子更新读取位置;
C.更新读取位置控制数值,以更新滑动窗口。
2.根据权利要求1所述的基于国产龙芯处理器的进程间通信系统,其特征在于,所述原子临界数据读写模块包括:易失读取、顺序写入、易失写入、原子获取增加FAA及比较交换CAS;
其中,易失读取、顺序写入及易失写入均使用MIPS64内存屏障指令;
原子获取增加FAA和比较交换CAS使用MIPS64 LL/SC指令。
3.根据权利要求1所述的基于国产龙芯处理器的进程间通信系统,其特征在于,所述进程间通信端模块运行流程包括:
1)通过context数据结构中储存的配置数据,于需要进程间通信的进程汇总,创建新线程,作为通信端构造器;
2)进程调用创建发送端/接受端函数,通信端构造器向到组件共享内存写入注册发送端/接受端命令;
3)进程调用创建发送端/接受端完成函数,通信端构造器不断读取到组件共享内存,直至收到支持组件发送的对应创建完成命令,根据命令中传递的信息在本地初始化发送端/接受端;
4)进程调用进程间通信接口进行进程间通信过程;
5)进程调用关闭发送端/接受端函数,通信端构造器向到组件共享内存中写入注销发送端/接受端命令,删除发送端/接受端;
6)进程调用关闭通信端函数,关闭通信端构造器。
4.根据权利要求1所述的基于国产龙芯处理器的进程间通信系统,其特征在于,所述c步骤中原子获取增加写入队列队尾位置,写入数据头,其中数据类型设置为传输数据,数据大小设置为负值,使用memcpy写入数据。
5.一种操作平台,其特征在于,所述操作平台包括权利要求1至4中任意一项所述的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111470368.0A CN114153634B (zh) | 2021-12-03 | 2021-12-03 | 基于国产龙芯处理器的进程间通信系统及操作平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111470368.0A CN114153634B (zh) | 2021-12-03 | 2021-12-03 | 基于国产龙芯处理器的进程间通信系统及操作平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114153634A CN114153634A (zh) | 2022-03-08 |
CN114153634B true CN114153634B (zh) | 2024-05-28 |
Family
ID=80452588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111470368.0A Active CN114153634B (zh) | 2021-12-03 | 2021-12-03 | 基于国产龙芯处理器的进程间通信系统及操作平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114153634B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056099B (zh) * | 2023-08-14 | 2024-06-07 | 中国铁道科学研究院集团有限公司 | 一种铁路信号安全计算机平台及其内存共享方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778002A (zh) * | 2012-10-18 | 2014-05-07 | 华为技术有限公司 | 多核系统中回收临界资源的方法、装置和设备 |
CN104636364A (zh) * | 2013-11-08 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 浏览器的内存释放方法及装置 |
CN109358974A (zh) * | 2018-10-17 | 2019-02-19 | 武汉斗鱼网络科技有限公司 | 一种进程间通信的方法及相关装置 |
CN109815029A (zh) * | 2019-01-10 | 2019-05-28 | 西北工业大学 | 一种嵌入式分区操作系统分区间通信的实现方法 |
CN111427707A (zh) * | 2020-03-25 | 2020-07-17 | 北京左江科技股份有限公司 | 一种基于共享内存池的ipc通信方法 |
CN111638976A (zh) * | 2020-05-16 | 2020-09-08 | 中信银行股份有限公司 | 基于共享内存的数据传输方法及系统 |
CN113722117A (zh) * | 2020-11-10 | 2021-11-30 | 北京沃东天骏信息技术有限公司 | 消息队列处理方法、线程池参数调整方法、装置和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11150950B2 (en) * | 2016-12-01 | 2021-10-19 | Vmware, Inc. | Methods and apparatus to manage workload domains in virtual server racks |
-
2021
- 2021-12-03 CN CN202111470368.0A patent/CN114153634B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778002A (zh) * | 2012-10-18 | 2014-05-07 | 华为技术有限公司 | 多核系统中回收临界资源的方法、装置和设备 |
CN104636364A (zh) * | 2013-11-08 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 浏览器的内存释放方法及装置 |
CN109358974A (zh) * | 2018-10-17 | 2019-02-19 | 武汉斗鱼网络科技有限公司 | 一种进程间通信的方法及相关装置 |
CN109815029A (zh) * | 2019-01-10 | 2019-05-28 | 西北工业大学 | 一种嵌入式分区操作系统分区间通信的实现方法 |
CN111427707A (zh) * | 2020-03-25 | 2020-07-17 | 北京左江科技股份有限公司 | 一种基于共享内存池的ipc通信方法 |
CN111638976A (zh) * | 2020-05-16 | 2020-09-08 | 中信银行股份有限公司 | 基于共享内存的数据传输方法及系统 |
CN113722117A (zh) * | 2020-11-10 | 2021-11-30 | 北京沃东天骏信息技术有限公司 | 消息队列处理方法、线程池参数调整方法、装置和设备 |
Non-Patent Citations (2)
Title |
---|
"Achieving Multi-port Memory Performance on Single-Port Memory with Coding Techniques";Hardik Jain;《2020 3rd International Conference on Information and Computer Technologies (ICICT)》;20200514;第366-375页 * |
"基于多核框架的实时信号并行处理软件研制";马申斌;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180415(第2018年04期);第I138-407页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114153634A (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9886736B2 (en) | Selectively killing trapped multi-process service clients sharing the same hardware context | |
US8468313B2 (en) | Asynchronous replication with write concurrency grouping | |
US9092426B1 (en) | Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing | |
KR101928596B1 (ko) | 분산 저장 환경에서의 비동기 복제 기법 | |
CN101410797B (zh) | 无序处理器中的事务存储器执行的方法、设备和系统 | |
CN111611120B (zh) | 一种片上多核处理器Cache一致性协议验证方法、系统及介质 | |
US8527559B2 (en) | Garbage collector with concurrent flipping without read barrier and without verifying copying | |
US11941429B2 (en) | Persistent multi-word compare-and-swap | |
JP2008544422A (ja) | メモリページ管理 | |
CN107277022B (zh) | 进程标记方法及装置 | |
CN114153634B (zh) | 基于国产龙芯处理器的进程间通信系统及操作平台 | |
US20060259708A1 (en) | Dumping data in processing systems to a shared storage | |
CN112559210A (zh) | 一种基于rtx实时系统的共享资源读写互斥方法 | |
US7536694B2 (en) | Exception handling in a multiprocessor system | |
CN110502190B (zh) | 文件读写方法 | |
CN115756767A (zh) | 一种用于多核cpu原子操作内存的装置及方法 | |
CN111338998B (zh) | 基于amp系统的flash访问处理方法及装置 | |
CN113296899A (zh) | 基于分布式系统的事务主机、事务从机及事务处理方法 | |
US6763441B2 (en) | System and method for using ancillary processors and storage to speed time critical data capture | |
Baird et al. | Checkpointing Kernel Executions of MPI+ CUDA Applications | |
EP0216170A2 (en) | Storage management method and system in a multiprocessor environment | |
CN110383248A (zh) | 控制多核处理器的方法和相关计算机 | |
US20060107004A1 (en) | Recovery from failure in data storage systems | |
WO2024007745A1 (zh) | 数据写入方法、读取方法、装置、电子设备以及存储介质 | |
KR101881039B1 (ko) | 비휘발성 메모리에 저장된 메모리 매핑 파일의 비동기식 원자적 업데이트 방법 및 제어 장치 |
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 |