亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種進程間的通信方法及裝置的制造方法

文檔序號:8258194閱讀:394來源:國知局
一種進程間的通信方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種進程間的通信方法及裝置。
【背景技術(shù)】
[0002]微內(nèi)核操作系統(tǒng)(Microkernel Operating System)能有效地支持多處理機運行,適用于多核/內(nèi)核處理器構(gòu)架,微內(nèi)核(Microkernel)是一種能夠提供最基本的服務(wù)的操作系統(tǒng)內(nèi)核,如進程調(diào)度、進程間通信、存儲管理等。在微內(nèi)核操作系統(tǒng)中,將操作系統(tǒng)最基本的服務(wù)放在內(nèi)核中,而將操作系統(tǒng)的絕大部分服務(wù)放在微內(nèi)核外部的進程中實現(xiàn),這部分服務(wù)在用戶態(tài)下運行,并借助微內(nèi)核提供的消息傳遞機制進行進程間的信息交互。
[0003]一般情況下,同一內(nèi)核上運行的進程通過Local (Intra-core)Message Passing(本地消息傳遞,簡稱LMP)實現(xiàn)進程間的通信,以同一內(nèi)核上運行的用戶進程和服務(wù)進程間的通信過程為例,下面結(jié)合圖1簡述其交互過程:
[0004]步驟1.用戶進程Process向微內(nèi)核發(fā)送系統(tǒng)服務(wù)的請求消息;
[0005]步驟2.微內(nèi)核接收用戶進程發(fā)送的請求消息,并調(diào)度用戶進程所請求的系統(tǒng)服務(wù)Service ;
[0006]步驟3.系統(tǒng)服務(wù)接受微內(nèi)核的調(diào)度,處理用戶進程的請求之后,將響應(yīng)消息發(fā)送給微內(nèi)核;
[0007]步驟4.微內(nèi)核接收系統(tǒng)服務(wù)發(fā)送的響應(yīng)消息,并調(diào)度步驟I中請求系統(tǒng)服務(wù)的用戶進程,實現(xiàn)進程間的通信。
[0008]如此通信過程就存在以下問題:
[0009]由上述對LMP通信過程的描述可知,進程間通信需要微內(nèi)核來調(diào)度,也就是說,每次調(diào)度過程都要進行用戶態(tài)與內(nèi)核態(tài)的切換,交互過程中的頻繁切換就會帶來較大的開銷。另外,一個系統(tǒng)服務(wù)有時需要多個模塊之間相互配合完成,而這多個模塊可能運行在不同的服務(wù)進程中,因此在系統(tǒng)服務(wù)處理用戶進程的請求時,就需要在這多個服務(wù)進程之間相互切換,頻繁的進程切換帶來的開銷也很大。這就使得利用LMP方式通信的兩個進程的進程間通信性能較低。

【發(fā)明內(nèi)容】

[0010]本發(fā)明實施例的進程間的通信方法及裝置,用以提高進程間通信的通信性能。
[0011]為此,本發(fā)明實施例提供如下技術(shù)方案:
[0012]第一方面,本發(fā)明實施例提供了一種進程間的通信方法,所述方法包括:
[0013]判斷同一內(nèi)核上運行的第一進程與第二進程是否具有親和性,所述親和性用于表示所述第一進程與所述第二進程之間交互的程度;
[0014]如果具有親和性,則判斷所述內(nèi)核所在核分區(qū)中是否存在待遷移內(nèi)核,所述待遷移內(nèi)核的負載小于預(yù)設(shè)負載值;
[0015]如果存在,則分析所述第一進程與所述第二進程通過本地消息傳遞LMP方式和用戶級消息傳遞UMP方式通信的代價;
[0016]判斷所述第一進程和所述第二進程通過LMP方式通信的代價是否小于通過UMP方式通信的代價;
[0017]如果小于,則將所述第一進程或者所述第二進程遷移到所述待遷移內(nèi)核上,并控制所述第一進程和所述第二進程按照UMP方式通信。
[0018]在第一方面的第一種可能的實現(xiàn)方式中,所述判斷同一內(nèi)核上運行的第一進程與第二進程是否具有親和性,包括:
[0019]獲取所述第一進程和第二進程之間的交互次數(shù),如果所述交互次數(shù)不小于預(yù)設(shè)交互值,則判定所述第一進程和第二進程具有親和性。
[0020]在第一方面的第二種可能的實現(xiàn)方式中,所述判斷同一內(nèi)核上運行的第一進程與第二進程是否具有親和性,包括:
[0021]獲取所述第一進程和第二進程之間待傳遞的信息量,如果所述信息量不小于預(yù)設(shè)信息量,則判定所述第一進程和第二進程具有親和性。
[0022]結(jié)合第一方面以及第一方面的第一種、第二種任一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述分析所述第一進程與第二進程通過LMP方式和UMP方式通信的代價,包括:
[0023]獲取建立LMP通道的時間與進行LMP通信的時間的時間和,并將該時間和確定為通過LMP方式通信的代價;
[0024]獲取遷移進程的時間、建立UMP通道的時間與進行UMP通信的時間的時間和,并將該時間和確定為通過UMP方式通信的代價。
[0025]第二方面,本發(fā)明實施例提供了一種進程間的通信裝置,所述裝置包括:
[0026]親和性判斷單元,用于判斷同一內(nèi)核上運行的第一進程與第二進程是否具有親和性,所述親和性用于表示所述第一進程與所述第二進程之間交互的程度;
[0027]內(nèi)核判斷單元,用于在所述第一進程和所述第二進程具有親和性時,判斷所述內(nèi)核所在核分區(qū)中是否存在待遷移內(nèi)核,所述待遷移內(nèi)核的負載小于預(yù)設(shè)負載值;
[0028]分析單元,用于在所述內(nèi)核判斷單元判定存在待遷移內(nèi)核時,分析所述第一進程與所述第二進程通過本地消息傳遞LMP方式和用戶級消息傳遞UMP方式通信的代價;
[0029]代價判斷單元,用于判斷所述第一進程和所述第二進程通過LMP方式通信的代價是否小于通過UMP方式通信的代價;
[0030]遷移單元,用于在所述代價判斷單元判定LMP方式通信的代價小于UMP通信的代價時,將所述第一進程或者所述第二進程遷移到所述待遷移內(nèi)核上,并控制所述第一進程和所述第二進程按照UMP方式通信。
[0031]在第二方面的第一種可能的實現(xiàn)方式中,所述親和性判斷單元包括:
[0032]次數(shù)獲取單元,用于獲取所述第一進程和第二進程之間的交互次數(shù);
[0033]第一判斷子單元,用于在所述交互次數(shù)不小于預(yù)設(shè)交互值時,判定所述第一進程和第二進程具有親和性。
[0034]在第一方面的第二種可能的實現(xiàn)方式中,所述親和性判斷單元包括:
[0035]信息量獲取單元,用于獲取所述第一進程和第二進程之間待傳遞的信息量;
[0036]第二判斷子單元,用于在所述信息量不小于預(yù)設(shè)信息量時,判定所述第一進程和第二進程具有親和性。
[0037]結(jié)合第二方面以及第二方面的第一種、第二種任一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述分析單元包括:
[0038]第一時間獲取單元,用于獲取建立LMP通道的時間與進行LMP通信的時間的時間和;
[0039]第一確定單元,用于將所述第一時間獲取單元獲取的時間和確定為通過LMP方式通信的代價;
[0040]第二時間獲取單元,用于獲取遷移進程的時間、建立UMP通道的時間與進行UMP通信的時間的時間和;
[0041]第二確定單元,用于將所述第二時間獲取單元獲取的時間和確定為通過UMP方式通信的代價。
[0042]本發(fā)明實施例的進程間的通信方法及裝置,通過親和性、環(huán)境支撐、切換代價三方面,判斷相互通信的兩個進程是否能利用UMP方式通信,如果可以,則將進程的通信方式從LMP切換為UMP,這樣兩個進程就能在用戶態(tài)下完成通信,且交互過程中無需系統(tǒng)內(nèi)核調(diào)度,從而可以避免系統(tǒng)調(diào)度導(dǎo)致的用戶態(tài)和內(nèi)核態(tài)切換帶來的開銷,以及進程切換上下文帶來的開銷,可顯著提高進程間通信的性能。
【附圖說明】
[0043]為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其它的附圖。
[0044]圖1是利用LMP方式通信的示意圖;
[0045]圖2是本發(fā)明實施例中進程
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1