CN104572314A - 一种进程间的通信方法及装置 - Google Patents
一种进程间的通信方法及装置 Download PDFInfo
- Publication number
- CN104572314A CN104572314A CN201310500049.9A CN201310500049A CN104572314A CN 104572314 A CN104572314 A CN 104572314A CN 201310500049 A CN201310500049 A CN 201310500049A CN 104572314 A CN104572314 A CN 104572314A
- Authority
- CN
- China
- Prior art keywords
- kernel
- mode
- time
- ump
- cost
- 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
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例提供一种进程间的通信方法及装置,包括:判断同一内核上运行的第一进程与第二进程是否具有亲和性,亲和性用于表示第一进程与第二进程之间交互的程度;如果具有亲和性,则判断内核所在核分区中是否存在待迁移内核,待迁移内核的负载小于预设负载值;如果存在,则分析第一进程与第二进程通过LMP方式和UMP方式通信的代价;判断通过LMP方式通信的代价是否小于通过UMP方式通信的代价;如果是,则将第一进程或者第二进程迁移到待迁移内核上,并控制第一进程和第二进程按照UMP方式通信。这样两个进程就能在用户态下完成通信,可避免系统调度导致的用户态和内核态切换,以及进程切换上下文带来的开销,提高进程间通信的性能。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种进程间的通信方法及装置。
背景技术
微内核操作系统(Microkernel Operating System)能有效地支持多处理机运行,适用于多核/内核处理器构架,微内核(Microkernel)是一种能够提供最基本的服务的操作系统内核,如进程调度、进程间通信、存储管理等。在微内核操作系统中,将操作系统最基本的服务放在内核中,而将操作系统的绝大部分服务放在微内核外部的进程中实现,这部分服务在用户态下运行,并借助微内核提供的消息传递机制进行进程间的信息交互。
一般情况下,同一内核上运行的进程通过Local(Intra-core)Message Passing(本地消息传递,简称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方式相互通信,但因进程间切换的开销、用户态和内核态切换的开销等因素,导致这种方式下的进程间通信性能较差,且这一缺点在需要频繁切换的交互过程中显得尤为突出。为了解决这一问题,本发明可以尝试使位于同一内核上的两个进程通过用户级消息传递UMP(一种适用于运行在不同核上的进程间的通信方式)方式通信,这样两个进程就可以在用户态下完成通信,而无需在调度过程中进行用户态和内核态的切换,避免这种切换带来的开销,提高进程间通信的性能。同时,进程间的信息交互过程,也不再需要操作系统内核调度实现,如此还可解决切换进程上下文导致的开销大的问题,同样可提高进程间的通信性能。
当然,本发明实施例并不是要将所有通过LMP方式通信的进程全部切换为通过UMP方式通信,而是从改善进程间通信性能的角度出发,有选择的进行通信方式切换。具体地,本发明主要通过如下三方面因素来判断两个进程之间是否要进行通信方式的切换:进程间的亲和性、切换的环境支撑、切换的性价比。下面对这三方面因素一一进行解释说明。
本步骤主要体现的是对进程间的亲和性这一因素的判断,亲和性用于反映两个进程间交互的程度,当两个进程交互的程度高时,就说明二者具有亲和性;反之则说明二者不具有亲和性。本发明主要通过交互次数和/或交互信息量来判断进程间的亲和性,具体实现可体现如下:
1.通过交互次数判断。首先,预置一个可作为判断标准的阈值(预设交互值);其次,在同一内核上的两个进程建立通信时,获取二者之间需要交互的次数,若以第一进程和第二进程为例,对应的就是要获得第一进程和第二进程之间的交互次数;最后,比较进程交互次数与预设交互值的大小,如果交互次数不小于预设交互值,则判定两个进程具有亲和性,否则判定两个进程不具有亲和性。
2.通过交互信息量判断。首先,预置一个可作为判断标准的阈值(预设信息量);其次,在同一内核上的两个进程建立通信时,获取二者之间需要交互的信息量,若以第一进程和第二进程为例,对应的就是要获得第一进程和第二进程之间待传递的信息量;最后,比较待传递信息量与预设信息量的大小,如果待传递信息量不小于预设信息量,则判定两个进程具有亲和性,否则判定两个进程不具有亲和性。
3.通过交互次数和交互信息量判断。综合考虑交互次数和信息量两个因素,只有在二者均符合条件时(交互次数不小于预设交互值、待传递信息量不小于预设信息量),才判定两个进程具有亲和性;否则判定两个进程不具有亲和性。
需要说明的是,亲和性实际上是性能优化程度的一种体现。如果两个进程频繁的进行信息交互,则说明建立UMP通道之后,两个进程会多次利用该通道在用户态下交互,这就可避免LMP方式下的多次进程切换,LMP通道的高利用率,即可实现优化性能的多次累加,提高两个进程的整体通信性能的优化程度。另外,因LMP方式下进行进程上下文切换时需要保存当前进程的状态信息并加载恢复另一个进程的状态信息,若交互的信息量很大则切换上下文的开销就很大,因此,将两个要进行大信息量传递的进程切换到UMP方式下通信,就使得通信方式切换对单次交互过程的性能优化程度较高。
综合上文介绍可知,本发明实施例可利用亲和性判断选择出可进行通信方式切换的进程,如果两个进程具有亲和性,则可初步判定能切换二者的通信方式;如果两个进程不具有亲和性,则可直接判定二者应维持LMP方式通信。
步骤102,如果具有亲和性,则判断所述内核所在核分区中是否存在待迁移内核,所述待迁移内核的负载小于预设负载值。
经步骤101判断之后,若两个进程间的通信行为具有亲和性,则可继续进行切换环境支撑这一因素的判断。因为UMP通信针对的是位于不同核上的进程,因此,在判断两个进程是否能切换为UMP方式通信时,还要考虑进程当前运行的环境是否支持其进行通信方式切换,也即判断两个进程运行的内核所在的核分区(Domain)中是否存在待迁移内核。
如果存在待迁移内核,则说明进程当前运行的环境能够支撑其将通信方式切换为UMP,对应于此,可将两个进程择一迁移到待迁移内核上,如将第一进程作为迁移对象迁移到待迁移内核上,当然也可迁移第二进程。优选的,还可综合比较两个进程的迁移路径、迁移过程中要保存的上下文环境等因素来选择迁移对象。本发明对此可不做限定。
如果不存在待迁移内核,则说明进程当前运行的环境不能支撑其将通信方式切换为UMP,对应于此,即使经步骤101判定为可以进行通信方式切换的两个进程,仍要维持LMP方式通信。
需要说明的是,本发明中的待迁移内核指的是负载小于预设负载值的低负载内核,当然,为了降低进程迁移代价,优选从进程运行的内核所在的核分区中选择待迁移内核,即进程迁移前所在的内核(可称为当前内核)与进程迁移后所在的内核(可称为待迁移内核)属于同一个核分区。
把第一进程和第二进程当前运行的内核称为当前内核,当前内核遍历检测其所在domain中每个内核的负载情况,找到其中负载低于预设负载值的内核,如果只有1个低负载内核,则可将该低负载内核作为待迁移内核;如果存在多个低负载内核,则可从中选择负载最低的内核作为待迁移内核,当然,作为一种最优方案,优选将空闲的内核确定为待迁移内核,这样将进程迁移到该待迁移内核之后,无需排队等候。
步骤103,如果存在,则分析所述第一进程与所述第二进程通过本地消息传递LMP方式和用户级消息传递UMP方式通信的代价。
步骤104,判断所述第一进程和所述第二进程通过LMP方式通信的代价是否小于通过UMP方式通信的代价。
经步骤102判断之后,若进程当前运行的环境能够支撑其将通信方式切换为UMP,则可继续进行切换的性价比这一因素的判断。因为本发明选择符合切换条件的进程,并将其通信方式从LMP切换为UMP,就是为了优化进程间通信的性能,在步骤101判定两个进程自身符合切换条件、步骤102判定两个进程所在的环境也符合切换条件之后,还要判断切换两个进程的通信方式之后,是否能够优化进程间的通信性能,如果能优化,则说明切换通信方式是有实际意义,且能带来有益效果的。
本发明实施例中的切换的性价比主要是通过比较两个进程通过LMP方式和UMP方式通信的代价实现的,具体体现为:
(1)如果LMP方式通信花费的代价大于UMP方式通信花费的代价,则说明切换后能优化进程间的通信性能,可进行通信方式切换;
(2)如果LMP方式花费的代价小于UMP方式,则说明切换后不能优化进程间的通信性能,即使进程自身和环境均支持进行切换,此时也不应进行通信方式的切换,而应使进程维持LMP方式通信;
(3)如果LMP方式花费的代价等于UMP方式,则说明第一进程和第二进程利用这两种方式通信时,进程间通信的性能是相同的,此时可利用本发明方案进行通信方式的切换,也可不进行通信方式的切换。因为未改善通信性能,所以本发明优选不进行通信方式切换,使进程维持LMP方式通信。
具体地,本发明实施例中的通信代价主要体现为花费的时间:通过LMP方式通信的代价为建立LMP通道的时间与进行LMP通信的时间的时间和;通过UMP方式通信的代价为迁移进程的时间、建立UMP通道的时间与进行UMP通信的时间的时间和。
需要说明的是,本发明优选按照图2所示的顺序(进程间的亲和性、切换的环境支撑、切换的性价比)判断能进行通信方式切换的进程,当然,也可按照其它顺序进行判断,本发明对此可不做限定。
步骤105,如果小于,则将所述第一进程或者所述第二进程迁移到所述待迁移内核上,并控制所述第一进程和所述第二进程按照UMP方式通信。
在两个进程自身符合切换条件、两个进程所在环境也符合切换条件、两个进程进行通信方式切换后能优化通信性能这些前提下,就可以将两个进程的通信方式从LMP切换到UMP。下面进行解释说明。
1.选择一个迁移对象(如第二进程),将第二进程迁移到Domain中选择出的待迁移内核,该内核优选为空闲的内核。
迁移过程中,首先将被中断的进程(在本示例中即为第二进程)上下文保存在被中断程序的进程控制块中,主要包括所有中断处理可能改变的信息和恢复被中断程序时所需要的信息。然后将被中断的进程放入待迁移内核的运行队列中。
迁移过程花费的时间主要受以下因素影响:
(1)迁移路径的长短,迁移路径越长花费的时间就越长。具体可体现为:第一进程从当前内核迁移到待迁移内核中间要经过几跳,如果只经过一跳,则说明迁移路径最短,迁移过程中未经过其它内核;如果通过K(K>1,且为正整数)跳,则说明迁移过程中要经过(K-1)个内核才能到待迁移内核。也就是说,迁移过程中经过越少其它内核则花费的时间就越少,反之花费的时间就越多。
(2)迁移路径中涉及的其它内核的负载情况,其它内核越忙(负载多)花费的时间就越长。
(3)待迁移内核的负载情况,待迁移内核越忙(负载多)花费的时间就越长。
2.进程迁移后,当前内核上运行的是第一进程,待迁移内核上运行的是第二进程,则二者可按照图3所示的步骤1~10建立UMP通道:
(1)第一进程申请获得共享内存,并将该共享内存映射到第一进程的地址空间中。在微内核操作系统构架下,第一进程可向微内核外部的用户管理模块申请获得共享内存。
(2)第一进程向当前内核请求与第二进程通信,将包含共享内存的信息(如共享内存的起始地址、长度、权限等)、第二进程的名称等信息的消息发送给当前内核;由当前内核调度Monitor(Monitor知晓每个进程运行在哪个微内核上)运行,Mointor则会根据消息中包含的第二进程的名称识别第二进程所在的微内核(即待迁移内核);并通过IPC(Inter Process Communication)核间通信将第一进程申请到的共享内存的信息发送给待迁移内核上的Monitor。
(3)待迁移内核上的Monitor则会将接收到的消息发送给待迁移内核,进而由该内核调度第二进程,使第二进程获知第一进程申请到的共享内存,并将该共享内存绑定到自己的地址空间中。
(4)第二进程处理第一进程的请求之后,会将响应消息发送给待处理内核,由待处理内核调度Monitor,进而使Monitor通过IPC核间通信将消息发送给当前内核上的Monitor。
(5)当前内核上的Monitor则会将接收到的消息发送给当前内核,从而由该内核调度第一进程,完成一次第一进程和第二进程在不同微内核上的请求和响应的调用过程,如此也就完成了UMP通道的建立过程。
3.在UMP通道建立完成之后,第一进程和第二进程之间就可通过上述绑定的共享内存进行通信。如此,就实现了第一进程和第二进程在用户态下通过UMP方式通信的目的,避免了LMP方式通信时多次系统调用导致的用户态和内核态切换带来的开销;另外,第一进程和第二进程相互通信时,不需要由操作系统内核调度,这样也可避免进程间切换上下文带来的开销。这就在很大程度上提高了进程间通信的效率,优化了系统的通信性能。
对应地,本发明实施例还提供了一种进程间的通信装置,参见图4,示出了通信装置的示意图,可包括:
亲和性判断单元201,用于判断同一内核上运行的第一进程与第二进程是否具有亲和性,所述亲和性用于表示所述第一进程与所述第二进程之间交互的程度;
内核判断单元202,用于在所述第一进程和所述第二进程具有亲和性时,判断所述内核所在核分区中是否存在待迁移内核,所述待迁移内核的负载小于预设负载值;
分析单元203,用于在所述内核判断单元判定存在待迁移内核时,分析所述第一进程与所述第二进程通过本地消息传递LMP方式和用户级消息传递UMP方式通信的代价;
代价判断单元204,用于判断所述第一进程和所述第二进程通过LMP方式通信的代价是否小于通过UMP方式通信的代价;
迁移单元205,用于在所述代价判断单元判定LMP方式通信的代价小于UMP通信的代价时,将所述第一进程或者所述第二进程迁移到所述待迁移内核上,并控制所述第一进程和所述第二进程按照UMP方式通信。
对应于方法实施例,本发明还提供了亲和性判断单元的具体实现方式。
第一种方式为通过交互次数进行亲和性判断,具体地,所述亲和性判断单元包括:
次数获取单元,用于获取所述第一进程和第二进程之间的交互次数;
第一判断子单元,用于在所述交互次数不小于预设交互值时,判定所述第一进程和第二进程具有亲和性。
第二种方式为通过交互信息量进行亲和性判断,具体地,所述亲和性判断单元包括:
信息量获取单元,用于获取所述第一进程和第二进程之间待传递的信息量;
第二判断子单元,用于在所述信息量不小于预设信息量时,判定所述第一进程和第二进程具有亲和性。
当然,还可结合上述两种方式,综合利用交互次数和交互信息量进行亲和性判断,在第三种实现方式中,需要第一判断子单元和第二判断子单元均判断第一进程和第二进程具有亲和性时,才认定具有亲和性;否则判定两个进程不具有亲和性。
对应地,本发明实施例还提供了用于判断切换的性价比因素的分析单元,具体可参见图5所示示意图,可包括:
第一时间获取单元301,用于获取建立LMP通道的时间与进行LMP通信的时间的时间和;
第一确定单元302,用于将所述第一时间获取单元获取的时间和确定为通过LMP方式通信的代价;
第二时间获取单元303,用于获取迁移进程的时间、建立UMP通道的时间与进行UMP通信的时间的时间和;
第二确定单元304,用于将所述第二时间获取单元获取的时间和确定为通过UMP方式通信的代价。
需要说明的是,在分析LMP和UMP的通信代价时,可按图5所示,先分析获取LMP的通信代价,再获取UMP的通信代价,当然,也可先获取UMP再获取LMP的通信代价,或者同时获取两种方式的通信代价,本发明对此可不做限定。
进一步地,本发明实施例还提供了通信装置的硬件构成。可包括至少一个处理器(例如CPU),至少一个网络接口或者其它通信接口,存储器,和至少一个通信总线,用于实现这些装置之间的连接通信。处理器用于执行存储器中存储的可执行模块,例如计算机程序。存储器可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现该系统网关与至少一个其它网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
参见图6,在一些实施方式中,存储器中存储了程序指令,程序指令可以被处理器执行,其中,程序指令包括亲和性判断单元201、内核判断单元202、分析单元203、代价判断单元204、迁移单元205,各单元的具体实现可参见图4所揭示的相应单元。
本发明方案可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明方案,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种进程间的通信方法,其特征在于,所述方法包括:
判断同一内核上运行的第一进程与第二进程是否具有亲和性,所述亲和性用于表示所述第一进程与所述第二进程之间交互的程度;
如果具有亲和性,则判断所述内核所在核分区中是否存在待迁移内核,所述待迁移内核的负载小于预设负载值;
如果存在,则分析所述第一进程与所述第二进程通过本地消息传递LMP方式和用户级消息传递UMP方式通信的代价;
判断所述第一进程和所述第二进程通过LMP方式通信的代价是否小于通过UMP方式通信的代价;
如果小于,则将所述第一进程或者所述第二进程迁移到所述待迁移内核上,并控制所述第一进程和所述第二进程按照UMP方式通信。
2.根据权利要求1所述的方法,其特征在于,所述判断同一内核上运行的第一进程与第二进程是否具有亲和性,包括:
获取所述第一进程和第二进程之间的交互次数,如果所述交互次数不小于预设交互值,则判定所述第一进程和第二进程具有亲和性。
3.根据权利要求1所述的方法,其特征在于,所述判断同一内核上运行的第一进程与第二进程是否具有亲和性,包括:
获取所述第一进程和第二进程之间待传递的信息量,如果所述信息量不小于预设信息量,则判定所述第一进程和第二进程具有亲和性。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述分析所述第一进程与第二进程通过LMP方式和UMP方式通信的代价,包括:
获取建立LMP通道的时间与进行LMP通信的时间的时间和,并将该时间和确定为通过LMP方式通信的代价;
获取迁移进程的时间、建立UMP通道的时间与进行UMP通信的时间的时间和,并将该时间和确定为通过UMP方式通信的代价。
5.一种进程间的通信装置,其特征在于,所述装置包括:
亲和性判断单元,用于判断同一内核上运行的第一进程与第二进程是否具有亲和性,所述亲和性用于表示所述第一进程与所述第二进程之间交互的程度;
内核判断单元,用于在所述第一进程和所述第二进程具有亲和性时,判断所述内核所在核分区中是否存在待迁移内核,所述待迁移内核的负载小于预设负载值;
分析单元,用于在所述内核判断单元判定存在待迁移内核时,分析所述第一进程与所述第二进程通过本地消息传递LMP方式和用户级消息传递UMP方式通信的代价;
代价判断单元,用于判断所述第一进程和所述第二进程通过LMP方式通信的代价是否小于通过UMP方式通信的代价;
迁移单元,用于在所述代价判断单元判定LMP方式通信的代价小于UMP通信的代价时,将所述第一进程或者所述第二进程迁移到所述待迁移内核上,并控制所述第一进程和所述第二进程按照UMP方式通信。
6.根据权利要求5所述的装置,其特征在于,所述亲和性判断单元包括:
次数获取单元,用于获取所述第一进程和第二进程之间的交互次数;
第一判断子单元,用于在所述交互次数不小于预设交互值时,判定所述第一进程和第二进程具有亲和性。
7.根据权利要求5所述的装置,其特征在于,所述亲和性判断单元包括:
信息量获取单元,用于获取所述第一进程和第二进程之间待传递的信息量;
第二判断子单元,用于在所述信息量不小于预设信息量时,判定所述第一进程和第二进程具有亲和性。
8.根据权利要求5~7任一项所述的装置,其特征在于,所述分析单元包括:
第一时间获取单元,用于获取建立LMP通道的时间与进行LMP通信的时间的时间和;
第一确定单元,用于将所述第一时间获取单元获取的时间和确定为通过LMP方式通信的代价;
第二时间获取单元,用于获取迁移进程的时间、建立UMP通道的时间与进行UMP通信的时间的时间和;
第二确定单元,用于将所述第二时间获取单元获取的时间和确定为通过UMP方式通信的代价。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310500049.9A CN104572314B (zh) | 2013-10-22 | 2013-10-22 | 一种进程间的通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310500049.9A CN104572314B (zh) | 2013-10-22 | 2013-10-22 | 一种进程间的通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572314A true CN104572314A (zh) | 2015-04-29 |
CN104572314B CN104572314B (zh) | 2018-04-10 |
Family
ID=53088458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310500049.9A Active CN104572314B (zh) | 2013-10-22 | 2013-10-22 | 一种进程间的通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572314B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068859A (zh) * | 2015-07-29 | 2015-11-18 | 上海谐桐信息技术有限公司 | 一种跨虚拟机的多服务调用方法及系统 |
CN108038011A (zh) * | 2017-12-28 | 2018-05-15 | 深圳市富途网络科技有限公司 | 一种实现sns多进程通信的方法 |
CN108667864A (zh) * | 2017-03-29 | 2018-10-16 | 华为技术有限公司 | 一种进行资源调度的方法和装置 |
CN110389813A (zh) * | 2019-06-17 | 2019-10-29 | 东南大学 | 一种面向网络靶场的虚拟机动态迁移方法 |
CN113553164A (zh) * | 2021-09-17 | 2021-10-26 | 统信软件技术有限公司 | 一种进程迁移方法、计算设备及存储介质 |
CN114461404A (zh) * | 2022-04-01 | 2022-05-10 | 统信软件技术有限公司 | 一种进程迁移方法、计算设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601110B2 (en) * | 1998-03-17 | 2003-07-29 | Sun Microsystems, Inc. | System and method for translating file-level operations in a non-door-based operating system to door invocations on a door server |
CN102377604A (zh) * | 2011-10-31 | 2012-03-14 | 浪潮(北京)电子信息产业有限公司 | 网络系统中进程的管理方法和系统 |
CN103019813A (zh) * | 2012-11-21 | 2013-04-03 | 北京航空航天大学 | 获取基于SaaS的交互式程序的交互强度的方法 |
-
2013
- 2013-10-22 CN CN201310500049.9A patent/CN104572314B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601110B2 (en) * | 1998-03-17 | 2003-07-29 | Sun Microsystems, Inc. | System and method for translating file-level operations in a non-door-based operating system to door invocations on a door server |
CN102377604A (zh) * | 2011-10-31 | 2012-03-14 | 浪潮(北京)电子信息产业有限公司 | 网络系统中进程的管理方法和系统 |
CN103019813A (zh) * | 2012-11-21 | 2013-04-03 | 北京航空航天大学 | 获取基于SaaS的交互式程序的交互强度的方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068859A (zh) * | 2015-07-29 | 2015-11-18 | 上海谐桐信息技术有限公司 | 一种跨虚拟机的多服务调用方法及系统 |
CN108667864A (zh) * | 2017-03-29 | 2018-10-16 | 华为技术有限公司 | 一种进行资源调度的方法和装置 |
CN108667864B (zh) * | 2017-03-29 | 2020-07-28 | 华为技术有限公司 | 一种进行资源调度的方法和装置 |
CN108038011A (zh) * | 2017-12-28 | 2018-05-15 | 深圳市富途网络科技有限公司 | 一种实现sns多进程通信的方法 |
CN110389813A (zh) * | 2019-06-17 | 2019-10-29 | 东南大学 | 一种面向网络靶场的虚拟机动态迁移方法 |
CN110389813B (zh) * | 2019-06-17 | 2023-07-28 | 东南大学 | 一种面向网络靶场的虚拟机动态迁移方法 |
CN113553164A (zh) * | 2021-09-17 | 2021-10-26 | 统信软件技术有限公司 | 一种进程迁移方法、计算设备及存储介质 |
CN114461404A (zh) * | 2022-04-01 | 2022-05-10 | 统信软件技术有限公司 | 一种进程迁移方法、计算设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104572314B (zh) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572314A (zh) | 一种进程间的通信方法及装置 | |
US10733019B2 (en) | Apparatus and method for data processing | |
US9531775B2 (en) | Mobile application migration to cloud computing platform | |
US9027020B2 (en) | Data and state threading for virtualized partition management | |
US20170353397A1 (en) | Offloading Execution of an Application by a Network Connected Device | |
US8695005B2 (en) | Model for hosting and invoking applications on virtual machines in a distributed computing environment | |
US8516492B2 (en) | Soft partitions and load balancing | |
RU2697700C2 (ru) | Равноправное разделение системных ресурсов в исполнении рабочего процесса | |
CN102508718A (zh) | 一种虚拟机负载均衡方法和装置 | |
CA2848747A1 (en) | Remote process execution management | |
CN104333568A (zh) | 基于cdn和负载均衡技术的家居电商云系统及实现方法 | |
CN105068859B (zh) | 一种跨虚拟机的多服务调用方法及系统 | |
KR102083289B1 (ko) | 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치 | |
US20130073601A1 (en) | Remote process execution management | |
CN109960575B (zh) | 一种计算能力共享方法、系统及相关设备 | |
US8725800B1 (en) | Mobile photo application migration to cloud computing platform | |
US9684536B2 (en) | Scheduling method and scheduling system | |
JP7100154B6 (ja) | プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体 | |
CN105607950A (zh) | 一种虚拟机资源配置方法和装置 | |
KR20140064415A (ko) | 로봇 컴포넌트의 동적 재구성 장치 및 방법 | |
US20240160474A1 (en) | Multi-core processor task scheduling method, and device and storage medium | |
CN109960579B (zh) | 一种调整业务容器的方法及装置 | |
KR102052964B1 (ko) | 컴퓨팅 스케줄링 방법 및 시스템 | |
CN115686805A (zh) | Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置 | |
CN111371848A (zh) | 一种请求处理方法、装置、设备及存储介质 |
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 |