CN104778089B - 一种基于Linux内核的多点到多点数据发布和订阅方法 - Google Patents

一种基于Linux内核的多点到多点数据发布和订阅方法 Download PDF

Info

Publication number
CN104778089B
CN104778089B CN201510197093.6A CN201510197093A CN104778089B CN 104778089 B CN104778089 B CN 104778089B CN 201510197093 A CN201510197093 A CN 201510197093A CN 104778089 B CN104778089 B CN 104778089B
Authority
CN
China
Prior art keywords
mailbox
data
message
kernel
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
Application number
CN201510197093.6A
Other languages
English (en)
Other versions
CN104778089A (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.)
HEBEI FAREAST COMMUNICATION SYSTEM ENGINEERING Co Ltd
Original Assignee
HEBEI FAREAST COMMUNICATION SYSTEM ENGINEERING 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 HEBEI FAREAST COMMUNICATION SYSTEM ENGINEERING Co Ltd filed Critical HEBEI FAREAST COMMUNICATION SYSTEM ENGINEERING Co Ltd
Priority to CN201510197093.6A priority Critical patent/CN104778089B/zh
Publication of CN104778089A publication Critical patent/CN104778089A/zh
Application granted granted Critical
Publication of CN104778089B publication Critical patent/CN104778089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于Linux内核的多点到多点数据发布和订阅方法,该方法基于Linux操作系统平台,属于数据通信领域。所述的方法是在Linux内核中编写两个内核模块,分别为数据发布(Publisher)模块和数据订阅(Subscriber)模块,将这两个模块安装在Linux内核中,可在操作系统设备目录中生成两个文件,应用程序可通过访问文件的方式实现任务间通信。该方法通过大量的双向链表维护各个任务发布数据和订阅数据信息,通过双向链表临时保存任务间通信数据,通过POLL机制实现应用程序对内核文件的访问,通过PROC文件系统向用户公布运行状态。本发明为上层任务提供了一种资源占用少、实时性强、应用方便、稳定可靠的任务间通信方法。

Description

