用于传输消息的方法和装置与流程

文档序号:13875840阅读:161来源:国知局
用于传输消息的方法和装置与流程

本申请涉及计算机技术领域,具体涉及信息传输技术领域,尤其涉及用于传输消息的方法和装置。



背景技术:

随着信息技术的快速发展,越来越多的设备实现了智能化控制。例如,车载智能大脑实现了无人驾驶车辆的智能化控制,车载智能大脑通过下达加速、减速、转弯等控制指令来控制无人驾驶车辆的行驶。在对设备进行智能化控制时需要传输种类众多的消息,其中有些消息必须优于其他消息率先做出响应,例如无人驾驶车辆在正常行驶过程中车辆前方突然出现一个行人,此时车载智能大脑会下发紧急刹车的指令,该指令需要立即被执行才能保障行人和车辆的安全。

现阶段,智能化控制系统可以采用套接头(socket)通信方式,通信过程中发送节点和接收节点通过向缓冲队列(bufferqueue)中读写消息实现消息的传输。然而,缓冲队列在消息的读写过程中采用fifo(firstinputfirstoutput,先进先出)机制,接收节点依次读取发送节点向队列中写入的消息,先发送的消息优先被接收节点读取。这种通信方式并没有针对消息的紧急程度进行区别处理,往往会给人类以及设备本身带来严重安全隐患。



技术实现要素:

本申请的目的在于提出一种改进的用于传输消息的方法和装置,来解决以上背景技术部分提到的技术问题。

第一方面,本申请提供了一种用于传输消息的方法,所述方法包括:将操作系统分配的共享内存区划分为用于存储不同优先级消息的多个内存块;对于所述多个内存块中的每个内存块,将该内存块划分为具有连续的序号的至少一个内存单元;根据待传输消息的优先级从所述多个内存块中确定出用于存储所述待传输消息的目标内存块;将所述待传输消息写入所述目标内存块的内存单元。

在一些实施例中,所述将所述待传输消息写入所述目标内存块的内存单元,包括:从所述目标内存块中确定当前未被写入的内存单元作为所述待传输消息的待写入内存单元;对所述待写入内存单元进行加锁操作之后,将所述待传输消息写入所述待写入内存单元;响应于所述待写入内存单元被写入结束,对所述待写入内存单元执行解锁操作,并通过广播发送写入结束的通知。

在一些实施例中,所述将操作系统分配的共享内存区划分为用于存储不同优先级消息的多个内存块,包括:将操作系统分配的共享内存区划分为普通优先级内存块和至少一个高优先级内存块,其中,消息的优先级包括普通优先级和不同级别的高优先级,高优先级的级别数与所述至少一个高优先级内存块的数量相对应,所述普通优先级内存块用于存储优先级为普通优先级的消息,各个高优先级内存块分别用于存储不同级别的高优先级消息。

在一些实施例中,当所述待传输消息的优先级为高优先级时,所述方法还包括:在将所述待传输消息写入所述目标内存块的内存单元之后,将该内存单元的标志位设置为真。

第二方面,本申请提供了一种用于传输消息的方法,所述方法包括:将操作系统的共享内存区的地址映射到自身的地址空间内,其中,所述共享内存区包括普通优先级内存块和至少一个高优先级内存块,所述普通优先级内存块和所述至少一个高优先级内存块都包括设置有连续序号的至少一个内存单元;响应于所述普通优先级内存块的一个内存单元消息被读取结束,查找所述至少一个高优先级内存块中是否有标志位为真的内存单元;如果有,则从标志位为真的内存单元读取消息,并在读取结束之后将标志位设置为假。

在一些实施例中,所述方法还包括:如果没有,则读取所述普通优先级内存块中被最后读取结束的内存单元的下一个内存单元存储的消息。

