[发明专利]跨进程传递字符串的方法及装置在审
申请号: | 201210051294.1 | 申请日: | 2012-03-01 |
公开(公告)号: | CN103294560A | 公开(公告)日: | 2013-09-11 |
发明(设计)人: | 朱政义 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F12/02 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 张颖玲;任媛 |
地址: | 518028 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 跨进 传递 字符串 方法 装置 | ||
技术领域
本发明涉及计算机进程间通讯领域,尤其涉及一种跨进程传递字符串的方法及装置。
背景技术
计算机操作系统中,进程(Process)是正在运行的程序实体,并且包括整个程序运行中占据的所有系统资源。不同的进程之间,都具有各自不同的进程映像,拥有不同的内存空间。因此一方对于变量的修改另一方是无法感知的。因此,进程之间的信息(如字符串)传递不可能通过变量或其它数据结构直接进行,只能通过进程间通信来完成。而目前计算机的操作系统进程之间为传递信息,可通过以下进程间通信方式实现:(1)文件映射(Memory-Mapped Files);(2)共享内存(Share Memory);(3)匿名管道(Anonymous Pipe);(4)命名管道(Named Pipe);(5)邮件槽(Mail slots);(6)剪贴板(Clipped Board);(7)Sockets(套接字)等。
其中,使用共享内存进行跨进程通讯传递信息,通常做法是在进程中开辟一段共享内存,双方事先约定好这块共享内存作为传递字符串使用,就像使用普通内存一样,使用这段共享内存,直接在这段地址上写入或读取字符串。
但上述这种共享内存进行跨进程通讯传递信息的缺点是:由于共享内存资源很宝贵,系统分配内存时,按照一个内存页面为单位的,通常为4KB,但是字符串一般几十个最多上百个字节,如果每个字符串一块共享内存,则会造成内存的大量浪费;如果同时要传递多个字符串,则要申请多块共享内存,造成管理上的复杂,并且不断的申请和释放资源,又会造成大量的系统开销,导致性能下降。
发明内容
本发明实施方式提供一种跨进程传递字符串的方法及装置,可以解决目前在计算机操作系统的通过共享内存方式进行跨进程传递字符串,会造成内存大量的浪费,且因内在管理复杂导致系统开销大,致使性能下降的问题。
为解决上述问题本发明提供的技术方案如下:
本发明实施方式提供一种跨进程传递字符串的方法,包括:
发送进程将已获得的共享内存空间分为多段;
发送进程将向接收进程传递的字符串写入所述共享内存的未分配使用的分段空间内,使所述接收进程从所述共享内存中已写入所述字符串的各段空间内读取获得所述字符串。
本发明实施方式还提供一种跨进程传递字符串的装置,包括:
划分处理模块和写入处理模块;其中,
所述划分处理模块,用于将已获得的共享内存空间分为多段;
所述写入处理模块,用于将向接收进程传递的字符串写入所述共享内存的未分配使用的分段空间内,使所述接收进程从所述共享内存中已写入所述字符串的各段空间内读取获得所述字符串。
由上述提供的技术方案可以看出,本发明实施例提供的方法,通过共享内存的方式实现了跨进程间的字符串传递,并且由于发送进程先将共享内存分为多段,从而使得发送进程将所传递的字符串写入共享内存后,该字符串只占用一段共享内存空间而不会占用整个共享内存块,避免了利用共享内存传递字符串时造成的共享内存空间的浪费。并且,该方法不会增加共享内存管理的复杂性,系统开销小有助于提高系统性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的方法的流程图;
图2为本发明实施例提供的方法的另一流程图;
图3为本发明实施例提供的方法中共享内存分段的示意图;
图4为本发明实施例提供的方法传递字符串过程的流程图;
图5为本发明实施例提供的跨进程传递字符串的装置的结构示意图。
具体实施方式
下面结合具体实施例对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
下面对本发明实施例作进一步地详细描述。
实施例一
本发明实施例提供一种跨进程传递字符串的方法,可用在操作系统的两个进程之间进行字符串传递,如图1所示,该方法包括以下步骤:
步骤1,发送进程将已获得的共享内存空间分为多段;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210051294.1/2.html,转载请声明来源钻瓜专利网。