一种基于Linux内核的多点到多点数据发布和订阅方法
技术领域
本发明属于数据通信领域,尤其涉及在多任务操作系统环境下,任务间通信的方法。
背景技术
Linux操作系统是多用户、多任务操作系统,广泛应用在各种通信和电子设备上。在多任务操作系统上,多个任务并发协同工作,可有效提高硬件平台的使用效率和业务的处理能力。但是同时,多任务并发协同工作,为设计人员带来了任务间同步和任务间通信的要求。
Linux操作系统下,常用的任务间通信(IPC)方法包括信号量、管道、共享内存、消息队列和套接字(Socket),每种通信方式的特点如下:
信号量:信号量是一种异步通信机制,任务不需要执行任何操作来等待信号的到达。信号异步通知接收信号的任务发生了某个事件,然后操作系统将会中断接收到信号的任务的执行,转而去执行相应的信号处理程序。信号通知任务发生某种事件,无法传输大量数据。
管道:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的任务间使用。
共享内存(shared memory):共享内存就是映射一段能被其他任务所访问的内存,这段共享内存由一个任务创建,但多个任务都可以访问。共享内存是最快的IPC方式,它是针对其他任务间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现任务间的同步和通信。
套接字:套接字通过TCP/IP协议进行数据通信,可用于不同CPU间任务和同一个CPU上多任务之间的通信;
消息队列:消息队列是一个消息的链表,具有特定的格式及特定的优先级,写任务可以向消息队列中写入数据,读任务可以从消息队列冲读取消息;
各种通信方式都有其特点,因此,适合在各种不同通信需要情况下使用。例如:管道只能在具有亲缘关系的任务间使用,只支持单项数据流,管道所传送的是无格式字节流,不区分消息的边界;共享内存适合任务间大数据量的交互,但是由于多个任务可以同时访问同一块内存,数据的安全性和一致性需要严密的任务间同步来保证;套接字适合不同主机任务间通信,但是对于同一主机上的任务,套接字的网络特征却成了累赘,数据的传输要经过复杂的TCP/IP协议封装,各层报头封装,CRC校验和确认等等特征都降低了通信的传输效率;消息队列效率较高,但是,同一任务无法通过异步通知模型同时访问多个消息队列,而且消息队列只支持点对点数据通信,无法实现一点对多点或者多点对多点的数据通信。
发明内容
本专利的目的是提出一种轻量级的、高效率的、支持异步通知模型的、多点对多点的任务间通信方法,称为多点到多点数据发布和订阅方法。
本发明通过以下技术方案来实现上述目的:一种基于Linux内核的多点到多点数据发布和订阅方法,包括以下步骤:
S1:Linux系统加载内核模块,在其文件系统中生成发布文件和订阅文件,在内核中生成邮箱池;
S2:一个或多个发布任务分别进行发布数据准备,一个或多个接收任务分别进行订阅数据准备;
S3:一个或多个发布任务分别发送数据并将数据写入Linux内核,Linux内核通知每个接收任务分别接收数据,每个接收任务分别接收并读取数据,所有的接收任务均读取数据之后,Linux内核将数据删除。
其中,步骤S2中的发布任务进行发布数据准备具体为:
S201:发布任务打开发布文件,根据发布文件在邮箱池中查找与要创建的邮箱名称相同的邮箱,若找到,则将该邮箱的地址返回给发布任务;若未找到,则执行步骤S202;
S202:在内核中创建以该名称命名的邮箱,将邮箱插入邮箱池,然后为邮箱创建若干报头和若干报文,在邮箱的预留空间中登记发布任务的个数和接收任务的个数,将创建的邮箱的地址返回给发布任务。
其中,步骤S2中的接收任务进行订阅数据准备具体为:
S211:接收任务打开订阅文件并生成订单,订单中包含内核等待队列;
S212:根据订阅文件在邮箱池中查找与要订阅的邮箱名称相同的邮箱,若找到,则将生成的订单保存到该邮箱中;若未找到,则执行步骤S213;
S213:在内核中创建以该名称命名的邮箱,将邮箱插入邮箱池,然后为邮箱创建若干报头和若干报文,在邮箱的预留空间中登记发布任务的个数和接收任务的个数,将生成的订单保存到创建的邮箱中;
S214:将订单地址返回给接收任务;
S215:接收任务通过poll函数等待在订单的内核等待队列上。
其中,在内核中创建以该名称命名的邮箱,将邮箱插入邮箱池,然后为邮箱创建若干报头和若干报文,具体为:
S221:根据邮箱的数据结构在内核中为邮箱申请内存,给邮箱命名,在邮箱中预留多个空间分别保存发布任务数量、接收任务数量、空闲报文列表、空闲报头列表和订单;
S222:将邮箱插入邮箱池;
S223:根据报文的数据结构在内核中为报文申请内存,在报文中预留多个空间分别保存报文的承载能力、承载数据后报文的大小、订单的数量和发布任务的数据;
S224:将报文插入邮箱的空闲报文列表;
S225:根据报头的数据结构在内核中为报头申请内存,在报头中预留空间保存报文;
S226:将报头插入邮箱的空闲报头列表。
其中,步骤S3中发布任务将数据写入Linux内核具体为:
S31:发布任务查找要写入数据的邮箱,根据邮箱中的订单判断是否有接收任务订阅该数据,若没有,则发送终止;若有,执行步骤S32;
S32:根据空闲报文列表从邮箱中获取空闲的报文,判断该报文的承载能力是否满足需求,若满足,将数据保存到该报文中;若不满足,释放该报文并获取新的报文,将数据保存到新的报文中,更新邮箱中接收任务的数量;
S33:根据邮箱中的订单数量获取空闲的报头,将添加数据后的报文分别保存到每个报头中,在每个订单中插入一个添加该报文的报头;
S34:唤醒所有订单中的内核等待队列。
其中,所述步骤S3中接收任务读取数据具体为:接收任务从订单中获取数据,每次获取数据后将报文中的接收任务数量减1,并将订单中的报头插回邮箱的空闲报头列表,当接收任务数量为0时清除报文中的数据并将报文插回邮箱的空闲报文列表。
本发明方法相对于背景技术的优点:
(1)本方法在Linux内核中实现,以内核模块的形式存在,大量使用了双向内核消息队列,方便了数据的检索,提高了数据存储和访问的效率。
(2)本发明的内核模块为用户态的任务提供了文件访问接口,任务通过打开,关闭,ioctl,读,写和Poll操作使用内核模块,实现多任务间通信。
附图说明
图1为本发明的所有任务初始化之后内核中的数据结构;
图2为本发明实施例发布任务A或者发布任务B发布数据报,接收任务D和接收任务E获取数据报过程中内核中的数据结构;
图3为本发明邮箱的数据结构;
图4为本发明报头的数据结构;
图5为本发明订单的数据结构;
图6为本发明报文的数据结构。
具体实施方式
下面结合附图和实施例对本发明做进一步详细的说明。
本文通过举例的方式描述本发明的内容和实施方式。假设应用层的发布任务为三个,接收任务为两个,分别为发布任务A、发布任务B、发布任务C、接受任务D和接受任务E。发布任务A和发布任务B同时发布的邮箱名称为“MSGQ_TEST1”,发布任务C发布的邮箱名称为“MSGQ_TEST2”,接收任务D和接收E同时订阅的邮箱名称为“MSGQ_TEST1”。
一种基于Linux内核的多点到多点数据发布和订阅方法,具体过程如下:
1.内核启动,系统自动加载内核模块:
a)在文件系统内生成“发布文件”;
b)在文件系统中生成“订阅文件”;
c)在内核中生成双向链表表头数据邮箱池,并且对邮箱池进行初始化;
2.发布任务进行发布数据准备,为发布任务A、发布任务B和发布任务C写数据创建内核资源;接收任务进行订阅数据准备,为接收任务D和接收任务E读数据的任务创建资源;
(1)发布任务进行发布数据准备具体为:
a)发布任务A打开“发布文件”;
b)发布任务A调用ioctl,并进行数据发布初始化工作;
c)内核获取名称为“MSGQ_TEST1”,该数据报对应的邮箱名称为“MSGQ_TEST1”;
d)发布任务A扫描邮箱池,如果存在名称为“MSGQ_TEST1”的邮箱,则返回该节点指针;如果不存在名称为“MSGQ_TEST1”的邮箱,则在内核中生成一个新的邮箱;
e)初始化邮箱的数据结构(邮箱的数据结构如图3所示),具体包括:
1)在邮箱的邮箱名称域保存新生成的邮箱的名称“MSGQ_TEST1”,在邮箱的发布任务数量域保存发布该数据的任务数量(初始为0),在邮箱的订单数量域保存订阅该数据的任务数量(初始为0),在邮箱消息统计域统计数据报发送次数(初始为0);
2)在邮箱中初始化三个双向链表头,分别为订单链表头、空闲报头链表头和空闲报文链表头;订单链表头用于串联所有订单的信息,空闲报文链表头用于串联空闲的报文,空闲报头链表头用于串联空闲的报头;
f)通过邮箱中的链表节点域将新生成的邮箱插入邮箱池链表;
g)将订单链表和空闲报文链表初始化为空链表,初始化若干报头并将其添加到空闲报头链表上,初始化报头数据结构;报头数据结构如图4所示;
初始化报头数据结构具体为:将报头的报文指针域初始化为空;
h)通过报头的链表节点域将新生成的报头插入到邮箱的空闲报头链表;
i)将邮箱的发布任务数量加1;
j)发布任务A准备工作完成;
k)发布任务B打开“发布文件”;
l)发布任务B调用ioctl,并进行数据发布初始化工作,由于发布任务B也发布名称为“MSGQ_TEST1”的数据报,而在内核中已经生成名字为“MSGQ_TEST1”的邮箱,内核找到该邮箱后返回给发布任务B;
m)邮箱的发布任务数量加1;
n)发布任务C发布名称为“MSGQ_TEST2”的数据报,流程同发布任务A发布“MSGQ_TEST1”数据报即步骤2的(1)中的步骤e)至步骤f),生成的所有邮箱都需要挂在邮箱池链表上。
(2)接收任务进行订阅数据准备具体为:
a)接收任务D打开“订阅文件”;
b)接收任务D用ioctl,进行数据订阅初始化工作;
c)内核获取名称为“MSGQ_TEST1”,该数据报对应的邮箱名称为“MSGQ_TEST1”;
d)初始化订单的数据结构;订单的数据结构如图5所示;
e)接收任务D遍历邮箱池,查找名字为“MSGQ_TEST1”的邮箱,如果查找到,则将查找到的邮箱地址保存在订单的邮箱指针域;如果没有找到,则生成新的邮箱,具体生成的方法参照步骤2的(1)中的步骤a)至步骤i),将新生成的邮箱地址保存在订单的邮箱指针域;
f)邮箱的订单数量域加1;
g)初始化订单的内核等待队列域;
h)初始化订单的数据链表域为空;
i)通过订单的链表节点域将该订单添加到邮箱的订单链表中,实现有发布任务A、发布任务B向邮箱写数据的时候,内核能直接找到接收任务D的订单;
j)接收任务D调用poll函数,通过poll_wait等待在订单内核等待队列上,等待发布任务A、发布任务B向邮箱写数据后唤醒;
接收任务D等待接收数据报时,挂起在内核等待队列上,当有发布任务写数据报时唤醒该内核等待队列,从而唤醒任务D。
k)接收任务E订阅名称为“MSGQ_TEST1”的数据报,流程同接收任务D即步骤2中(2)的步骤a)至步骤j),接收任务D和接收任务E的订单都要挂在邮箱的订单链表中。
发布任务A、发布任务B、发布任务C、接收任务D和接收任务E均初始化完成后,内核中的数据结构如图1所示。
3.发布任务和接收任务分别发送和接收数据,数据通过内核在任务间传递:
a)发布任务A和发布任务B均打开“发布文件”,通过ioctl通知内核要向“MSGQ_TEST1”邮箱写数据;
b)发布任务A和发布任务B分别向“发布文件”写数据,内核获取对应的邮箱;
c)通过邮箱的订单数量域判断,如果没有订阅任务则发送终止;如果有订阅任务,执行步骤d);
d)通过邮箱的空闲报文链表获取一个空闲报文,如果获取成功,则将该空闲报文从空闲报文链表中删除,然后从用户空间获取数据,将数据保存在该空闲报文的报文数据域中,将当前报文尺寸域设置为数据大小,累计邮箱的写次数;如果没有获取成功,则生成新的报文,然后从用户空间获取数据,将数据保存在该新生成报文的报文数据域中,将当前报文尺寸域设置为数据大小,累计邮箱的写次数;如果获取的报文最大容量不满足存储数据的要求,则释放该报文,并按照需求的大小生成新的报文,然后从用户空间获取数据,将数据保存在该新生成报文的报文数据域中,将当前报文尺寸域设置为数据大小,累计邮箱的写次数;
报文的数据结构如图6所示,最大报文容量域保存该报文的容量,当前报文尺寸域保存当前存在于该区域的数据实际大小。
e)根据邮箱的订单数量域获取该数据的接收任务数量,如果接收任务数量为0,直接将获取的报文插回空闲报文链表中,操作结束;如果接收任务数量不为0,将报文的报文读取计数域设置为接收任务数量,通过邮箱的订单链表获取每一个订单,为每一个订单从邮箱的空闲报头链表获取一个空的数据头,将报头的报文指针域指向保存数据的报文,将数据头对应插入订单的数据链表中;
f)内核通过接收任务D和接收任务E的订单内核等待队列分别唤醒接收任务D和接收任务E;
接收任务D和接收任务E读数据之前内核中数据结构如图2所示;
g)接收任务D和接收任务E分别调用ioctl,从订单的数据链表获取对应的报头,通过报头的报文指针分别获取报文,通过报文的实际报文尺寸分别获取报文数据的实际大小;
h)接收任务D和接收任务E根据消息大小在应用层对应分配内存;
i)接收任务D和接收任务E分别调用read函数,从订单的数据链表获取对应的报头,通过报头的报文指针分别获取报文,通过报文的实际报文数据域分别获取数据;
j)将报头从订单的数据链表中删除,将报头插回入到邮箱的空闲报头链表中;
k)将报文的报文读取计数减1,当报文读取计数为零时将报文插回到邮箱的空闲报文链表中。

Claims (4)

1.一种基于Linux内核的多点到多点数据发布和订阅方法,其特征在于包括以下步骤:
S1:Linux系统加载内核模块,在其文件系统中生成发布文件和订阅文件,在内核中生成邮箱池;
S2:一个或多个发布任务分别进行发布数据准备,一个或多个接收任务分别进行订阅数据准备;
S3:一个或多个发布任务分别发送数据并将数据写入Linux内核,Linux内核通知每个接收任务分别接收数据,每个接收任务分别接收并读取数据,所有的接收任务均读取数据之后,Linux内核将数据删除;
所述步骤S2中的发布任务进行发布数据准备具体为:
S201:发布任务打开发布文件,发布文件在邮箱池中查找与要创建的邮箱名称相同的邮箱,若找到,则将该邮箱的地址返回给发布任务;若未找到,则执行步骤S202;
S202:在内核中创建以该名称命名的邮箱,将邮箱插入邮箱池,然后为邮箱创建若干报头和若干报文,在邮箱的预留空间中登记发布任务的个数和接收任务的个数,将创建的邮箱的地址返回给发布任务;
所述步骤S2中的接收任务进行订阅数据准备具体为:
S211:接收任务打开订阅文件并生成订单,订单中包含内核等待队列;
S212:根据订阅文件在邮箱池中查找与要订阅的邮箱名称相同的邮箱,若找到,则将生成的订单保存到该邮箱中;若未找到,则执行步骤S213;
S213:在内核中创建以该名称命名的邮箱,将邮箱插入邮箱池,然后为邮箱创建若干报头和若干报文,在邮箱的预留空间中登记发布任务的个数和接收任务的个数,将生成的订单保存到创建的邮箱中;
S214:将订单地址返回给接收任务;
S215:接收任务通过poll函数等待在订单的内核等待队列上。
2.根据权利要求1所述的一种基于Linux内核的多点到多点数据发布和订阅方法,其特征在于:所述的在内核中创建以该名称命名的邮箱,将邮箱插入邮箱池,然后为邮箱创建若干报头和若干报文,具体为:
S221:根据邮箱的数据结构在内核中为邮箱申请内存,给邮箱命名,在邮箱中预留多个空间分别保存发布任务数量、接收任务数量、空闲报文列表、空闲报头列表和订单;
S222:将邮箱插入邮箱池;
S223:根据报文的数据结构在内核中为报文申请内存,在报文中预留多个空间分别保存报文的承载能力、承载数据后报文的大小、订单的数量和发布任务的数据;
S224:将报文插入邮箱的空闲报文列表;
S225:根据报头的数据结构在内核中为报头申请内存,在报头中预留空间保存报文;
S226:将报头插入邮箱的空闲报头列表。
3.根据权利要求1所述的一种基于Linux内核的多点到多点数据发布和订阅方法,其特征在于:所述步骤S3中发布任务将数据写入Linux内核具体为:
S31:发布任务查找要写入数据的邮箱,根据邮箱中的订单判断是否有接收任务订阅该数据,若没有,则发送终止;若有,执行步骤S32;
S32:根据空闲报文列表从邮箱中获取空闲的报文,判断该报文的承载能力是否满足需求,若满足,将数据保存到该报文中;若不满足,释放该报文并获取新的报文,将数据保存到新的报文中,更新邮箱中接收任务的数量;
S33:根据邮箱中的订单数量获取空闲的报头,将添加数据后的报文分别保存到每个报头中,在每个订单中插入一个添加该报文的报头;
S34:唤醒所有订单中的内核等待队列。
4.根据权利要求1所述的一种基于Linux内核的多点到多点数据发布和订阅方法,其特征在于:所述步骤S3中接收任务读取数据具体为:接收任务从订单中获取数据,每次获取数据后将报文中的接收任务数量减1,并将订单中的报头插回邮箱的空闲报头列表,当接收任务数量为0时清除报文中的数据并将报文插回邮箱的空闲报文列表。
CN201510197093.6A 2015-04-23 2015-04-23 一种基于Linux内核的多点到多点数据发布和订阅方法 Active CN104778089B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510197093.6A CN104778089B (zh) 2015-04-23 2015-04-23 一种基于Linux内核的多点到多点数据发布和订阅方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510197093.6A CN104778089B (zh) 2015-04-23 2015-04-23 一种基于Linux内核的多点到多点数据发布和订阅方法

Publications (2)

Publication Number Publication Date
CN104778089A CN104778089A (zh) 2015-07-15
CN104778089B true CN104778089B (zh) 2017-12-26

Family

ID=53619570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510197093.6A Active CN104778089B (zh) 2015-04-23 2015-04-23 一种基于Linux内核的多点到多点数据发布和订阅方法

Country Status (1)

Country Link
CN (1) CN104778089B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099857B (zh) * 2020-08-25 2022-05-17 深圳市元征科技股份有限公司 电子设备的休眠唤醒方法及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826031A (zh) * 2009-03-06 2010-09-08 王钟 基于Linux系统的PCM流捕获的实现方法
CN102780627A (zh) * 2012-07-31 2012-11-14 深圳市共进电子股份有限公司 一种Linux内核协议栈网桥数据转发方法
CN102880826A (zh) * 2012-08-29 2013-01-16 华南理工大学 一种电子政务云平台安全性的动态完整性度量方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549151B2 (en) * 2005-02-14 2009-06-16 Qnx Software Systems Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment
US10289443B2 (en) * 2012-03-16 2019-05-14 Oracle International Corporation System and method for sharing global transaction identifier (GTRID) in a transactional middleware environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826031A (zh) * 2009-03-06 2010-09-08 王钟 基于Linux系统的PCM流捕获的实现方法
CN102780627A (zh) * 2012-07-31 2012-11-14 深圳市共进电子股份有限公司 一种Linux内核协议栈网桥数据转发方法
CN102880826A (zh) * 2012-08-29 2013-01-16 华南理工大学 一种电子政务云平台安全性的动态完整性度量方法