在一些实施例中,所述普通优先级内存块用于存储优先级为普通优先级的消息,所述至少一个高优先级内存块中的各个高优先级内存块分别用于存储不同级别的高优先级消息;以及所述查找所述至少一个高优先级内存块中是否有标志位为真的内存单元,包括:根据所存储消息的优先级从高到低的顺序依次查找所述至少一个高优先级内存块中的各个内存单元的标志位是否为真,其中,在各个高优先级内存块中查找时,按照内存单元序号依次查找。

第三方面,本申请提供了一种用于传输消息的装置,所述装置包括:第一划分模块,用于将操作系统分配的共享内存区划分为用于存储不同优先级消息的多个内存块;第二划分模块,用于对于所述多个内存块中的每个内存块,将该内存块划分为具有连续的序号的至少一个内存单元;确定模块,用于根据待传输消息的优先级从所述多个内存块中确定出用于存储所述待传输消息的目标内存块;写入模块,用于将所述待传输消息写入所述目标内存块的内存单元。

在一些实施例中,所述写入模块进一步用于:从所述目标内存块中确定当前未被写入的内存单元作为所述待传输消息的待写入内存单元;对所述待写入内存单元进行加锁操作之后,将所述待传输消息写入所述待写入内存单元;响应于所述待写入内存单元被写入结束,对所述待写入内存单元执行解锁操作,并通过广播发送写入结束的通知。

在一些实施例中,所述第一划分模块进一步用于:将操作系统分配的共享内存区划分为普通优先级内存块和至少一个高优先级内存块,其中,消息的优先级包括普通优先级和不同级别的高优先级,高优先级的级别数与所述至少一个高优先级内存块的数量相对应,所述普通优先级内存块用于存储优先级为普通优先级的消息,各个高优先级内存块分别用于存储不同级别的高优先级消息。

在一些实施例中,所述装置还包括:设置模块,用于当所述待传输消息的优先级为高优先级时,在将所述待传输消息写入所述目标内存块的内存单元之后,将该内存单元的标志位设置为真。

第四方面,本申请提供了一种用于传输消息的装置,所述装置包括:映射模块,用于将操作系统的共享内存区的地址映射到自身的地址空间内,其中,所述共享内存区包括普通优先级内存块和至少一个高优先级内存块,所述普通优先级内存块和所述至少一个高优先级内存块都包括设置有连续序号的至少一个内存单元;查找模块,用于响应于所述普通优先级内存块的一个内存单元消息被读取结束,查找所述至少一个高优先级内存块中是否有标志位为真的内存单元;第一读取模块,用于如果有,则从标志位为真的内存单元读取消息,并在读取结束之后将标志位设置为假。

在一些实施例中,所述装置还包括:第二读取模块,用于如果没有,则读取所述普通优先级内存块中被最后读取结束的内存单元的下一个内存单元存储的消息。

在一些实施例中,所述普通优先级内存块用于存储优先级为普通优先级的消息,所述至少一个高优先级内存块中的各个高优先级内存块分别用于存储不同级别的高优先级消息;以及所述查找模块进一步用于:根据所存储消息的优先级从高到低的顺序依次查找所述至少一个高优先级内存块中的各个内存单元的标志位是否为真,其中,在各个高优先级内存块中查找时,按照内存单元序号依次查找。

本申请提供的用于传输消息的方法,在发送消息时,首先将共享内存区划分为用于存储不同优先级消息的多个内存块,并将多个内存块中的每个内存块划分为具有连续的序号的至少一个内存单元,然后根据待传输消息的优先级从多个内存块中确定出用于存储待传输消息的目标内存块,最后将待传输消息写入目标内存块的内存单元;在读取消息时,首先将共享内存区的地址映射到自身的地址空间内,响应于普通优先级内存块的一个内存单元消息被读取结束,查找至少一个高优先级内存块中是否有标志位为真的内存单元,如果能够查找到,则从标志位为真的内存单元读取消息,并在读取结束之后将标志位设置为假,从而实现了根据消息的优先级传输消息,提高了智能化控制系统控制的安全性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是根据本申请的用于传输消息的方法的一个实施例的流程图;

图2是根据本申请的用于传输消息的方法的又一个实施例的流程图;

图3是根据本申请的用于传输消息的方法的一个应用场景的示意图;

图4是根据本申请的用于传输消息的装置的一个实施例的结构示意图;

图5是根据本申请的用于传输消息的装置的又一个实施例的结构示意图;

图6是适于用来实现本申请实施例的用于传输消息的装置的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了根据本申请的用于传输消息的方法的一个实施例的流程100。所述的用于传输消息的方法,包括以下步骤:

步骤101,将操作系统分配的共享内存区划分为用于存储不同优先级消息的多个内存块。

在本实施例中,将发送待传输消息的进程称为发送进程或发送节点,将读取传输的消息的进程称为接收进程或接收节点。发送进程向共享内存区中发送的消息可以是进程间可传输各种消息,例如可以是无人驾驶车辆行驶过程中车载智能大脑下发的控制指令。此外,发送进程向共享内存区中所发送的消息可以包括用于表明该消息优先级的字段。发送进程在得到操作系统分配的共享内存区之后,可以将共享内存区划分为用于存储不同优先级消息的多个内存块。例如,发送进程将要在共享内存区中存储包括4个不同级别优先级(例如分别为优先级零、一、二、三)的消息,则可以将共享内存区划分为4个内存块,分别用来存储优先级为零、一、二、三的消息。上述操作系统可以是各种操作系统,例如可以是机器人操作系统(robotoperatingsystem,ros)、linux操作系统、unix操作系统等等。共享内存区可以是指在多进程的操作系统中,可以被不同进程访问的内存。可以理解的是,上述共享内存区可以是发送进程向操作系统申请获得的。

在本实施例的一些可选的实现方式中,步骤101将操作系统分配的共享内存区划分为用于存储不同优先级消息的多个内存块,还可以如下进行:发送进程可以将操作系统分配的共享内存区划分为普通优先级内存块和至少一个高优先级内存块,其中,消息的优先级可以包括普通优先级和不同级别的高优先级,高优先级的级别数与上述至少一个高优先级内存块的数量相对应,上述普通优先级内存块用于存储优先级为普通优先级的消息,各个高优先级内存块分别用于存储不同级别的高优先级消息。例如,消息的优先级可以包括优先级零、一、二、三(按优先级从高到低的顺序排列),其中,优先级零、一、二为3个不同级别的高优先级,优先级三为普通优先级,则普通优先级内存块用于存储优先级为三的消息,3个高优先级内存块分别用于存储优先级为零、一、二的消息。

步骤102,对于多个内存块中的每个内存块,将该内存块划分为具有连续的序号的至少一个内存单元。

在本实施例中,对于步骤101划分得到的多个内存块中的每个内存块,发送进程可以将该内存块划分为具有连续的序号的至少一个内存单元。例如,发送进程可以根据发送消息的频率将每个内存块划分为具有连续的序号的至少一个内存单元,比如发送进程每秒发送1~10个优先级为零、一、二或三的消息,则将共享内存区划分为分别用于存储优先级为零、一、二和三的消息的内存块0、内存块1、内存块2和内存块3之后,可以将内存块3划分为内存单元31、内存单元32、内存单元33和内存单元34,将内存块2划分为内存单元21、内存单元22和内存单元23,将内存块1划分为内存单元11和内存单元12,将内存块0作为内存单元01,即将共享内存区划分为10个内存单元。需要说明的是,上述各个内存块划分得到的内存单元的数量仅用于示例性说明,而非对划分数量的限定,具体实现过程中,发送进程可以基于所发送消息中不同级别优先级的消息所占的比例对各个内存块进行划分。

步骤103,根据待传输消息的优先级从多个内存块中确定出用于存储待传输消息的目标内存块。

在本实施例中,发送进程可以根据每个待传输消息的优先级从上述多个内存块中找到用于存储该优先级消息的内存块,并将该内存块确定为用于存储该待传输消息的目标内存块。

步骤104,将待传输消息写入目标内存块的内存单元。

在本实施例中,发送进程可以将上述待传输消息写入步骤103确定的目标内存块的某个内存单元中。

在本实施例的一些可选的实现方式中,上述步骤104将待传输消息写入目标内存块的内存单元,还可以如下进行:首先,从上述目标内存块中确定当前未被写入的内存单元作为待传输消息的待写入内存单元,例如发送进程可以根据目标内存块中的各个内存单元的序号依次查找,从而得到一个当前未被写入的内存单元作为待写入内存单元;其次,对上述待写入内存单元进行加锁操作之后,将上述待传输消息写入上述待写入内存单元;最后,响应于上述待写入内存单元被写入结束,对上述待写入内存单元执行解锁操作,并通过广播发送写入结束的通知。

在本实施例的一些可选的实现方式中,当上述待传输消息的优先级为高优先级时,上述用于传输消息的方法还可以包括:在将上述待传输消息写入上述目标内存块的内存单元之后,将该内存单元的标志位设置为真。在这里,内存单元的标志位为真,可以表明该内存单元内被发送进程写入了消息。

本申请的上述实施例提供的用于传输消息的方法,首先将共享内存区划分为用于存储不同优先级消息的多个内存块,并将多个内存块中的每个内存块划分为具有连续的序号的至少一个内存单元,然后根据待传输消息的优先级从多个内存块中确定出用于存储待传输消息的目标内存块,最后将待传输消息写入目标内存块的内存单元,从而实现了根据消息的优先级向共享内存区发送消息,使不同优先级的消息能够区别传输,提高了智能化控制系统控制的安全性。

图2示出了根据本申请的用于传输消息的方法的又一个实施例的流程图200。如图2所示,本实施例的用于传输消息的方法包括以下步骤:

步骤201,将操作系统的共享内存区的地址映射到自身的地址空间内。

在本实施例中,读取消息的进程称为接收进程或接收节点,读取消息的进程从共享内存区中读取消息前,要将操作系统的共享内存区的地址映射到自身的地址空间内,使得接收消息的进程像访问自身的内存一样访问共享内存区。其中,上述共享内存区可以包括普通优先级内存块和至少一个高优先级内存块,上述普通优先级内存块和上述至少一个高优先级内存块都可以包括设置有连续序号的至少一个内存单元。上述操作系统可以是各种操作系统,例如可以是机器人操作系统(robotoperatingsystem,ros)、linux操作系统、unix操作系统等等。

步骤202,响应于普通优先级内存块的一个内存单元消息被读取结束,查找至少一个高优先级内存块中是否有标志位为真的内存单元。

在本实施例中,响应于上述普通优先级内存块的一个内存单元内的消息被读取结束,接收进程可以查找上述至少一个高优先级内存块中是否有标志位为真的内存单元,在这里,内存单元的标志位为真可以表明该内存单元内被发送进程写入了消息。

在本实施例的一些可选的实现方式中,上述普通优先级内存块可以用于存储优先级为普通优先级的消息,上述至少一个高优先级内存块中的各个高优先级内存块可以分别用于存储不同级别的高优先级消息;以及上述查找至少一个高优先级内存块中是否有标志位为真的内存单元,还可以如下进行:接收进程可以根据所存储消息的优先级按从高到低的顺序依次查找上述至少一个高优先级内存块中的各个内存单元的标志位是否为真,其中,在各个高优先级内存块中查找时,可以按照内存单元序号依次查找。

步骤203,如果有,则从标志位为真的内存单元读取消息,并在读取结束之后将标志位设置为假。

在本实施例中,如果从上述至少一个高优先级内存块中查找出了标志位为真的内存单元,则从该标志位为真的内存单元中读取消息,并在读取结束之后将该内存单元的标志位设置为假。

在本实施例的一些可选的实现方式中,上述用于传输消息的方法还可以包括:如果从上述至少一个高优先级内存块中没有查找出了标志位为真的内存单元,则接收进程可以读取上述普通优先级内存块中被最后读取结束的内存单元的下一个内存单元存储的消息。

本申请的上述实施例提供的用于传输消息的方法,将共享内存区的地址映射到自身的地址空间内,响应于普通优先级内存块的一个内存单元消息被读取结束,查找至少一个高优先级内存块中是否有标志位为真的内存单元,如果能够查找到,则从标志位为真的内存单元读取消息,并在读取结束之后将标志位设置为假,从而实现了根据消息的优先级读取消息,使不同优先级的消息能够区别传输,提高了智能化控制系统控制的安全性。

继续参见图3,图3是根据本实施例的用于传输消息的方法的应用场景的一个示意图。在图3的应用场景中,在向共享内存区存储消息时,发送进程301首先将共享内存区划分为内存块0、内存块1、内存块2和内存块3,其中,内存块0、内存块1、内存块2、内存块3分别用于存储优先级为零、一、二、三的消息,消息的优先级按从高到低的顺序排列为零、一、二、三;之后,将内存块3划分为内存单元31、内存单元32、内存单元33和内存单元34,将内存块2划分为内存单元21、内存单元22和内存单元23,将内存块1划分为内存单元11和内存单元12,将内存块0作为内存单元01;然后,根据待传输消息的优先级从内存块0、内存块1、内存块2和内存块3中确定出用于存储待传输消息的目标内存块;最后,将待传输消息写入目标内存块的内存单元。在读取消息时,接收进程302首先将操作系统的共享内存区的地址映射到自身的地址空间内;之后,响应于步骤①普通优先级内存块(即内存块3)的内存单元32内的消息被读取结束,查找内存块0的内存单元01的标志位为真,则进行步骤②读取内存单元01的消息,并在读取结束后将内存单元01的标志位设置为假,再依次查找内存块1的内存单元11和内存单元12的标志位为假,继续依次查找内存块2的内存单元21、内存单元22和内存单元23的标志位为假,则进行步骤③读取内存单元32的下一个内存单元33中的消息。

进一步参考图4,作为对上述图1所示方法的实现,本申请提供了一种用于传输消息的装置的一个实施例,该装置实施例与图1所示的方法实施例相对应。

如图4所示,本实施例所述的用于传输消息的装置400包括:第一划分模块401、第二划分模块402、确定模块403和写入模块404。其中,第一划分模块401用于将操作系统分配的共享内存区划分为用于存储不同优先级消息的多个内存块;第二划分模块402用于对于所述多个内存块中的每个内存块,将该内存块划分为具有连续的序号的至少一个内存单元;确定模块403用于根据待传输消息的优先级从所述多个内存块中确定出用于存储所述待传输消息的目标内存块;写入模块404用于将所述待传输消息写入所述目标内存块的内存单元。

在本实施例中,第一划分模块401、第二划分模块402、确定模块403和写入模块404的具体处理可以参考图1对应实施例步骤101、步骤102、步骤103和步骤104的详细描述,在此不再赘述。

在本实施例的一些可选的实现方式中,所述写入模块404进一步用于:从所述目标内存块中确定当前未被写入的内存单元作为所述待传输消息的待写入内存单元;对所述待写入内存单元进行加锁操作之后,将所述待传输消息写入所述待写入内存单元;响应于所述待写入内存单元被写入结束,对所述待写入内存单元执行解锁操作,并通过广播发送写入结束的通知。该实现方式可参考上述图1对应实施例中相应实现方式的详细描述,在此不再赘述。

在本实施例的一些可选的实现方式中,所述第一划分模块401进一步用于:将操作系统分配的共享内存区划分为普通优先级内存块和至少一个高优先级内存块,其中,消息的优先级包括普通优先级和不同级别的高优先级,高优先级的级别数与所述至少一个高优先级内存块的数量相对应,所述普通优先级内存块用于存储优先级为普通优先级的消息,各个高优先级内存块分别用于存储不同级别的高优先级消息。该实现方式可参考上述图1对应实施例中相应实现方式的详细描述,在此不再赘述。

在本实施例的一些可选的实现方式中,所述装置400还包括:设置模块(未示出),用于当所述待传输消息的优先级为高优先级时,在将所述待传输消息写入所述目标内存块的内存单元之后,将该内存单元的标志位设置为真。该实现方式可参考上述图1对应实施例中相应实现方式的详细描述,在此不再赘述。

进一步参考图5,作为对上述图2所示方法的实现,本申请提供了一种用于传输消息的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应。

如图5所示,本实施例所述的用于传输消息的装置500包括:映射模块501、查找模块502和第一读取模块503。其中,映射模块501用于将操作系统的共享内存区的地址映射到自身的地址空间内,其中,所述共享内存区包括普通优先级内存块和至少一个高优先级内存块,所述普通优先级内存块和所述至少一个高优先级内存块都包括设置有连续序号的至少一个内存单元;查找模块502用于响应于所述普通优先级内存块的一个内存单元消息被读取结束,查找所述至少一个高优先级内存块中是否有标志位为真的内存单元;第一读取模块503用于如果有,则从标志位为真的内存单元读取消息,并在读取结束之后将标志位设置为假。

在本实施例中,映射模块501、查找模块502和第一读取模块503的具体处理可以参考图2对应实施例步骤201、步骤202和步骤203的详细描述,在此不再赘述。

在本实施例的一些可选的实现方式中,所述装置500还包括:第二读取模块(未示出),用于如果没有,则读取所述普通优先级内存块中被最后读取结束的内存单元的下一个内存单元存储的消息。该实现方式可参考上述图2对应实施例中相应实现方式的详细描述,在此不再赘述。

在本实施例的一些可选的实现方式中,所述普通优先级内存块用于存储优先级为普通优先级的消息,所述至少一个高优先级内存块中的各个高优先级内存块分别用于存储不同级别的高优先级消息;以及所述查找模块502进一步用于:根据所存储消息的优先级从高到低的顺序依次查找所述至少一个高优先级内存块中的各个内存单元的标志位是否为真,其中,在各个高优先级内存块中查找时,按照内存单元序号依次查找。该实现方式可参考上述图2对应实施例中相应实现方式的详细描述,在此不再赘述。

下面参考图6,其示出了适于用来实现本申请实施例的用于传输消息的装置的计算机系统600的结构示意图。

如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本申请的方法中限定的上述功能。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一划分模块、第二划分模块、确定模块和写入模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一划分模块还可以被描述为“将操作系统分配的共享内存区划分为用于存储不同优先级消息的多个内存块的模块”。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:将操作系统分配的共享内存区划分为用于存储不同优先级消息的多个内存块;对于所述多个内存块中的每个内存块,将该内存块划分为具有连续的序号的至少一个内存单元;根据待传输消息的优先级从所述多个内存块中确定出用于存储所述待传输消息的目标内存块;将所述待传输消息写入所述目标内存块的内存单元。又或者,使得所述设备:将操作系统的共享内存区的地址映射到自身的地址空间内,其中,所述共享内存区包括普通优先级内存块和至少一个高优先级内存块,所述普通优先级内存块和所述至少一个高优先级内存块都包括设置有连续序号的至少一个内存单元;响应于所述普通优先级内存块的一个内存单元消息被读取结束,查找所述至少一个高优先级内存块中是否有标志位为真的内存单元;如果有,则从标志位为真的内存单元读取消息,并在读取结束之后将标志位设置为假。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1