CN110990169B - 一种利用共享内存进行进程间字节流通信的结构及方法 - Google Patents

一种利用共享内存进行进程间字节流通信的结构及方法 Download PDF

Info

Publication number
CN110990169B
CN110990169B CN201911201099.0A CN201911201099A CN110990169B CN 110990169 B CN110990169 B CN 110990169B CN 201911201099 A CN201911201099 A CN 201911201099A CN 110990169 B CN110990169 B CN 110990169B
Authority
CN
China
Prior art keywords
producer
consumer
shared memory
reset
state
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
Application number
CN201911201099.0A
Other languages
English (en)
Other versions
CN110990169A (zh
Inventor
何雪煜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Forward Industrial Co Ltd
Original Assignee
Shenzhen Forward Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Forward Industrial Co Ltd filed Critical Shenzhen Forward Industrial Co Ltd
Priority to CN201911201099.0A priority Critical patent/CN110990169B/zh
Publication of CN110990169A publication Critical patent/CN110990169A/zh
Application granted granted Critical
Publication of CN110990169B publication Critical patent/CN110990169B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

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

一种利用共享内存进行进程间字节流通信的结构及方法
技术领域
本发明属于计算机操作系统数据通信技术领域,具体涉及一种基于计算机操作系统所提供的进程间的共享内存进行字节流通信的结构及方法。
背景技术
通常的计算机操作系统提供了管道,或者TCP的协议栈,方便不同的进程之间以字节流的方式进行连续不断的读和写操作。
在简单的计算机环境中,操作系统只提供了共享内存以供不同的进程之间进行数据交互。但是共享内存并没有提供互斥机制,也不能以连续不断的、以字节流的方式进行读和写。
对于所有进程来说,访问该共享内存和自己独享的普通内存的访问方法是一样的,在不同的进程同时访问共享内存的情况下,进程之间没有互斥机制,也不能连续不断的以字节流方式进行通信。
在这种情况下,进程之间如果要进行长时间的字节流交互,需要基于共享内存设计一套字节流通信机制。
现有的共享内存的访问队列存在的以下缺点:
1)现有的共享内存队列如果没有系统提供的互斥功能,就不能完成通信双方的同步;
2)由于共享内存本身不能提供通信双方的同步,通信双方就不能重新界定数据;
3)由于通信双方不能重新界定数据,就不能提供基于字节流的访问。对于基于字节的流通信来说,字节流要变成有意义的数据,必须界定一个开始,然后才能按照约定的方式把字节流解析成有意义的数据,比如2字节整数、四字节正数等等。
发明内容
针对现有技术中的上述不足,本发明提供了一种单生产者和单消费者之间利用共享内存进行进程间字节流通信的结构及方法。
为了达到上述发明目的,本发明采用的技术方案为:
一种利用共享内存进行进程间字节流通信的结构,包括单生产者、单消费者及连接生产者与消费者以实现字节流通信的共享内存;
所述共享内存包括用于读写字节流数据的环形队列和组成共享内存状态机的消费者重置标志、生产者重置标志、生产者重置完成标志;所述消费者重置标志用于当消费者需要重新界定字节流边界时设置该标志状态,请求生产者重置共享内存;所述生产者重置标志用于当生产者需要重新界定字节流边界时设置该标志状态,通知消费者字节流边界需要重新界定;所述生产者重置完成标志用于当生产者重置共享内存后设置该标志状态,通知消费者共享内存已完成重置;
所述生产者用于当共享内存状态机处于可通信状态时将需要进行通信的字节流数据写入共享内存的环形队列中;
所述消费者用于当共享内存状态机处于可通信状态时从共享内存的环形队列中读取需要进行通信的字节流数据。
进一步地,所述消费者重置标志采用0和1表示该标志的两种状态,其中当消费者需要重新界定字节流边界或消费者被生产者通知字节流边界需要重新界定时将消费者重置标志状态置为1,当消费者不需要重新界定字节流边界或消费者被生产者通知共享内存已完成重置时将消费者重置标志状态置为0。
进一步地,所述生产者重置标志采用0和1表示该标志的两种状态,其中当生产者需要重新界定字节流边界或生产者被消费者请求重置共享内存时将生产者重置标志状态置为1,当生产者不需要重新界定字节流边界或生产者已重置共享内存时将生产者重置标志状态置为0。
进一步地,所述生产者重置完成标志采用0和1表示该标志的两种状态,其中当生产者重置共享内存后将生产者重置完成标志状态置为1,当已通知消费者共享内存已完成重置后将生产者重置完成标志状态置为0。
进一步地,所述共享内存状态机处于可通信状态具体为消费者重置标志状态置为0,生产者重置标志状态置为0,生产者重置完成标志状态置为0。
进一步地,所述共享内存还包括设置在环形队列队列头的队列头指针和环形队列队列尾的队列尾指针;所述队列头指针用于生产者执行写操作,将需要进行通信的字节流数据写入环形队列中;所述队列尾指针用于消费者执行读操作,从环形队列中读取需要进行通信的字节流数据。
进一步地,当生产者写入一个字节到环形队列中时,队列头指针向前移动一个字节;当消费者从环形队列中读取一个字节时,队列尾指针向前移动一个字节。
本发明还提供了一种利用共享内存进行进程间字节流通信的方法,包括以下步骤:
S1、利用上述结构中生产者和消费者获取共享内存;
S2、判定生产者或消费者是否重新界定字节流边界;若是,则执行步骤S3;若否,则执行步骤S4;
S3、根据生产者或消费者界定字节流边界的需求对共享内存状态机进行跳转,并重置共享内存;
S4、生产者将需要进行通信的字节流数据写入共享内存的环形队列中,消费者从共享内存的环形队列中读取需要进行通信的字节流数据。
进一步地,所述步骤S3中当生产者需要重新界定字节流边界时包括以下分步骤:
A1、生产者将生产者重置标志状态置为1;
A2、消费者获取生产者重置标志状态,将消费者重置标志状态置为1;
A3、生产者获取消费者重置标志状态,清空共享内存中的环形队列,将生产者重置标志状态置为0,并将生产者重置完成标志状态置为1;
A4、消费者获取生产者重置完成标志状态,将消费者重置标志状态置为0;
A5、生产者获取消费者重置标志状态,将生产者重置完成标志状态置为0。
进一步地,所述步骤S3中当消费者需要重新界定字节流边界时包括以下分步骤:
B1、消费者将消费者重置标志状态置为1;
B2、生产者获取消费者重置标志状态,清空共享内存中的环形队列,将生产者重置标志状态置为0,并将生产者重置完成标志状态置为1;
B3、消费者获取生产者重置完成标志状态,将消费者重置标志状态置为0;
B4、生产者获取消费者重置标志状态,将生产者重置完成标志状态置为0。
本发明具有的有益效果是:本发明基于操作系统提供的共享内存,设计了一种单生产者和单消费者之间利用共享内存进行进程间字节流通信的机制,通过在共享内存设置三个标志位组成共享内存状态机,利用共享内存状态机的跳转来保证通信双方的数据同步,进而实现字节流的通信,提高了不同进程之间的读写操作效率。
附图说明
图1是本发明利用共享内存进行进程间字节流通信的结构示意图;
图2是本发明中共享内存状态机的跳转逻辑示意图;
图3是本发明中环形队列的结构示意图;
图4是本发明利用共享内存进行进程间字节流通信的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,本发明实施例提供了一种利用共享内存进行进程间字节流通信的结构,包括单生产者、单消费者及连接生产者与消费者以实现字节流通信的共享内存。
生产者用于当共享内存状态机处于可通信状态时将需要进行通信的字节流数据写入共享内存的环形队列中,消费者用于当共享内存状态机处于可通信状态时从共享内存的环形队列中读取需要进行通信的字节流数据。
本发明基于操作系统提供的共享内存,通信结构中的生产者或消费者的所有接口,只能适用于串行执行的方式进行调用,不能多进程同时进行读或者多进程同时写。具体而言,只能是单个进程读,或者单个进程写。
共享内存包括用于读写字节流数据的环形队列和组成共享内存状态机的消费者重置标志、生产者重置标志、生产者重置完成标志;本发明通过使用三个标志位,组成了共享内存的状态机,通过状态机的跳转来保证通信双方的同步,以实现字节流的通信。
本发明在在字节流的通信过程当中,随时可以重新界定字节流的界限。通过在共享内存中指定了三个标志位来达到通信双方完成同步,以保证通信的正确性。
消费者重置标志用于当消费者需要重新界定字节流边界时设置该标志状态,请求生产者重置共享内存;
生产者重置标志用于当生产者需要重新界定字节流边界时设置该标志状态,通知消费者字节流边界需要重新界定;
生产者重置完成标志用于当生产者重置共享内存后设置该标志状态,通知消费者共享内存已完成重置。
其中共享内存的重置,是当共享内存中的数据已经失去界限时,把数据全部清空,以便后续的数据以清晰的界限来重新发送。
共享内存中的三个标志位,每一个标志位只有两种状态。为了方便表示状态,把每一个标志位的状态用“0”和“1”来表示。然后把三个标志位的数值组合起来,组成三位的二进制数值。使用该二进制数值来表示状态机的状态。
消费者重置标志表示消费者需要生产者重新设置数据的开始,并且此标志位只能由消费者来改写。消费者重置标志采用0和1表示该标志的两种状态,其中当消费者需要重新界定字节流边界或消费者被生产者通知字节流边界需要重新界定时将消费者重置标志状态置为1,当消费者不需要重新界定字节流边界或消费者被生产者通知共享内存已完成重置时将消费者重置标志状态置为0。
生产者重置标志表示生产者已经不知道共享内存的数据边界,需要重新设置数据的界限,并且此标志位只能由生产者来改写。生产者重置标志采用0和1表示该标志的两种状态,其中当生产者需要重新界定字节流边界或生产者被消费者请求重置共享内存时将生产者重置标志状态置为1,当生产者不需要重新界定字节流边界或生产者已重置共享内存时将生产者重置标志状态置为0。
生产者重置完成标志表示生产者已经清空了共享内存,重新界定了数据的边界,并且此标志位只能由生产者来改写。生产者重置完成标志采用0和1表示该标志的两种状态,其中当生产者重置共享内存后将生产者重置完成标志状态置为1,当已通知消费者共享内存已完成重置后将生产者重置完成标志状态置为0。
例如,消费者请求重置标志为1,生产者完成重置标志为0,生产者请求重置标志为0,那么当前的状态是二进制数值:100。三个标志位组成的二进制数值,一共有8个具体的值,具体包括000、001、010、011、100、101、110、111。
参照图2,这个8个二进制值,组成了状态机的8个状态,虚线表示生产端在修改标志,实线表示消费端在修改标志,只有状态S1是可以通信的状态,即共享内存状态机处于可通信状态为消费者重置标志状态置为0,生产者重置标志状态置为0,生产者重置完成标志状态置为0。指向S5、S6、S7、S8的实心箭头,表示消费者不知道共享内存之中的数据的边界,需要重置队列,因此消费者把二进制数值的第一位置为1;指向S2和S6的空心箭头,表示生产者不知道共享内存之中的数据的边界,需要重置队列,因此生产者把二进制数值的第三位置为1;消费者修改消费者请求重置标志,生产者修改生产者重置标志和生产者请求重置标志,就转化为状态机状态的跳转。
通信的双方通过查看状态机的状态,来决定是否可以进行通信,即由生产者发送数据,消费者获取数据。
在通信双方获取了共享内存之后,使用相同的数据结构来映射内存结构,使得通信队列,重置标志以及头尾指针都是相同的内存单元;然后需要完成对队列进行边界界定之后,才能开始通信。同时,在通信进行的过程当中,任何一方重新启动,或者因为其他原因丢失了数据边界,重新开始通信之前,都要重新对队列进行边界界定。
本发明通过三个标识来完成消费者和生产者之间的同步,不同的进程之间的通过共享内存来通信,需要界定字节流的开始,才能真正的建立一个通信通道。在双方都确认了可以重置共享内存之后,由生产者来完成重置共享内存。
由于生产者和消费者没有使用系统提供的互斥量进行保护,所以生产者设置标志的操作顺序至关重要。在生产者端有两个标志位,生产者需要重置共享内存的时候,要先设置共享内存的标志位,然后再等待消费者同意重置共享内存,再来进行清空共享内存的数据队列,而且只有生产者才能重置数据。这个流程保证了消费者和生产者之间的同步。
本发明在共享内存中创建无锁环形队列,生产者将数据放入无锁环形队列头部,消费者从数据尾部取出数据处理。环形队列中采用在队列头入队,从队列尾部出队的方式进行运作;数据的头指针,只能由读数据者操作;写指针,只能由写数据者操作,所以两个进程之间不需要互斥操作;环形队列把数据视为字节流,不解析任何数据。
参照图3,1到7代表字节编号,从字节1一直到字节7;并且这是一个循环队列,当头指针或者尾指针到达编号为1的字节,再要往前移一位的时候,会重新移到编号为7的字节。front指向当前可以存放数据的队列头;rear指向当前可以读取数据的队列尾;size表示队列的字节个数。在图示的队列中,size的值为7;front和rear的数值范围是0到(size-1)。
生产者放入一个字节,front指针往前移一个字节,如果此时字节编号为1,则指向编号为7的字节;消费者读取一个字节,rear指针往前移一个字节,如果此时字节编号为1,则指向编号为7的字节;front==rear表示下一个读取的字节还没有写入数据,此时队列为空,消费者不能再读取数据;(front+1)%size==rear表示写一个可以写数据的字节里面的数据还没有被读取,此时队列已经满了,生产者不能再放入数据。
基于上述利用共享内存进行进程间字节流通信的结构,本发明实施例还提供了一种利用共享内存进行进程间字节流通信的方法,如图4所示,包括以下步骤:
S1、利用上述结构中生产者和消费者获取共享内存;
在本实施例中,通信双方获取共享内存后,使用相同的数据结构来映射内存结构,使得通信队列,重置标志以及头尾指针都是相同的内存单元。
S2、判定生产者或消费者是否重新界定字节流边界;若是,则执行步骤S3;若否,则执行步骤S4;
在本实施例中,需要完成对队列进行边界界定,才能开始字节流通信。同时,在通信进行的过程当中,任何一方重新启动,或者因为其他原因丢失了数据边界,重新开始通信之前,都要重新对队列进行边界界定。
S3、根据生产者或消费者界定字节流边界的需求对共享内存状态机进行跳转,并重置共享内存;
在本实施例中,针对生产者或消费者界定字节流边界的不同需求,分别对共享内存状态机进行跳转。
当生产者需要重新界定字节流边界时包括以下分步骤:
A1、生产者将生产者重置标志状态置为1;
A2、消费者获取生产者重置标志状态,知晓生产者请求重置共享队列,则将消费者重置标志状态置为1,表示消费者同意生产者清空共享队列;
A3、生产者获取消费者重置标志状态,知晓消费者同意重置共享内存,则清空共享内存中的环形队列,然后将生产者重置标志状态置为0,并将生产者重置完成标志状态置为1;
A4、消费者获取生产者重置完成标志状态,知晓生产者已经完成了清空队列,则将消费者重置标志状态置为0,表示消费者已经看到生产者完成了清空队列;
A5、生产者获取消费者重置标志状态,知晓消费者已知晓队列已经清空,则将生产者重置完成标志状态置为0。此时,所有的标志位都为0,表示可以开始进行通信了。
当消费者需要重新界定字节流边界时包括以下分步骤:
B1、消费者将消费者重置标志状态置为1;
B2、生产者获取消费者重置标志状态,知晓消费者请求重置共享队列,则直接清空共享内存中的环形队列,将生产者重置标志状态置为0,这里不论标志为何种状态均进行一次置0操作,并将生产者重置完成标志状态置为1,表示已经完成清空队列;
B3、消费者获取生产者重置完成标志状态,知晓生产者已经完成了清空队列,则将消费者重置标志状态置为0;
B4、生产者获取消费者重置标志状态,知晓消费者已知晓队列已经清空,则将生产者重置完成标志状态置为0。此时,所有的标志位都为0,表示可以开始进行通信了。
S4、生产者将需要进行通信的字节流数据写入共享内存的环形队列中,消费者从共享内存的环形队列中读取需要进行通信的字节流数据。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

Claims (9)

1.一种利用共享内存进行进程间字节流通信的结构,其特征在于,包括单生产者、单消费者及连接生产者与消费者以实现字节流通信的共享内存;
所述共享内存包括用于读写字节流数据的环形队列和组成共享内存状态机的消费者重置标志、生产者重置标志、生产者重置完成标志;所述消费者重置标志用于当消费者需要重新界定字节流边界时设置该标志状态,请求生产者重置共享内存;所述生产者重置标志用于当生产者需要重新界定字节流边界时设置该标志状态,通知消费者字节流边界需要重新界定;所述生产者重置完成标志用于当生产者重置共享内存后设置该标志状态,通知消费者共享内存已完成重置;
所述生产者用于当共享内存状态机处于可通信状态时将需要进行通信的字节流数据写入共享内存的环形队列中;所述共享内存状态机处于可通信状态具体为消费者重置标志状态置为0,生产者重置标志状态置为0,生产者重置完成标志状态置为0;
所述消费者用于当共享内存状态机处于可通信状态时从共享内存的环形队列中读取需要进行通信的字节流数据。
2.如权利要求1所述的利用共享内存进行进程间字节流通信的结构,其特征在于,所述消费者重置标志采用0和1表示该标志的两种状态,其中当消费者需要重新界定字节流边界或消费者被生产者通知字节流边界需要重新界定时将消费者重置标志状态置为1,当消费者不需要重新界定字节流边界或消费者被生产者通知共享内存已完成重置时将消费者重置标志状态置为0。
3.如权利要求2所述的利用共享内存进行进程间字节流通信的结构,其特征在于,所述生产者重置标志采用0和1表示该标志的两种状态,其中当生产者需要重新界定字节流边界或生产者被消费者请求重置共享内存时将生产者重置标志状态置为1,当生产者不需要重新界定字节流边界或生产者已重置共享内存时将生产者重置标志状态置为0。
4.如权利要求3所述的利用共享内存进行进程间字节流通信的结构,其特征在于,所述生产者重置完成标志采用0和1表示该标志的两种状态,其中当生产者重置共享内存后将生产者重置完成标志状态置为1,当已通知消费者共享内存已完成重置后将生产者重置完成标志状态置为0。
5.如权利要求1所述的利用共享内存进行进程间字节流通信的结构,其特征在于,所述共享内存还包括设置在环形队列队列头的队列头指针和环形队列队列尾的队列尾指针;所述队列头指针用于生产者执行写操作,将需要进行通信的字节流数据写入环形队列中;所述队列尾指针用于消费者执行读操作,从环形队列中读取需要进行通信的字节流数据。
6.如权利要求5所述的利用共享内存进行进程间字节流通信的结构,其特征在于,当生产者写入一个字节到环形队列中时,队列头指针向前移动一个字节;当消费者从环形队列中读取一个字节时,队列尾指针向前移动一个字节。
7.一种利用共享内存进行进程间字节流通信的方法,其特征在于,包括以下步骤:
S1、利用权利要求1-6任一所述结构中生产者和消费者获取共享内存;
S2、判定生产者或消费者是否重新界定字节流边界;若是,则执行步骤S3;若否,则执行步骤S4;
S3、根据生产者或消费者界定字节流边界的需求对共享内存状态机进行跳转,并重置共享内存;
S4、生产者将需要进行通信的字节流数据写入共享内存的环形队列中,消费者从共享内存的环形队列中读取需要进行通信的字节流数据。
8.如权利要求7所述的利用共享内存进行进程间字节流通信的方法,其特征在于,所述步骤S3中当生产者需要重新界定字节流边界时包括以下分步骤:
A1、生产者将生产者重置标志状态置为1;
A2、消费者获取生产者重置标志状态,将消费者重置标志状态置为1;
A3、生产者获取消费者重置标志状态,清空共享内存中的环形队列,将生产者重置标志状态置为0,并将生产者重置完成标志状态置为1;
A4、消费者获取生产者重置完成标志状态,将消费者重置标志状态置为0;
A5、生产者获取消费者重置标志状态,将生产者重置完成标志状态置为0。
9.如权利要求7所述的利用共享内存进行进程间字节流通信的方法,其特征在于,所述步骤S3中当消费者需要重新界定字节流边界时包括以下分步骤:
B1、消费者将消费者重置标志状态置为1;
B2、生产者获取消费者重置标志状态,清空共享内存中的环形队列,将生产者重置标志状态置为0,并将生产者重置完成标志状态置为1;
B3、消费者获取生产者重置完成标志状态,将消费者重置标志状态置为0;
B4、生产者获取消费者重置标志状态,将生产者重置完成标志状态置为0。
CN201911201099.0A 2019-11-29 2019-11-29 一种利用共享内存进行进程间字节流通信的结构及方法 Active CN110990169B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911201099.0A CN110990169B (zh) 2019-11-29 2019-11-29 一种利用共享内存进行进程间字节流通信的结构及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911201099.0A CN110990169B (zh) 2019-11-29 2019-11-29 一种利用共享内存进行进程间字节流通信的结构及方法

Publications (2)

Publication Number Publication Date
CN110990169A CN110990169A (zh) 2020-04-10
CN110990169B true CN110990169B (zh) 2022-11-01

Family

ID=70088348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911201099.0A Active CN110990169B (zh) 2019-11-29 2019-11-29 一种利用共享内存进行进程间字节流通信的结构及方法

Country Status (1)

Country Link
CN (1) CN110990169B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966896A (zh) * 2020-08-07 2020-11-20 上海新共赢信息科技有限公司 一种车辆搜索方法、装置和计算机设备
CN115269392B (zh) * 2022-07-20 2023-11-14 北京斯年智驾科技有限公司 一种用于融合感知的可视化调试方法、设备、介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693162A (zh) * 2011-12-29 2012-09-26 中国科学技术大学苏州研究院 基于共享内存和核间中断的多核平台上多个虚拟机之间进程通信方法
CN103150220A (zh) * 2011-12-07 2013-06-12 腾讯科技(深圳)有限公司 进程间的通信方法和通信系统
CN108614740A (zh) * 2016-12-12 2018-10-02 上海美桔网络科技有限公司 基于进程间共享内存方式生成唯一id的方法及系统
CN109933443A (zh) * 2019-03-07 2019-06-25 腾讯科技(深圳)有限公司 进程间通信方法、装置、计算机设备及可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090288104A1 (en) * 2008-05-19 2009-11-19 Rohati Systems, Inc. Extensibility framework of a network element
WO2011003199A1 (en) * 2009-07-10 2011-01-13 Certicom Corp. System and method for managing electronic assets
US10977260B2 (en) * 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150220A (zh) * 2011-12-07 2013-06-12 腾讯科技(深圳)有限公司 进程间的通信方法和通信系统
CN102693162A (zh) * 2011-12-29 2012-09-26 中国科学技术大学苏州研究院 基于共享内存和核间中断的多核平台上多个虚拟机之间进程通信方法
CN108614740A (zh) * 2016-12-12 2018-10-02 上海美桔网络科技有限公司 基于进程间共享内存方式生成唯一id的方法及系统
CN109933443A (zh) * 2019-03-07 2019-06-25 腾讯科技(深圳)有限公司 进程间通信方法、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
CN110990169A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN108647104B (zh) 请求处理方法、服务器及计算机可读存储介质
US10019408B2 (en) Remote direct memory access (RDMA) high performance producer-consumer message processing
US9128615B2 (en) Storage systems that create snapshot queues
CN110990169B (zh) 一种利用共享内存进行进程间字节流通信的结构及方法
JP5309703B2 (ja) 共有メモリの制御回路、制御方法及び制御プログラム
CN110647511A (zh) 数据同步方法、计算设备及计算机存储介质
EP3077914B1 (en) System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface
CN113032162B (zh) 一种基于共享内存备份机制的多进程通讯方法
CN112698959A (zh) 一种多核通信方法和装置
CN112395097A (zh) 一种消息处理方法、装置、设备和存储介质
CN107391274A (zh) 离线消息的处理方法及装置
CN113296979B (zh) 一种虚幻引擎与外部程序的数据通信方法
CN109062857B (zh) 一种能高速实现多处理器间通信的新型消息控制器及其通信方法
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
US10678744B2 (en) Method and system for lockless interprocessor communication
CN108153597B (zh) 一种linux设备管理装置及方法
CN111966303B (zh) 一种数据处理方法、系统、设备及可读存储介质
CN112235206A (zh) 一种基于单片机的环形缓冲队列数据接收机制
CN109426562B (zh) 优先级加权轮转调度器
CN107483399B (zh) 一种在远程过程调用中的信息封装方法及装置
CN102117261A (zh) 一种芯片内部处理器之间的通信方法
CN111767154B (zh) 用于无阻塞通讯的无锁环形队列实现方法
CN114911525A (zh) 二进制指令翻译执行方法及装置
CN106126435B (zh) 一种实现链表流水操作的电路结构及操作方法
EP3422171A1 (en) Dual pointer for memory mapped interface communication

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