Also Published As

Publication number Publication date
CN104778089A (zh) 2015-07-15

Similar Documents

Publication Publication Date Title
CN101208671B (zh) 管理消息队列
US9832275B2 (en) Message processing method, device and system for internet of things
CN103049317B (zh) 云环境下基于队列的高并发数据快速写入系统及方法
CN101252536B (zh) 路由器多队列数据包缓存管理与输出队列调度系统
CN102761454A (zh) 一种物联网监控方法及系统
CN101420720A (zh) 用于无线传输的调度表和数据缓存
CN101150485A (zh) 一种零拷贝缓冲区队列网络数据发送的管理方法
CN108762953B (zh) 一种消息队列实现方法
US20090150556A1 (en) Memory to storage communication for hybrid systems
EP1249108A1 (en) Online aggregation in unified messaging
CN105681426B (zh) 异构系统
CN106027534A (zh) 一种基于Netty实现金融报文处理系统
CN102567278A (zh) 一种片上多核数据传输方法和装置
CN114710571B (zh) 数据包处理系统
CN108874555A (zh) 一种写消息至消息中间件的方法及装置
CN102436336A (zh) 一种展示用户资料的方法及装置
CN104778089B (zh) 一种基于Linux内核的多点到多点数据发布和订阅方法
CN107579929A (zh) 一种可靠连接通信队列对的设置方法、系统及相关装置
CN108090018A (zh) 数据交换方法及系统
CN109857553A (zh) 内存管理方法及装置
CN108958903A (zh) 嵌入式多核中央处理器任务调度方法与装置
CN102902593A (zh) 基于缓存机制的协议分发处理系统
JP2016509306A (ja) クラスタにおけるワークシェアリング多重化をサポートするためのシステムおよび方法
CN103268264B (zh) 一种低耦合的多事件同步rfid中间件系统及其实现方法
CN116166582A (zh) 一种数据的读写方法、系统、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant