1、10申请公布号CN101963924A43申请公布日20110202CN101963924ACN101963924A21申请号201010514486222申请日20101021G06F9/5420060171申请人深圳创维RGB电子有限公司地址518000广东省深圳市南山区高新南一道创维大厦A131672发明人高怀恩曾巨泉邵彦生丁宏74专利代理机构深圳中一专利商标事务所44237代理人张全文54发明名称一种进程通信方法、装置及操作系统57摘要本发明适用于计算机软件领域,提供了一种进程通信的方法、装置及操作系统,所述方法包括下述步骤根据各种进程间通信方式统计进程间通信信息;提供系统接口,获取所
2、述进程间通信信息;将所述获取的进程间通信信息作为进程策略依据进行通信。在本发明通过统计较为完善的进程间通信信息,能够为进程提供相应的策略依据,避免在有多余选择的前提下,过多进程依赖某一进程从而造成系统不稳定等性能低下的状况。同时提供安全性设置选项,避免系统的安全性漏洞。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书5页附图2页CN101963925A1/1页21一种进程通信的方法,其特征在于,所述方法包括下述步骤根据各种进程间通信方式统计进程间通信信息;提供系统接口,获取所述进程间通信信息;将所述获取的进程间通信信息作为进程策略依据进行通信。2如权利要求1所
3、述的方法,其特征在于,在所述步骤根据各种进程间通信方式统计进程间通信信息之前还包括设置进程间通信信息的权限。3如权利要求2所述的方法,其特征在于,所述设置进程间通信信息的权限是由主进程设置。4如权利要求1所述的方法,其特征在于,所述统计进程间通信信息的方法为设计各种进程通信方式的数据结构。5如权利要求1所述的方法,其特征在于,所述提供系统接口,获取所述进程间通信信息的方法为由外部进程调用获取进程间通信信息,通过API实现。6一种进程通信装置,其特征在于,所述装置包括通信信息存储模块,用于存储根据各种进程间通信方式统计进程间通信信息;通信信息获取模块,用于提供系统接口,获取所述进程间通信信息;进
4、程通信模块,用于将所述获取的进程间通信信息作为进程策略依据进行通信。7如权利要求6所述的装置,其特征在于,所述装置包括权限设置模块,用于设置进程间通信信息的权限。8一种操作系统,其特征在于,所述操作系统包括权利要求6至7任一权利要求所述的进程通信装置。权利要求书CN101963924ACN101963925A1/5页3一种进程通信方法、装置及操作系统技术领域0001本发明属于计算机软件领域,尤其涉及一种进程通信的方法、装置及操作系统。背景技术0002在协调复杂系统中的多个进程中,进程通信起着至关重要的作用。在进程通信中,可以采用以下手段管道PIPE、信号SIGNAL、跟踪TRACE、命名管道N
5、AMEDPIPE、报文MESSAGE、共享内存、信号量SEMAPHORE、插口SOCKET。通过所述的通信手段,LINUX各个进程间能够互相协调,保持系统稳定与性能。然而,LINUX系统的设计当中能够获取完整进程的相关信息,却不能通过获取进程间通信信息来完善进程通信。发明内容0003本发明实施例的目的在于提供一种进程通信的方法,旨在解决不能通过获取进程间通信信息来完善进程通信的问题。0004本发明实施例是这样实现的,一种进程通信的方法,其特征在于,所述方法包括以下步骤0005根据各种进程间通信方式统计进程间通信信息;0006提供系统接口,获取所述进程间通信信息;0007将所述获取的进程间通信信
6、息作为进程策略依据进行通信。0008本发明实施例的另一目的在于提供一种进程通信的装置,所述装置包括0009通信信息存储模块,用于存储根据各种进程间通信方式统计进程间通信信息;0010通信信息获取模块,用于提供系统接口,获取所述进程间通信信息;0011进程通信模块,用于将所述获取的进程间通信信息作为进程策略依据进行通信。0012本发明实施例的另一目的在于提供一种操作系统,所述操作系统包括所述进程通信的装置。0013在本发明实施例中,统计较为完善的进程间通信信息,能够为进程提供相应的策略依据,避免在有多余选择的前提下,过多进程依赖某一进程从而造成系统不稳定等性能低下的状况。同时提供安全性设置选项,
7、避免系统的安全性漏洞。附图说明0014图1是本发明实施例提供的进程通信的方法的流程图;0015图2是本发明实施例提供的进程间通信信息数据结构示意图;0016图3是本发明实施例提供的进程间通信信息的权限设置示意图;0017图4是本发明实施例提供的进程通信的装置示意图。具体实施方式0018为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对说明书CN101963924ACN101963925A2/5页4本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。0019本发明实施例通过在系统进程维护表中设置系统进程间通信信息的数据结构,统计
8、和获取较为完善的进程间通信信息,为进程提供相应的策略依据。同时提供安全性设置选项,避免系统安全性漏洞。0020本发明提供了一种进程通信的方法和装置0021所述方法包括0022根据各种进程间通信方式统计进程间通信信息;0023提供系统接口,获取所述进程间通信信息;0024将所述获取的进程间通信信息作为进程策略依据进行通信。0025所述装置包括0026通信信息存储模块,用于存储根据各种进程间通信方式统计进程间通信信息;0027通信信息获取模块,用于提供系统接口,获取所述进程间通信信息;0028进程通信模块,用于将所述获取的进程间通信信息作为进程策略依据进行通信。0029为了说明本发明所述的技术方案
9、,下面通过具体实施例来进行说明。0030实施例一0031图1示出了本发明实施例提供的进程通信的方法的流程图。0032在步骤S101中,根据各种进程间通信方式统计进程间通信信息。0033在本发明实施例中,所述各种进程间通信方式包括管道PIPE、命名管道NAMEDPIPE、报文MESSAGE、信号SIGNAL、共享内存、信号量SEMAPHORE和套接口SOCKET。所述统计进程间通信信息,即为设计进程间通信信息的数据结构进行统计。0034如图2所示,下面将详细说明各个通信方式的进程间通信信息数据结构。00351、管道。管道机制是由系统调用PIPE实现的。在FORK配合下,在父子进程或两个子进程之间
10、建立起进程间的通信管道。下面举例说明在进程间通信信息数据结构中增加管道的相关结构,如下所示0036TYPEDEFSTRUCT0037INTPERM;/进程对文件权限,0表示只读,1表示只写,2表示读写/0038INTPID;/管道另一端的进程ID/0039INTFID;/管道对应的文件ID/0040PIPEINFO;0041由上可知,管道的相关结构用在结构体PIPEINFO表示。00422、命名管道。命名管道能在任意进程间建立通信的机制。下面举例说明在进程间通信信息数据结构中增加命名管道的相关结构的方法,如下所示0043TYPEDEFSTRUCT0044INTPERM;/进程对文件权限,0表示
11、只读,1表示只写,2表示读写/0045INTPID;/命名管道另一端的进程ID/0046INTFID;/命名管道对应的文件ID/0047CHARNAME;/命名管道对应的文件名/0048NAMEDPIPEINFO;说明书CN101963924ACN101963925A3/5页50049由上可知,命名管道的相关结构用结构体NAMEDPIPEINFO表示。00503、信号。信号是软件层次上的一种中断机制模拟,是进程间通信机制中唯一的异步通信机制。下面举例说明在进程间通信信息数据结构中增加当前处理的中断信号的方法,如下所示0051INTSIGNAL;/值与中断向量表定义一致,1表示无信号/;0052
12、由上可知,中断信号用一个整型数据SIGNAL表示。00534、报文。报文避免了信号所承载的信息量小和命名管道开销和无格式字节流等缺点。其它进程可以通过键值取得对进程已建立的报文队列的访问途径。下面举例说明在进程间通信信息数据结构中,添加报文队列信息的方法,如下所示0054TYPEDEFSTRUCT0055KEY_TKEY;/报文队列的键值/0056INTLEN;/报文队列的长度/0057MESSAGEQUEUEINFO;0058由上可知,报文队列信息用结构体MESSAGEQUEUEINFO表示。00595、共享内存。共享内存是两个或多个进程可以访问的同一块内存区域,是一种低级的接近物理层的通信
13、机制。下面举例说明在进程间通信信息数据结构中添加当前的共享内存的方法,如下所示0060TYPEDEFSTRUCT0061KEY_TKEY;/共享内存的键值/0062SIZE_TSIZE;/共享内存的大小/0063SHMINFO;0064由上可知,共享内存用结构体SHMINFO表示。00656、信号量。信号量是进程间通信的一种同步手段,通常用来协调对资源的访问。下面举例说明在进程间通信信息数据结构中,添加信号量标识的方法,如下所示0066BOOLINSEMAP;/当前进程是否在信号量区域/;0067由上可知,信号量用一个布尔型的变量INSEMAP表示。00687、套接口。套接口既适用于同一台计算
14、机上的进程通信,也适用于网络环境下的进程通信。下面举例说明在进程间通信信息数据结构中,添加当前连接的套接口的方法,如下所示0069STRUCTSOCKADDR_ININET;0070由上可知,套接口用结构体SOCKADDR_ININET表示。0071最后,需要将上述进程间通信信息合并,如图2所示,其实现方法如下0072TYPEDEFSTRUCT0073PIPEINFOPIPE;0074NAMEDPIPEINFONAMEDPIPE;0075INTSIGNAL;0076MESSAGEQUEUEINFOMESSAGEQUEUE;0077SHMINFOSHM;0078BOOLINSEMAP;说明书CN
15、101963924ACN101963925A4/5页60079STRUCTSOCKADDR_ININET;0080PROCCOMINFO;0081由上可知,将所有通信方式的进程间通信信息都合并在了一个结构体,即PROCCOMINFO中。0082在步骤S102中,提供系统接口,获取所述进程间通信信息。0083在本发明实施例中,进程间通信信息的获取是由外部进程调用,通过以下API实现的0084INTGETPROCCOMPID_TID,PROCCOMINFOPROC;0085其中,传入参数PID_TID为目标进程的ID,PROCCOMINFOPROC为进程间通信信息智者,返回结果为所获取的信息类型。
16、0086在步骤S103中,将所述获取的进程间通信信息作为进程策略依据进行通信。0087在本发明实施例中,进程在通信时,可将所获得的进程间通信信息作为依据进行通信。例如进程A需要和进程B进行通信,由所获取的进程间通信信息可知,此时的共享内存太小,因此,进程A和进程B就不会选择共享内存通信,而选择其他的通信方式。这样,进程在通信时参考所获得的进程间通信信息,可选择更好的进程通信方式,得出最佳的进程通信方式,提高系统效率。而具体进程是如何进行通信的属于现有技术,在此就不详细描述了。0088实施例二0089本发明第二实施例进一步提供了设置进程间通信信息的权限的方法。如图3所示0090在本发明实施例中,
17、进程间通信信息的权限设置是由主进程所设置的,用来确定哪些信息能对外可见,哪些信息不能对外可见。提供以下接口实现0091VOIDSETPROCCOMUNSIGNEDPERM;0092其中,PERM的取值及其意义如下00930X00所有信息均不可见;00940X01管道信息可见;00950X02命名管道信息可见;00960X04报文信息可见;00970X08信号信息可见;00980X10共享内存信息可见;00990X20信号量信息可见;01000X40套接口信息可见;01010XFF或0X7F所有信息可见。0102在本发明实施例中,可以采用或的方式实现选择性的信息可见,如0X01|0X02表示管道
18、和命名管道信息可见。0103在本发明实施例中,进程间通信信息权限的设置,避免了进程间通信信息过于暴露,提高了系统的安全性。0104实施例三0105图4为本发明实施例提供的进程通信装置的结构示意,为了便于说明,仅示出了说明书CN101963924ACN101963925A5/5页7与本发明实施例相关的部份。该装置可以是内置于操作系统中的软件单元、硬件单元或者软硬件相结合的单元,或者作为独立的挂件集成到操作系统或操作系统的应用系统中。其中0106通信信息存储模块1,用于存储根据各种进程间通信方式统计进程间通信信息。0107在本发明实施例中,LINUX进程通信的方式包括管道PIPE、命名管道NAME
19、DPIPE、报文MESSAGE、信号SIGNAL、共享内存、信号量SEMAPHORE和套接口SOCKET。所述进程间通信信息,即为用户定义的进程间通信信息的数据结构。通信信息存储模块就是用于存储根据上述各种进程间通信方式统计的进程间通信信息。0108通信信息获取模块2,获取进程间通信信息。0109在本发明实施例中,通信信息获取模块通过外部进程调用,获取进程间通信信息。0110进程通信模块3,用于将所获取的进程间通信信息作为进程策略依据,进行通信。0111在本发明实施例中,进程通信模块将所获得的进程间通信信息作为依据进行通信,得出最佳的进程通信方式。0112权限设置模块4,用于设置进程间通信信息
20、的权限。由主进程进行设置,用来确定哪些信息能对外可见,哪些信息不能对外可见。0113在本发明实施例中,统计较为完善的进程间通信信息,能够为进程提供相应的策略依据,避免在有多余选择的前提下,过多进程依赖某一进程从而造成系统不稳定等性能低下的状况。同时提供安全性设置选项,避免系统的安全性漏洞。0114以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。说明书CN101963924ACN101963925A1/2页8图1图2图3说明书附图CN101963924ACN101963925A2/2页9图4说明书附图CN101963924A
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1