一种进程间的通信方法及装置制造方法及图纸

技术编号:11369918 阅读:79 留言:0更新日期:2015-04-30 01:12
本发明专利技术实施例提供一种进程间的通信方法及装置,包括:判断同一内核上运行的第一进程与第二进程是否具有亲和性,亲和性用于表示第一进程与第二进程之间交互的程度;如果具有亲和性,则判断内核所在核分区中是否存在待迁移内核,待迁移内核的负载小于预设负载值;如果存在,则分析第一进程与第二进程通过LMP方式和UMP方式通信的代价;判断通过LMP方式通信的代价是否小于通过UMP方式通信的代价;如果是,则将第一进程或者第二进程迁移到待迁移内核上,并控制第一进程和第二进程按照UMP方式通信。这样两个进程就能在用户态下完成通信,可避免系统调度导致的用户态和内核态切换,以及进程切换上下文带来的开销,提高进程间通信的性能。

【技术实现步骤摘要】
一种进程间的通信方法及装置
本专利技术涉及通信
,具体涉及一种进程间的通信方法及装置。
技术介绍
微内核操作系统(MicrokernelOperatingSystem)能有效地支持多处理机运行,适用于多核/内核处理器构架,微内核(Microkernel)是一种能够提供最基本的服务的操作系统内核,如进程调度、进程间通信、存储管理等。在微内核操作系统中,将操作系统最基本的服务放在内核中,而将操作系统的绝大部分服务放在微内核外部的进程中实现,这部分服务在用户态下运行,并借助微内核提供的消息传递机制进行进程间的信息交互。一般情况下,同一内核上运行的进程通过Local(Intra-core)MessagePassing(本地消息传递,简称LMP)实现进程间的通信,以同一内核上运行的用户进程和服务进程间的通信过程为例,下面结合图1简述其交互过程:步骤1.用户进程Process向微内核发送系统服务的请求消息;步骤2.微内核接收用户进程发送的请求消息,并调度用户进程所请求的系统服务Service;步骤3.系统服务接受微内核的调度,处理用户进程的请求之后,将响应消息发送给微内核;步骤4.微内核接收系统服务发送的响应消息,并调度步骤1中请求系统服务的用户进程,实现进程间的通信。如此通信过程就存在以下问题:由上述对LMP通信过程的描述可知,进程间通信需要微内核来调度,也就是说,每次调度过程都要进行用户态与内核态的切换,交互过程中的频繁切换就会带来较大的开销。另外,一个系统服务有时需要多个模块之间相互配合完成,而这多个模块可能运行在不同的服务进程中,因此在系统服务处理用户进程的请求时,就需要在这多个服务进程之间相互切换,频繁的进程切换带来的开销也很大。这就使得利用LMP方式通信的两个进程的进程间通信性能较低。
技术实现思路
本专利技术实施例的进程间的通信方法及装置,用以提高进程间通信的通信性能。为此,本专利技术实施例提供如下技术方案:第一方面,本专利技术实施例提供了一种进程间的通信方法,所述方法包括:判断同一内核上运行的第一进程与第二进程是否具有亲和性,所述亲和性用于表示所述第一进程与所述第二进程之间交互的程度;如果具有亲和性,则判断所述内核所在核分区中是否存在待迁移内核,所述待迁移内核的负载小于预设负载值;如果存在,则分析所述第一进程与所述第二进程通过本地消息传递LMP方式和用户级消息传递UMP方式通信的代价;判断所述第一进程和所述第二进程通过LMP方式通信的代价是否小于通过UMP方式通信的代价;如果小于,则将所述第一进程或者所述第二进程迁移到所述待迁移内核上,并控制所述第一进程和所述第二进程按照UMP方式通信。在第一方面的第一种可能的实现方式中,所述判断同一内核上运行的第一进程与第二进程是否具有亲和性,包括:获取所述第一进程和第二进程之间的交互次数,如果所述交互次数不小于预设交互值,则判定所述第一进程和第二进程具有亲和性。在第一方面的第二种可能的实现方式中,所述判断同一内核上运行的第一进程与第二进程是否具有亲和性,包括:获取所述第一进程和第二进程之间待传递的信息量,如果所述信息量不小于预设信息量,则判定所述第一进程和第二进程具有亲和性。结合第一方面以及第一方面的第一种、第二种任一种可能的实现方式,在第三种可能的实现方式中,所述分析所述第一进程与第二进程通过LMP方式和UMP方式通信的代价,包括:获取建立LMP通道的时间与进行LMP通信的时间的时间和,并将该时间和确定为通过LMP方式通信的代价;获取迁移进程的时间、建立UMP通道的时间与进行UMP通信的时间的时间和,并将该时间和确定为通过UMP方式通信的代价。第二方面,本专利技术实施例提供了一种进程间的通信装置,所述装置包括:亲和性判断单元,用于判断同一内核上运行的第一进程与第二进程是否具有亲和性,所述亲和性用于表示所述第一进程与所述第二进程之间交互的程度;内核判断单元,用于在所述第一进程和所述第二进程具有亲和性时,判断所述内核所在核分区中是否存在待迁移内核,所述待迁移内核的负载小于预设负载值;分析单元,用于在所述内核判断单元判定存在待迁移内核时,分析所述第一进程与所述第二进程通过本地消息传递LMP方式和用户级消息传递UMP方式通信的代价;代价判断单元,用于判断所述第一进程和所述第二进程通过LMP方式通信的代价是否小于通过UMP方式通信的代价;迁移单元,用于在所述代价判断单元判定LMP方式通信的代价小于UMP通信的代价时,将所述第一进程或者所述第二进程迁移到所述待迁移内核上,并控制所述第一进程和所述第二进程按照UMP方式通信。在第二方面的第一种可能的实现方式中,所述亲和性判断单元包括:次数获取单元,用于获取所述第一进程和第二进程之间的交互次数;第一判断子单元,用于在所述交互次数不小于预设交互值时,判定所述第一进程和第二进程具有亲和性。在第一方面的第二种可能的实现方式中,所述亲和性判断单元包括:信息量获取单元,用于获取所述第一进程和第二进程之间待传递的信息量;第二判断子单元,用于在所述信息量不小于预设信息量时,判定所述第一进程和第二进程具有亲和性。结合第二方面以及第二方面的第一种、第二种任一种可能的实现方式,在第三种可能的实现方式中,所述分析单元包括:第一时间获取单元,用于获取建立LMP通道的时间与进行LMP通信的时间的时间和;第一确定单元,用于将所述第一时间获取单元获取的时间和确定为通过LMP方式通信的代价;第二时间获取单元,用于获取迁移进程的时间、建立UMP通道的时间与进行UMP通信的时间的时间和;第二确定单元,用于将所述第二时间获取单元获取的时间和确定为通过UMP方式通信的代价。本专利技术实施例的进程间的通信方法及装置,通过亲和性、环境支撑、切换代价三方面,判断相互通信的两个进程是否能利用UMP方式通信,如果可以,则将进程的通信方式从LMP切换为UMP,这样两个进程就能在用户态下完成通信,且交互过程中无需系统内核调度,从而可以避免系统调度导致的用户态和内核态切换带来的开销,以及进程切换上下文带来的开销,可显著提高进程间通信的性能。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。图1是利用LMP方式通信的示意图;图2是本专利技术实施例中进程间的通信方法的流程图;图3是本专利技术实施例中建立UMP通道的示意图;图4是本专利技术实施例中进程间的通信装置的示意图;图5是本专利技术实施例中的分析单元的示意图;图6是本专利技术实施例中通信装置的硬件构成示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面结合附图和实施方式对本专利技术实施例作进一步的详细说明。参见图2,示出了本专利技术实施例进程间的通信方法的流程图,可包括:步骤101,判断同一内核上运行的第一进程与第二进程是否具有亲和性,所述亲和性用于表示所述第一进程与所述第二进程之间交互的程度。一般情况下,同一内核上运行的进程是通过本地消息传递LMP方式相互通信,但因进程间切换的开销、用户态和内核态切换的开销等因素,导致这种方式下的进程间通信性能较差,且这一缺本文档来自技高网
...
一种进程间的通信方法及装置

【技术保护点】
一种进程间的通信方法,其特征在于,所述方法包括:判断同一内核上运行的第一进程与第二进程是否具有亲和性,所述亲和性用于表示所述第一进程与所述第二进程之间交互的程度;如果具有亲和性,则判断所述内核所在核分区中是否存在待迁移内核,所述待迁移内核的负载小于预设负载值;如果存在,则分析所述第一进程与所述第二进程通过本地消息传递LMP方式和用户级消息传递UMP方式通信的代价;判断所述第一进程和所述第二进程通过LMP方式通信的代价是否小于通过UMP方式通信的代价;如果小于,则将所述第一进程或者所述第二进程迁移到所述待迁移内核上,并控制所述第一进程和所述第二进程按照UMP方式通信。

【技术特征摘要】
1.一种进程间的通信方法,其特征在于,所述方法包括:判断同一内核上运行的第一进程与第二进程是否具有亲和性,所述亲和性用于表示所述第一进程与所述第二进程之间交互的程度,当所述第一进程和所述第二进程交互的程度高时,说明二者具有亲和性,反之说明二者不具有亲和性;如果具有亲和性,则判断所述内核所在核分区中是否存在待迁移内核,所述待迁移内核的负载小于预设负载值;如果存在,则分析所述第一进程与所述第二进程通过本地消息传递LMP方式和用户级消息传递UMP方式通信的代价,所述通信的代价体现为花费的时间;判断所述第一进程和所述第二进程通过LMP方式通信的代价是否小于通过UMP方式通信的代价;如果小于,则将所述第一进程或者所述第二进程迁移到所述待迁移内核上,并控制所述第一进程和所述第二进程按照UMP方式通信。2.根据权利要求1所述的方法,其特征在于,所述判断同一内核上运行的第一进程与第二进程是否具有亲和性,包括:获取所述第一进程和第二进程之间的交互次数,如果所述交互次数不小于预设交互值,则判定所述第一进程和第二进程具有亲和性。3.根据权利要求1所述的方法,其特征在于,所述判断同一内核上运行的第一进程与第二进程是否具有亲和性,包括:获取所述第一进程和第二进程之间待传递的信息量,如果所述信息量不小于预设信息量,则判定所述第一进程和第二进程具有亲和性。4.根据权利要求1~3任一项所述的方法,其特征在于,所述分析所述第一进程与第二进程通过LMP方式和UMP方式通信的代价,包括:获取建立LMP通道的时间与进行LMP通信的时间的时间和,并将该时间和确定为通过LMP方式通信的代价;获取迁移进程的时间、建立UMP通道的时间与进行UMP通信的时间的时间和,并将该时间和确定为通过UMP方式通信的代价。5.一种进程间的通信装置,其特征在于,所述装置包括:亲和性判断单元,用于判断同一内核上运行的第一进程与第二进程是否具有亲和性,...

【专利技术属性】
技术研发人员:吴小科王伟王元钢
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1