CN104346229A - 一种用于嵌入式操作系统进程间通讯优化的处理方法 - Google Patents
一种用于嵌入式操作系统进程间通讯优化的处理方法 Download PDFInfo
- Publication number
- CN104346229A CN104346229A CN201410646274.8A CN201410646274A CN104346229A CN 104346229 A CN104346229 A CN 104346229A CN 201410646274 A CN201410646274 A CN 201410646274A CN 104346229 A CN104346229 A CN 104346229A
- Authority
- CN
- China
- Prior art keywords
- message
- managing
- pointer
- read
- message queue
- 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.)
- Granted
Links
Landscapes
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种用于嵌入式操作系统进程间通讯优化的装置及方法,该方法包括:初始化管理进程,确定系统设备的运行信息;初始化特征信息结构体及设备;创建实时内存库;创建通道进程消息共享内存空间,管理进程消息共享内存空间,通道进程消息共享内存空间的信号量,管理进程消息共享内存空间的信号量;将通道进程消息共享内存空间与通道进程特征消息结构体进行映射;根据运行信息建立通道进程,将管理消息传递到相应的通道进程;进入管理进程,设定管理消息信号量,读取小于等于管理消息信号量的管理消息。本发明解决了嵌入式操作系统在多进程间通讯情况下,利用共享内存建立的消息传递机制所存在的无用消息传递、消息处理效率不高的问题。
Description
技术领域
本发明属于计算机通讯领域,特别地,涉及一种用于嵌入式操作系统进程间通讯优化的装置及方法。
背景技术
传统嵌入式计算机通讯技术可以采用管道、FIFO、消息队列、域间套接字及共享内存方式,由于共享内存在操作方面有简单灵活和效率高的特点,在嵌入式计算机进程间通讯大量采用。通过共享方式可以实现嵌入式计算机的实时库管理、进程间通讯队列等操作。利用共享内存的消息机制,可以解决嵌入式计算机作为通讯管理机时通讯接口间相互转换的工作,尤其在低速接口与高速接口相互转换的过程。
在多进程,尤其是20到30个进程访问共享内存的情况下,如何使消息能够更快的传递,成为一个亟待解决的课题。目前,嵌入式通讯设备一般采用由一个进程,一般是高速通道进程建立共享内存空间进行消息通讯并进行管理,其余通道利用共享内存访问机制对内存访问并实现读取和写入工作。为保证信息交互过程的同步和数据可靠,一般通过信号量实现共享内存的访问互斥,防止共享内存的读写同步操作造成的数据错误。由于操作模式相对简单,现有技术一般适用于一对一或者多对一的通讯场合,对于多对多的通讯场合,由于进程间消息数量较大,造成很多本进程不需要的信息也被传递,从而无用操作太多,造成传送效率低下。
另外,现有技术也有一个显著缺点:即没有考虑多进程通讯在数据同步方面的时间损耗,由于每一个进程在访问共享内存时,都需要经历一个等待、锁定、操作、释放的过程,原本效率较高的共享内存消息机制在多通道通讯模式下,效率下降较大,在突然出现网络风暴的过程中,通讯效率会急剧下降。
发明内容
有鉴于此,本发明的主要目的在于提供一种用于嵌入式操作系统进程间通讯优化的装置及方法,其能够解决嵌入式操作系统多进程间通讯情况下,利用共享内存建立的消息传递机制所存在的无用消息传递、消息处理效率不高的问题。
为达到上述目的,本发明的技术方案是这样实现的:一种用于嵌入式操作系统进程间通讯优化的装置,其特征在于,该装置包括消息队列共享内存单元,所述消息队列共享内存单元由管理进程消息内存空间和通道进程消息内存空间两个独立的部分组成;其中,
所述管理进程消息内存空间,用于管理的消息队列信息,建立独立的索引ID,内存读、写指针,采用独立的信号量控制同步;
所述通道进程消息内存空间,用于通讯进程的消息队列,所有通讯进程采用一个公用的信号量来控制同步,每一个通讯进程具有一个独立的具备特征值的消息队列;
所述各消息队列均采用相同的消息结构体,所述消息结构体包括三个部分:读寄存器序号、写寄存器序号、消息队列空间。
本发明的另一目的还在于提供一种用于嵌入式操作系统进程间通讯优化的方法,其特征在于,该方法包括:
初始化管理进程,读取系统设备相应的配置文件,确定系统设备的运行信息,所述运行信息包括接口数量信息,和/或设备数量信息,对于每一个运行信息,采用独立的特征值建立特征消息结构体对所述运行信息进行存储,所述特征消息结构体包括:读寄存器序号、写寄存器序号、消息队列空间;
初始化所述特征信息结构体,以及所述系统设备;
创建实时内存库,所述实时内存库包括参数共享内存,和/或实时数据库共享内存;
创建通道进程消息共享内存空间,所述通道进程消息共享内存空间包括:通道进程特征消息结构体,通道消息队列相关的指针;所述通道进程特征消息结构体对应通道特征值,所述通道进程特征消息结构体包括:通道消息读寄存器序号、通道消息写寄存器序号、通道消息队列空间;所述通道消息队列空间包括多个通道消息队列,所述每一个通道消息队列独立;
创建管理进程消息共享内存空间,所述管理进程消息共享内存空间包括:管理进程特征消息结构体,管理消息队列相关的指针;所述管理进程特征消息结构体对应管理特征值,所述管理进程特征消息结构体包括:管理消息读寄存器序号、管理消息写寄存器序号、管理消息队列空间;所述管理消息队列空间包括多个管理消息队列,所述每一个管理消息队列独立;
创建通道进程消息共享内存空间的信号量,所述每个通道消息队列采用同一通道进程消息共享内存空间的信号量进行读、写操作互斥;
创建管理进程消息共享内存空间的信号量,所述每个管理消息队列采用同一管理进程消息共享内存空间的信号量进行读、写操作互斥;
将所述通道进程消息共享内存空间与所述通道进程特征消息结构体进行映射,采用唯一标识对相应的通道消息队列进行操作;
根据所述运行信息建立通道进程,将管理消息传递到相应的通道进程;
进入管理进程,设定管理消息信号量,按照FIFO的方式读取小于等于所述管理消息信号量的管理消息;
检测所述管理消息的剩余信号量是否为零,如果是,结束管理进程;否则,对于管理进程自身操作的消息,继续读取剩余信号量的管理消息,对于其它进程的消息,根据所述映射,将所述其它进程的消息写入通讯进程相应标识的通道消息队列,直至完成所有消息的读取操作。
进一步地,所述通道消息读指针和所述通道消息写指针采用循环指针,在所述通道消息写指针加一后如果与所述通道消息读指针重叠,则舍弃原有通道消息读指针数据,将所述通道消息读指针加一;
所述管理消息读指针和所述管理消息写指针采用循环指针,在所述管理消息写指针加一后如果与所述管理消息读指针重叠,则舍弃原有管理消息读指针数据,将所述管理消息读指针加一。
进一步地,所述根据运行信息建立通道进程,将管理消息传递到相应的通道进程的步骤包括:初始化通道进程参数,同时将所述标识信息存储到所述通道消息写寄存器。
进一步地,还包括获取所述通道消息队列相关的指针和信号量指针。
进一步地,所述通道消息队列相关的指针包括通道消息写指针,和/或通道消息读指针。
进一步地,还包括建立通道进程消息共享内存指针映射,实现对所述通道消息队列进行读操作。
进一步地,所述读操作与所述通道特征值相匹配。
进一步地,还包括建立管理进程消息共享内存指针映射,实现对所述管理消息队列进行写操作。
作为本发明的另一目的,还在与提供一种用于嵌入式操作系统进程间通讯优化的方法,其特征在于,该方法包括:
初始化管理进程,读取系统设备相应的配置文件,确定系统设备的运行信息,所述运行信息包括接口数量信息,和/或设备数量信息,对于每一个运行信息,采用独立的特征值建立特征消息结构体对所述运行信息进行存储,所述特征消息结构体包括:读寄存器序号、写寄存器序号、消息队列空间;所述消息队列空间包括多个消息队列,所述每一个消息队列独立;根据所述管理进程的数量建立所述消息队列的数量;
初始化所述特征信息结构体,以及所述系统设备;
创建实时内存库,所述实时内存库包括参数共享内存,和/或实时数据库共享内存;
创建通道进程消息共享内存空间,所述通道进程消息共享内存空间包括:通道进程特征消息结构体,通道消息队列相关的指针;所述通道进程特征消息结构体对应通道特征值,所述通道进程特征消息结构体包括:通道消息读寄存器序号、通道消息写寄存器序号、通道消息队列空间;所述通道消息队列空间包括多个通道消息队列,所述每一个通道消息队列独立;
创建管理进程消息共享内存空间,所述管理进程消息共享内存空间包括:管理进程特征消息结构体,管理消息队列相关的指针;所述管理进程特征消息结构体对应管理特征值,所述管理进程特征消息结构体包括:管理消息读寄存器序号、管理消息写寄存器序号、管理消息队列空间;所述管理消息队列空间包括多个管理消息队列,所述每一个管理消息队列独立;
创建通道进程消息共享内存空间的信号量,所述每个通道消息队列采用同一通道进程消息共享内存空间的信号量进行读、写操作互斥;
创建管理进程消息共享内存空间的信号量,所述每个管理消息队列采用同一管理进程消息共享内存空间的信号量进行读、写操作互斥;
将所述通道进程消息共享内存空间与所述通道进程特征消息结构体进行映射,采用唯一标识对相应的通道消息队列进行操作;
根据所述运行信息建立通道进程,将管理消息传递到相应的通道进程;
进入管理进程,设定管理消息信号量,按照FIFO的方式读取小于等于所述管理消息信号量的管理消息;
检测所述管理消息的剩余信号量是否为零,如果是,结束管理进程;否则,对于管理进程自身操作的消息,继续读取剩余信号量的管理消息,对于其它进程的消息,根据所述映射,将所述其它进程的消息写入通讯进程相应标识的通道消息队列,直至完成所有消息的读取操作。
本发明相对于现有技术具有以下实质性特点和进步:
第一,通过建立不同的消息队列,建立一种单向的消息读取和写入模式,每一个进程间的通讯均是采用写入管理消息队列,读取自身特征值标示的消息队列方式,通过以上步骤,可以创建一种适用于较多进程下的共享内存消息通讯方法,满足嵌入式系统在多进程通讯情况下对通讯效率的要求。
第二,管理进程采用读取管理消息队列,写入相应特征值通讯进程的方式进行操作。通过此种操作方式,可以有序化消息读取、写入,减少公共信息处理次数,减少非必要信息写入、读取操作次数。同时在管理进程处理过程中,可以便捷的增加管理消息内容,便于进程运行状态监视和控制。
第三,在消息读取过程中,采用一次操作读取多个消息的方式,可以减少对消息队列的操作次数,简易类共享内存建立的复杂程度,减少了各进程在消息处理过程中的排队时间,也可以与异步通讯方式结合,将高速的中央处理器和低速通讯设备有序的结合,综合提高设备通讯效率。
第四,应用于嵌入式计算机中,能够建立更加有效的消息传递机制,配合进程间消息处理与通讯接口之间的快速联系,通过使用该方法,可以降低消息传递过程中出现的重复问题,提高消息处理效率,将快速的中央处理器(CPU)与外围低速通讯器件合理的匹配,提高设备整体性能。
附图说明
图1为本发明的消息队列在共享内存中的结构图;
图2为本发明的用于嵌入式操作系统进程间通讯优化的方法流程示意图。
附图标记示意:
1、管理进程消息内存空间,1.1、管理进程读写指针,1.2、管理进程消息块,
2、通道进程消息内存空间,2.1、特征值消息队列空间,
2.1.1、特征值消息对列空间读写指针,2.1.2、特征值消息队列消息块
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
第一实施例
请参照图1,本发明的消息队列共享内存由两个独立的部分组成,一部分用于管理的消息队列信息,建立独立的索引ID,内存读、写指针,采用独立的信号量控制同步;另外一部分用于通讯进程的消息队列,所有通讯进程采用一个公用的信号量来控制同步,每一个进程具有一个独立的具备特征值的消息队列,消息便于消息分类管理,提高访问效率,消息队列的读写指针便于区分消息的是否已被处理。
考虑到消息处理方式的一致性,在管理消息队列及各个进程消息队列均采用相同的消息结构体,结构体中需要具备一些关键标志信息,用于信息处理操作。以下是消息机构体中部分关键内容:
由于采用自定义消息队列模式,可以灵活处理各种需要处理的信息,在实际操作中更有必要。
从消息结构可以看出,通过原地址和目的地址就可以实现信息交互过程中信息流动的唯一性,在特殊场合如果需要某个信息广播发送的,可以采用特殊目的地址字符,发送需要。
对于管理进程的消息队列来说,管理进程负责消息队列的读取,其他进程负责消息队列的写入,此种方案可以有效解决消息管理问题,通过对每一个消息的源地址和目的地址的判断,判定消息方向,如果是管理信息方面,直接调用相应函数处理;如果是其他进程消息,则根据目的地址直接发送到相应的进程,从而满足信息交互需求。
所有通讯队列进程采取读通道进程消息,写管理进程消息队列的方式,可以使程序同一规范的编制,便于整个系统的一致性。
共享内存中消息队列的建立通过以下方式进行:
首先声明一个消息队列结构体,本说明仅以管理进程消息队列为例:
结构体包括三个部分,读寄存器序号、写寄存器序号、消息队列空间。
在消息队列初始化过程中,一次性分配相应的内存空间,并初始化寄存器序号,从而完成共享内存中的消息队列创建,具体方式如下:
通过以上方式,可以将结构体创建并结构化,从而便于后续数据的访问。
对于消息队列访问来说,信号量是数据访问安全性、同步性非常有必要的。由于进程较多,如果不进行信号量锁定处理,则有可能造成数据在读取的过程中造成数据写入覆盖,从而造成坏数据。所以在处理的时候,信号量必须与消息读写同步处理。由于信息锁定、解锁需要时间,所以客观上造成消息访问效率降低。为了提高消息的访问效率,根据操作特点,可以尽量降低共享内存消息队列的读写次数。根据这种情况,在实际处理的时候采取读取多个消息的方式处理,实现一个快速处理、慢速同步通讯的协调方案。
消息读取机制具体方案如下:
通过以上的消息读取机制,可以减少消息读取次数,提高信息处理效率。
第二实施例
请参照图2,本发明的用于嵌入式操作系统进程间通讯优化的方法包括:
步骤1:初始化管理进程,读取该设备相应的配置文件,确定系统接口数量、设备数量等多种运行信息。对于每一个接口信息,均需要一个相对独立的特征值,建立专门的结构体对信息进行存储;
步骤2:系统设备初始化,包括系统时间、看门狗等;
步骤3:创建共享内存区间,包括:参数共享内存、实时数据库共享内存等设备运行必须操作;
步骤4:按照系统最大接口资源建立通道通讯消息共享内存空间并赋值给相应指针,包括消息结构体,通道消息写指针、读指针等内容,读写指针采用循环指针,在写指针加一后如果与读指针重叠,则舍弃原有读指针数据,读指针加一。每一个通道消息队列独立,采用同一信号量进行读、写操作互斥;
步骤5:按照管理进程结构体建立管理进程共享内存空间,建立独立的读写操作指针,指针操作方式等同于通道指针,有独立的管理进程信号量进行读、写操作互斥;
步骤6:将通道信息共享内存与之前的特征值结构体进行映射,在后续应用中采用唯一标示对相应的消息队列进行操作;
步骤7:根据配置信息建立通道进程,将管理信息传递到相应的进程;
步骤7.1:根据通道配置信息初始化通道进程参数,同时将唯一标示信息存储到专用寄存器;
步骤7.2:获取通道消息队列相关的指针和信号量指针,用于后续消息读取操作;
步骤7.3:建立管理进程消息队列指针和信号量指针,用于通道进程消息写操作;
步骤7.4:采用多个读取的方式对通道消息队列进行读操作,读取过程中要与通道特征值匹配,只读取该特征值下的消息;
步骤7.5:进程处理过程中出现的消息,写入管理进程消息队列;
步骤8:进入设备运行循环系统;
步骤9:锁定消息信号量,采用FIFO方式一次性读取多个消息信息,每次读取的信息数量不大于一个固定值;
步骤10:根据信息读取返回数量循环处理每一个消息;对于管理进程自身操作的信息,直接操作后进入下一条处理循环;对于其他进程的信息,有管理进程将消息根据映射信息写入相应的消息队列;
步骤11:完成所有读取信息操作,进入下一次读取循环。
通过以上步骤,可以创建一种适用于较多进程下的共享内存消息通讯方法,满足嵌入式系统在多进程通讯情况下对通讯效率的要求。
第三实施例
作为另一种替代实施例,本实施例的用于嵌入式操作系统进程间通讯优化的方法包括:
步骤1:初始化管理进程,读取系统设备相应的配置文件,确定系统设备的运行信息,所述运行信息包括接口数量信息,和/或设备数量信息,对于每一个运行信息,采用独立的特征值建立特征消息结构体对所述运行信息进行存储,所述特征消息结构体包括:读寄存器序号、写寄存器序号、消息队列空间;所述消息队列空间包括多个消息队列,所述每一个消息队列独立;根据所述管理进程的数量建立所述消息队列的数量;
步骤2:初始化所述特征信息结构体,以及系统设备初始化,包括系统时间、看门狗等;
步骤3:创建共享内存区间,包括:参数共享内存、实时数据库共享内存等设备运行必须操作;
步骤4:按照系统最大接口资源建立通道通讯消息共享内存空间并赋值给相应指针,包括消息结构体,通道消息写指针、读指针等内容,读写指针采用循环指针,在写指针加一后如果与读指针重叠,则舍弃原有读指针数据,读指针加一。每一个通道消息队列独立,采用同一信号量进行读、写操作互斥;
步骤5:按照管理进程结构体建立管理进程共享内存空间,建立独立的读写操作指针,指针操作方式等同于通道指针,有独立的管理进程信号量进行读、写操作互斥;
步骤6:将通道信息共享内存与之前的特征值结构体进行映射,在后续应用中采用唯一标示对相应的消息队列进行操作;
步骤7:根据配置信息建立通道进程,将管理信息传递到相应的进程;
步骤7.1:根据通道配置信息初始化通道进程参数,同时将唯一标示信息存储到专用寄存器;
步骤7.2:获取通道消息队列相关的指针和信号量指针,用于后续消息读取操作;
步骤7.3:建立管理进程消息队列指针和信号量指针,用于通道进程消息写操作;
步骤7.4:采用多个读取的方式对通道消息队列进行读操作,读取过程中要与通道特征值匹配,只读取该特征值下的消息;
步骤7.5:进程处理过程中出现的消息,写入管理进程消息队列;
步骤8:进入设备运行循环系统;
步骤9:锁定消息信号量,采用FIFO方式一次性读取多个消息信息,每次读取的信息数量不大于一个固定值;
步骤10:根据信息读取返回数量循环处理每一个消息;对于管理进程自身操作的信息,直接操作后进入下一条处理循环;对于其他进程的信息,有管理进程将消息根据映射信息写入相应的消息队列;
步骤11:完成所有读取信息操作,进入下一次读取循环。
本实施例根据进程数量建立消息队列数量并初始化,从而降低对系统内存的需求。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (10)
1.一种用于嵌入式操作系统进程间通讯优化的装置,其特征在于,该装置包括消息队列共享内存单元,所述消息队列共享内存单元由管理进程消息内存空间和通道进程消息内存空间两个独立的部分组成;其中,
所述管理进程消息内存空间,用于管理的消息队列信息,建立独立的索引ID,内存读、写指针,采用独立的信号量控制同步;
所述通道进程消息内存空间,用于通讯进程的消息队列,所有通讯进程采用一个公用的信号量来控制同步,每一个通讯进程具有一个独立的具备特征值的消息队列;
所述各消息队列均采用相同的消息结构体,所述消息结构体包括三个部分:读寄存器序号、写寄存器序号、消息队列空间。
2.一种用于嵌入式操作系统进程间通讯优化的方法,其特征在于,该方法包括:
初始化管理进程,读取系统设备相应的配置文件,确定系统设备的运行信息,所述运行信息包括接口数量信息,和/或设备数量信息,对于每一个运行信息,采用独立的特征值建立特征消息结构体对所述运行信息进行存储,所述特征消息结构体包括:读寄存器序号、写寄存器序号、消息队列空间;
初始化所述特征信息结构体,以及所述系统设备;
创建实时内存库,所述实时内存库包括参数共享内存,和/或实时数据库共享内存;
创建通道进程消息共享内存空间,所述通道进程消息共享内存空间包括:通道进程特征消息结构体,通道消息队列相关的指针;所述通道进程特征消息结构体对应通道特征值,所述通道进程特征消息结构体包括:通道消息读寄存器序号、通道消息写寄存器序号、通道消息队列空间;所述通道消息队列空间包括多个通道消息队列,所述每一个通道消息队列独立;
创建管理进程消息共享内存空间,所述管理进程消息共享内存空间包括:管理进程特征消息结构体,管理消息队列相关的指针;所述管理进程特征消息结构体对应管理特征值,所述管理进程特征消息结构体包括:管理消息读寄存器序号、管理消息写寄存器序号、管理消息队列空间;所述管理消息队列空间包括多个管理消息队列,所述每一个管理消息队列独立;
创建通道进程消息共享内存空间的信号量,所述每个通道消息队列采用同一通道进程消息共享内存空间的信号量进行读、写操作互斥;
创建管理进程消息共享内存空间的信号量,所述每个管理消息队列采用同一管理进程消息共享内存空间的信号量进行读、写操作互斥;
将所述通道进程消息共享内存空间与所述通道进程特征消息结构体进行映射,采用唯一标识对相应的通道消息队列进行操作;
根据所述运行信息建立通道进程,将管理消息传递到相应的通道进程;
进入管理进程,设定管理消息信号量,按照FIFO的方式读取小于等于所述管理消息信号量的管理消息;
检测所述管理消息的剩余信号量是否为零,如果是,结束管理进程;否则,对于管理进程自身操作的消息,继续读取剩余信号量的管理消息,对于其它进程的消息,根据所述映射,将所述其它进程的消息写入通讯进程相应标识的通道消息队列,直至完成所有消息的读取操作。
3.如权利要求2所述的用于嵌入式操作系统进程间通讯优化的方法,其特征在于,所述通道消息读指针和所述通道消息写指针采用循环指针,在所述通道消息写指针加一后如果与所述通道消息读指针重叠,则舍弃原有通道消息读指针数据,将所述通道消息读指针加一;
所述管理消息读指针和所述管理消息写指针采用循环指针,在所述管理消息写指针加一后如果与所述管理消息读指针重叠,则舍弃原有管理消息读指针数据,将所述管理消息读指针加一。
4.如权利要求3所述的用于嵌入式操作系统进程间通讯优化的方法,其特征在于,所述根据运行信息建立通道进程,将管理消息传递到相应的通道进程的步骤包括:初始化通道进程参数,同时将所述标识信息存储到所述通道消息写寄存器。
5.如权利要求4所述的用于嵌入式操作系统进程间通讯优化的方法,其特征在于,还包括获取所述通道消息队列相关的指针和信号量指针。
6.如权利要求5所述的用于嵌入式操作系统进程间通讯优化的方法,其特征在于,所述通道消息队列相关的指针包括通道消息写指针,和/或通道消息读指针。
7.如权利要求6所述的用于嵌入式操作系统进程间通讯优化的方法,其特征在于,还包括建立通道进程消息共享内存指针映射,实现对所述通道消息队列进行读操作。
8.如权利要求7所述的用于嵌入式操作系统进程间通讯优化的方法,其特征在于,所述读操作与所述通道特征值相匹配。
9.如权利要求8所述的用于嵌入式操作系统进程间通讯优化的方法,其特征在于,还包括建立管理进程消息共享内存指针映射,实现对所述管理消息队列进行写操作。
10.一种用于嵌入式操作系统进程间通讯优化的方法,其特征在于,该方法包括:
初始化管理进程,读取系统设备相应的配置文件,确定系统设备的运行信息,所述运行信息包括接口数量信息,和/或设备数量信息,对于每一个运行信息,采用独立的特征值建立特征消息结构体对所述运行信息进行存储,所述特征消息结构体包括:读寄存器序号、写寄存器序号、消息队列空间;所述消息队列空间包括多个消息队列,所述每一个消息队列独立;根据所述管理进程的数量建立所述消息队列的数量;
初始化所述特征信息结构体,以及所述系统设备;
创建实时内存库,所述实时内存库包括参数共享内存,和/或实时数据库共享内存;
创建通道进程消息共享内存空间,所述通道进程消息共享内存空间包括:通道进程特征消息结构体,通道消息队列相关的指针;所述通道进程特征消息结构体对应通道特征值,所述通道进程特征消息结构体包括:通道消息读寄存器序号、通道消息写寄存器序号、通道消息队列空间;所述通道消息队列空间包括多个通道消息队列,所述每一个通道消息队列独立;
创建管理进程消息共享内存空间,所述管理进程消息共享内存空间包括:管理进程特征消息结构体,管理消息队列相关的指针;所述管理进程特征消息结构体对应管理特征值,所述管理进程特征消息结构体包括:管理消息读寄存器序号、管理消息写寄存器序号、管理消息队列空间;所述管理消息队列空间包括多个管理消息队列,所述每一个管理消息队列独立;
创建通道进程消息共享内存空间的信号量,所述每个通道消息队列采用同一通道进程消息共享内存空间的信号量进行读、写操作互斥;
创建管理进程消息共享内存空间的信号量,所述每个管理消息队列采用同一管理进程消息共享内存空间的信号量进行读、写操作互斥;
将所述通道进程消息共享内存空间与所述通道进程特征消息结构体进行映射,采用唯一标识对相应的通道消息队列进行操作;
根据所述运行信息建立通道进程,将管理消息传递到相应的通道进程;
进入管理进程,设定管理消息信号量,按照FIFO的方式读取小于等于所述管理消息信号量的管理消息;
检测所述管理消息的剩余信号量是否为零,如果是,结束管理进程;否则,对于管理进程自身操作的消息,继续读取剩余信号量的管理消息,对于其它进程的消息,根据所述映射,将所述其它进程的消息写入通讯进程相应标识的通道消息队列,直至完成所有消息的读取操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410646274.8A CN104346229B (zh) | 2014-11-14 | 2014-11-14 | 一种用于嵌入式操作系统进程间通讯优化的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410646274.8A CN104346229B (zh) | 2014-11-14 | 2014-11-14 | 一种用于嵌入式操作系统进程间通讯优化的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104346229A true CN104346229A (zh) | 2015-02-11 |
CN104346229B CN104346229B (zh) | 2018-06-05 |
Family
ID=52501912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410646274.8A Active CN104346229B (zh) | 2014-11-14 | 2014-11-14 | 一种用于嵌入式操作系统进程间通讯优化的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104346229B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106338931A (zh) * | 2015-07-06 | 2017-01-18 | 天津九洲云物联科技有限公司 | 中控信息调度算法 |
CN108171862A (zh) * | 2018-01-08 | 2018-06-15 | 北京值得买科技股份有限公司 | 一种发号方法及发号器 |
CN108205474A (zh) * | 2017-08-23 | 2018-06-26 | 珠海市魅族科技有限公司 | 内存管理方法、终端设备、计算机装置以及可读存储介质 |
CN109669788A (zh) * | 2018-12-10 | 2019-04-23 | 西安微电子技术研究所 | 面向直接内存访问互连通信的多核芯片的mpi实现方法 |
CN109756704A (zh) * | 2018-11-30 | 2019-05-14 | 安徽清新互联信息科技有限公司 | 一种嵌入式音视频监控系统的进程间通信方法及系统 |
CN110069438A (zh) * | 2018-01-22 | 2019-07-30 | 普天信息技术有限公司 | 一种异构器件内存通信的方法 |
CN110737536A (zh) * | 2019-09-19 | 2020-01-31 | 亚信创新技术(南京)有限公司 | 一种基于共享内存的消息存储方法和消息读取方法 |
CN110764935A (zh) * | 2019-10-28 | 2020-02-07 | 天津津航计算技术研究所 | 一种基于实时操作系统的任务间消息高效传递方法 |
CN110928700A (zh) * | 2018-09-20 | 2020-03-27 | 北京君正集成电路股份有限公司 | 多进程通讯方法和装置 |
CN110928702A (zh) * | 2018-09-20 | 2020-03-27 | 北京君正集成电路股份有限公司 | 多进程消息通讯系统 |
CN110928701A (zh) * | 2018-09-20 | 2020-03-27 | 北京君正集成电路股份有限公司 | 通讯注册方法和装置 |
CN112114947A (zh) * | 2020-09-17 | 2020-12-22 | 石家庄科林电气股份有限公司 | 一种基于边缘计算网关的系统资源调度方法 |
CN112114983A (zh) * | 2020-09-14 | 2020-12-22 | 深圳花儿数据技术有限公司 | 一种基于共享内存的通信方法、装置和设备 |
CN112153117A (zh) * | 2020-09-07 | 2020-12-29 | 深圳创维-Rgb电子有限公司 | 一种图文数据传输方法、存储介质及终端 |
CN112181670A (zh) * | 2019-07-02 | 2021-01-05 | 西安诺瓦星云科技股份有限公司 | 进程间通讯方法及装置和Linux设备 |
CN112231266A (zh) * | 2020-10-15 | 2021-01-15 | 天津津航计算技术研究所 | 一种基于查找表的arinc 429总线控制方法 |
CN112434045A (zh) * | 2020-12-10 | 2021-03-02 | 深圳市亿联无限科技有限公司 | 一种嵌入式系统进程间大数据通信的方法及装置 |
CN114465952A (zh) * | 2022-01-20 | 2022-05-10 | 绿盟科技集团股份有限公司 | 一种配置参数的管理方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030229724A1 (en) * | 2002-06-10 | 2003-12-11 | Arajs Roland L. | Systems and methods for synchronzing processes |
CN101158871A (zh) * | 2007-11-12 | 2008-04-09 | 浙江大学 | 集散控制系统操作员站内存数据库结构存储的同步方法 |
CN101174225A (zh) * | 2006-11-02 | 2008-05-07 | 华为技术有限公司 | 一种实现消息通信的装置及方法 |
US20110191627A1 (en) * | 2010-01-29 | 2011-08-04 | Maarten Koning | System And Method for Handling a Failover Event |
CN102567275A (zh) * | 2010-12-08 | 2012-07-11 | 中国科学院声学研究所 | 一种多核处理器上多个操作系统间内存访问的方法及系统 |
CN102647297A (zh) * | 2012-04-18 | 2012-08-22 | 中兴通讯股份有限公司南京分公司 | 单板的性能告警管理方法及装置 |
-
2014
- 2014-11-14 CN CN201410646274.8A patent/CN104346229B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030229724A1 (en) * | 2002-06-10 | 2003-12-11 | Arajs Roland L. | Systems and methods for synchronzing processes |
CN101174225A (zh) * | 2006-11-02 | 2008-05-07 | 华为技术有限公司 | 一种实现消息通信的装置及方法 |
CN101158871A (zh) * | 2007-11-12 | 2008-04-09 | 浙江大学 | 集散控制系统操作员站内存数据库结构存储的同步方法 |
US20110191627A1 (en) * | 2010-01-29 | 2011-08-04 | Maarten Koning | System And Method for Handling a Failover Event |
CN102567275A (zh) * | 2010-12-08 | 2012-07-11 | 中国科学院声学研究所 | 一种多核处理器上多个操作系统间内存访问的方法及系统 |
CN102647297A (zh) * | 2012-04-18 | 2012-08-22 | 中兴通讯股份有限公司南京分公司 | 单板的性能告警管理方法及装置 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106338931A (zh) * | 2015-07-06 | 2017-01-18 | 天津九洲云物联科技有限公司 | 中控信息调度算法 |
CN108205474A (zh) * | 2017-08-23 | 2018-06-26 | 珠海市魅族科技有限公司 | 内存管理方法、终端设备、计算机装置以及可读存储介质 |
CN108205474B (zh) * | 2017-08-23 | 2022-03-04 | 珠海市魅族科技有限公司 | 内存管理方法、终端设备、计算机装置以及可读存储介质 |
CN108171862A (zh) * | 2018-01-08 | 2018-06-15 | 北京值得买科技股份有限公司 | 一种发号方法及发号器 |
CN108171862B (zh) * | 2018-01-08 | 2021-03-09 | 北京值得买科技股份有限公司 | 一种发号方法及发号器 |
CN110069438A (zh) * | 2018-01-22 | 2019-07-30 | 普天信息技术有限公司 | 一种异构器件内存通信的方法 |
CN110928702A (zh) * | 2018-09-20 | 2020-03-27 | 北京君正集成电路股份有限公司 | 多进程消息通讯系统 |
CN110928702B (zh) * | 2018-09-20 | 2023-03-21 | 北京君正集成电路股份有限公司 | 多进程消息通讯系统 |
CN110928700A (zh) * | 2018-09-20 | 2020-03-27 | 北京君正集成电路股份有限公司 | 多进程通讯方法和装置 |
CN110928700B (zh) * | 2018-09-20 | 2023-04-07 | 北京君正集成电路股份有限公司 | 多进程通讯方法和装置 |
CN110928701A (zh) * | 2018-09-20 | 2020-03-27 | 北京君正集成电路股份有限公司 | 通讯注册方法和装置 |
CN109756704A (zh) * | 2018-11-30 | 2019-05-14 | 安徽清新互联信息科技有限公司 | 一种嵌入式音视频监控系统的进程间通信方法及系统 |
CN109669788A (zh) * | 2018-12-10 | 2019-04-23 | 西安微电子技术研究所 | 面向直接内存访问互连通信的多核芯片的mpi实现方法 |
CN112181670A (zh) * | 2019-07-02 | 2021-01-05 | 西安诺瓦星云科技股份有限公司 | 进程间通讯方法及装置和Linux设备 |
CN112181670B (zh) * | 2019-07-02 | 2023-04-11 | 西安诺瓦星云科技股份有限公司 | 进程间通讯方法及装置和Linux设备 |
CN110737536B (zh) * | 2019-09-19 | 2024-03-12 | 亚信创新技术(南京)有限公司 | 一种基于共享内存的消息存储方法和消息读取方法 |
CN110737536A (zh) * | 2019-09-19 | 2020-01-31 | 亚信创新技术(南京)有限公司 | 一种基于共享内存的消息存储方法和消息读取方法 |
CN110764935B (zh) * | 2019-10-28 | 2023-07-14 | 天津津航计算技术研究所 | 一种基于实时操作系统的任务间消息高效传递方法 |
CN110764935A (zh) * | 2019-10-28 | 2020-02-07 | 天津津航计算技术研究所 | 一种基于实时操作系统的任务间消息高效传递方法 |
CN112153117B (zh) * | 2020-09-07 | 2023-12-29 | 深圳创维-Rgb电子有限公司 | 一种图文数据传输方法、存储介质及终端 |
CN112153117A (zh) * | 2020-09-07 | 2020-12-29 | 深圳创维-Rgb电子有限公司 | 一种图文数据传输方法、存储介质及终端 |
CN112114983A (zh) * | 2020-09-14 | 2020-12-22 | 深圳花儿数据技术有限公司 | 一种基于共享内存的通信方法、装置和设备 |
CN112114983B (zh) * | 2020-09-14 | 2022-04-19 | 深圳花儿数据技术有限公司 | 一种基于共享内存的通信方法、装置和设备 |
CN112114947B (zh) * | 2020-09-17 | 2024-02-02 | 石家庄科林电气股份有限公司 | 一种基于边缘计算网关的系统资源调度方法 |
CN112114947A (zh) * | 2020-09-17 | 2020-12-22 | 石家庄科林电气股份有限公司 | 一种基于边缘计算网关的系统资源调度方法 |
CN112231266B (zh) * | 2020-10-15 | 2023-03-24 | 天津津航计算技术研究所 | 一种基于查找表的arinc 429总线控制方法 |
CN112231266A (zh) * | 2020-10-15 | 2021-01-15 | 天津津航计算技术研究所 | 一种基于查找表的arinc 429总线控制方法 |
CN112434045A (zh) * | 2020-12-10 | 2021-03-02 | 深圳市亿联无限科技有限公司 | 一种嵌入式系统进程间大数据通信的方法及装置 |
CN114465952B (zh) * | 2022-01-20 | 2023-12-01 | 绿盟科技集团股份有限公司 | 一种配置参数的管理方法、装置及电子设备 |
CN114465952A (zh) * | 2022-01-20 | 2022-05-10 | 绿盟科技集团股份有限公司 | 一种配置参数的管理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104346229B (zh) | 2018-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104346229A (zh) | 一种用于嵌入式操作系统进程间通讯优化的处理方法 | |
CN109983449B (zh) | 数据处理的方法和存储系统 | |
CN102724035B (zh) | 一种加密卡的加解密方法 | |
CN103544319B (zh) | 一种多租户共享数据库的方法和多租户数据库即服务系统 | |
CN111427707B (zh) | 一种基于共享内存池的ipc通信方法 | |
US20110265098A1 (en) | Message Passing with Queues and Channels | |
CN101150487A (zh) | 一种零拷贝网络报文发送方法 | |
CN104915151A (zh) | 多虚拟机系统中一种主动共享的内存超量分配方法 | |
CN105511954A (zh) | 一种报文处理方法及装置 | |
CN102693162A (zh) | 基于共享内存和核间中断的多核平台上多个虚拟机之间进程通信方法 | |
US9348661B2 (en) | Assigning a unique identifier to a communicator | |
CN105677597A (zh) | 数据写入方法及装置 | |
CN104123194A (zh) | 内核态与用户态的通信结构及通信方法 | |
CN101150488A (zh) | 一种零拷贝网络报文接收方法 | |
CN107209716A (zh) | 内存管理装置和方法 | |
US20230367637A1 (en) | Shared memory management method and device | |
US20130219393A1 (en) | Zoning data to a virtual machine | |
US9055078B2 (en) | Token-based flow control of messages in a parallel computer | |
CN104915302B (zh) | 数据传输处理方法和数据传输器 | |
CN108470008B (zh) | 串口数据读写方法、装置、计算机设备和存储介质 | |
WO2022228485A1 (zh) | 一种数据传输方法、数据处理方法及相关产品 | |
US20140149528A1 (en) | Mpi communication of gpu buffers | |
CN103455438A (zh) | 一种内存管理方法及设备 | |
CN114579319B (zh) | 显存管理方法、显存管理模块、soc及电子设备 | |
CN204390237U (zh) | 一种基于pci-e总线技术的加解密卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |