一種kux系統(tǒng)下基于數(shù)據(jù)管道的進(jìn)程間通訊的實現(xiàn)方法
【專利摘要】本發(fā)明提供一種KUX系統(tǒng)下基于數(shù)據(jù)管道的進(jìn)程間通訊的實現(xiàn)方法,涉及UNIX以及KUX的操作系統(tǒng)領(lǐng)域中的進(jìn)程間通訊方式領(lǐng)域。本發(fā)明主要分為以下五個模塊:進(jìn)程管理模塊(1)、數(shù)據(jù)管道模塊(2)、通訊控制模塊(3)、文件管理模塊(4)、異常處理模塊(5);使用模塊化的思想有效的完成了KUX系統(tǒng)下具有親緣關(guān)系的進(jìn)程之間的通信的方法,通過匿名管道的方式實現(xiàn)通訊,還加強(qiáng)了對管道文件的管理和保護(hù),另外,增加異常處理模塊,以供出現(xiàn)異常時不至于整個通訊系統(tǒng)的崩潰。
【專利說明】一種KUX系統(tǒng)下基于數(shù)據(jù)管道的進(jìn)程間通訊的實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及UNIX以及KUX的操作系統(tǒng)領(lǐng)域中的進(jìn)程間通訊方式,在KUX應(yīng)用開發(fā)中會遇到進(jìn)程間通訊的需求,進(jìn)程間通訊的方法有很多,例如通過共享內(nèi)存、信號量、內(nèi)存映射文件、數(shù)據(jù)管道、文件、Socket等等。這里介紹的一種通過數(shù)據(jù)管道和系統(tǒng)標(biāo)準(zhǔn)輸入輸出文件描述符相結(jié)合的方式來實現(xiàn)進(jìn)程間通訊和數(shù)據(jù)交互。
【背景技術(shù)】
[0002]匿名管道:管道是進(jìn)程間協(xié)同工作的一種方式,單獨構(gòu)成一種獨立的文件系統(tǒng),管道是半雙工的。而匿名管道數(shù)據(jù)只能向一個方向流動,雙方通信時,需要建立起兩個管道;只能用于父子進(jìn)程或者兄弟進(jìn)程之間(具有親緣關(guān)系的進(jìn)程)。
[0003]文件指針與管道:當(dāng)我們要讀寫一個文件,需要用到文件指針,它是一個指向結(jié)構(gòu)體的指針。我們對管道進(jìn)行讀寫操作時也需要用到文件指針,通過文件指針來對管道一端進(jìn)行寫,而另一端的進(jìn)程則通過文件指針進(jìn)行讀。如果文件指針指向的是標(biāo)準(zhǔn)輸入,那么該進(jìn)程則是從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù),通過匿名管道實現(xiàn)進(jìn)程間通訊:通信場景如下:現(xiàn)在有兩個進(jìn)程A、進(jìn)程B (是進(jìn)程A的子進(jìn)程),進(jìn)程A從數(shù)據(jù)庫中讀取一條待處理數(shù)據(jù)M,數(shù)據(jù)M中存儲了進(jìn)程A需要調(diào)用的可執(zhí)行程序名稱及需要傳遞給可執(zhí)行程序的參數(shù)。參數(shù)很多,并且參數(shù)長度及個數(shù)以及類型都是變化的。
【發(fā)明內(nèi)容】
[0004]本文利用文件指針進(jìn)行匿名管道的讀寫操作,不采取參數(shù)傳遞方法,而采用了匿名管道進(jìn)程間通信方法。
[0005]對于本發(fā)明,使用了匿名管道方式,來實現(xiàn)進(jìn)程間的通訊。通過數(shù)據(jù)管道和系統(tǒng)標(biāo)準(zhǔn)輸入輸出文件描述符相結(jié)合的方式來實現(xiàn)進(jìn)程間通訊和數(shù)據(jù)交互。
[0006]本發(fā)明提供一種KUX系統(tǒng)下基于數(shù)據(jù)管道的進(jìn)程間通訊的實現(xiàn)方法,解決KUX系統(tǒng)下具有親緣關(guān)系的進(jìn)程之間的通信的實現(xiàn)方法。主要分為以下五個模塊:進(jìn)程管理模塊
(I)、數(shù)據(jù)管道模塊(2)、通訊控制模塊(3)、文件管理模塊(4)、異常處理模塊(5)。
[0007]進(jìn)程管理模塊(I)是通訊實現(xiàn)方法的進(jìn)程管理模塊,其主要目的是對通訊前提進(jìn)行定義,比如兩個進(jìn)程間通訊的相關(guān)性。
[0008]數(shù)據(jù)管道模塊(2)是通訊實現(xiàn)方法的核心模塊,其主要目的是通過匿名管道通訊實現(xiàn)數(shù)據(jù)傳遞和通訊的管道設(shè)置。
[0009]通訊控制模塊(3)是對整體通訊方法的控制模塊,其主要目的是對通訊中的進(jìn)程、傳遞方式、通訊模式等進(jìn)行有效的管理。
[0010]文件管理模塊(4)是對通訊內(nèi)容的一個管理模塊,其主要目的是對數(shù)據(jù)傳遞的內(nèi)容進(jìn)行有效的管理。
[0011]異常處理模塊(5)是進(jìn)程通訊方法中出現(xiàn)的異常進(jìn)行處理的模塊,其主要目的是對異常通信情況進(jìn)行分析和處理。
[0012]進(jìn)程通訊的步驟如下:
第一步、調(diào)用進(jìn)程管理模塊對需要通訊的進(jìn)程進(jìn)行管理和調(diào)度,實現(xiàn)對具有親緣關(guān)系的進(jìn)程有效的管理。
[0013]第二步、通訊控制模塊通過調(diào)用數(shù)據(jù)管道模塊,來進(jìn)行通訊方式和傳遞方式的管理和調(diào)度,這里的數(shù)據(jù)管道的選擇也是通過通訊控制模塊來進(jìn)行管理的。
[0014]第三步、文件管理模塊根據(jù)進(jìn)程需要通訊的數(shù)據(jù)進(jìn)行文件化處理,實現(xiàn)系統(tǒng)間通信的標(biāo)準(zhǔn)輸入輸出文件的設(shè)置。
[0015]第四步、進(jìn)程間進(jìn)行通訊,以及數(shù)據(jù)傳遞。期間調(diào)用異常處理模塊,對進(jìn)程通訊過程中出現(xiàn)的異常情況進(jìn)行有效的分析和管理。
[0016]第五步、通訊結(jié)束,關(guān)閉所有方法模塊。
[0017]本發(fā)明有益的效果是:通過基于數(shù)據(jù)管道在KUX進(jìn)程通訊的實現(xiàn)方法,實現(xiàn)了通過數(shù)據(jù)管道和系統(tǒng)標(biāo)準(zhǔn)輸入輸出文件描述符相結(jié)合的方式來實現(xiàn)進(jìn)程間通訊和數(shù)據(jù)交互的進(jìn)程通訊方式,可以對KUX中的具有親緣關(guān)系的進(jìn)程進(jìn)行有效的通訊和數(shù)據(jù)文件的有效傳遞。通過基于數(shù)據(jù)管道的技術(shù),提高了數(shù)據(jù)在傳遞中的安全性和準(zhǔn)確性,對于進(jìn)程間的通訊模式,也是一個顛覆性的創(chuàng)新。除此之外,本發(fā)明在實現(xiàn)過程中采用了模塊化的設(shè)計思想,對功能進(jìn)行了有效的拆分,提高了通訊方法在以后的功能可擴(kuò)展性。對于本發(fā)明,重點對進(jìn)程通訊過程中的異常分析和處理也做了相應(yīng)的解決方案,可以對出現(xiàn)的異常進(jìn)行有效的分析和處理,在KUX進(jìn)程通訊方面,具有非常廣闊的方展前景。
【專利附圖】
【附圖說明】
[0018]附圖1數(shù)據(jù)管道通信原理圖。
[0019]附圖2進(jìn)行通訊方法的工作流程圖。
【具體實施方式】
[0020]下面參照附圖,對本發(fā)明的內(nèi)容以一個具體實例來描述實現(xiàn)這一體系結(jié)構(gòu)的過程。
[0021]正如
【發(fā)明內(nèi)容】
中所描述的,通過基于數(shù)據(jù)管道在KUX進(jìn)程通訊的實現(xiàn)方法,主要有進(jìn)程管理模塊(I)、數(shù)據(jù)管道模塊(2)、通訊控制模塊(3)、文件管理模塊(4)、異常處理模塊(5)五個模塊構(gòu)成。
[0022]進(jìn)程管理模塊(I)是通訊實現(xiàn)方法的進(jìn)程管理模塊,其主要目的是對通訊前提進(jìn)行定義,比如兩個進(jìn)程間通訊的相關(guān)性。
[0023]數(shù)據(jù)管道模塊(2)是通訊實現(xiàn)方法的核心模塊,其主要目的是通過匿名管道通訊實現(xiàn)數(shù)據(jù)傳遞和通訊的管道設(shè)置。
[0024]通訊控制模塊(3)是對整體通訊方法的控制模塊,其主要目的是對通訊中的進(jìn)程、傳遞方式、通訊模式等進(jìn)行有效的管理。
[0025]文件管理模塊(4)是對通訊內(nèi)容的一個管理模塊,其主要目的是對數(shù)據(jù)傳遞的內(nèi)容進(jìn)行有效的管理。
[0026]異常處理模塊(5)是進(jìn)程通訊方法中出現(xiàn)的異常進(jìn)行處理的模塊,其主要目的是對異常通信情況進(jìn)行分析和處理。
[0027]數(shù)據(jù)管道通訊的實現(xiàn)方法步驟如下:
第一步、調(diào)用進(jìn)程管理模塊對需要通訊的進(jìn)程進(jìn)行管理和調(diào)度,在本模塊中記錄需要通信的兩個進(jìn)程的PID,說明需要通信的時哪兩個進(jìn)程,從而實現(xiàn)對具有親緣關(guān)系的進(jìn)程進(jìn)行有效的管理。
[0028]第二步、通訊控制模塊通過調(diào)用數(shù)據(jù)管道模塊,來進(jìn)行通訊方式和傳遞方式的管理和調(diào)度,這里的數(shù)據(jù)管道的選擇也是通過通訊控制模塊來進(jìn)行管理的,包括雙向管道還是單向管道的選擇。
[0029]第三步、文件管理模塊根據(jù)進(jìn)程需要通訊的數(shù)據(jù)進(jìn)行文件化處理,即建立管道文件,供給進(jìn)程訪問,并賦予訪問的通信進(jìn)程相應(yīng)的權(quán)限,不允許不在進(jìn)程管理模塊中備案的進(jìn)程訪問該管道文件,從而實現(xiàn)具有親緣關(guān)系的進(jìn)程之間通信的類似于標(biāo)準(zhǔn)輸入輸出文件的設(shè)置。
[0030]第四步、進(jìn)程間進(jìn)行通訊,以及數(shù)據(jù)傳遞,首先,提供數(shù)據(jù)的進(jìn)程將數(shù)據(jù)寫入文件管理模塊建立的管道文件中,當(dāng)數(shù)據(jù)寫入結(jié)束時發(fā)出信號,通知通訊控制模塊,此時講允許獲取信息的進(jìn)程讀取管道文件中的數(shù)據(jù),讀取結(jié)束時通知通訊控制模塊,此時,就完成了一次數(shù)據(jù)通訊,在此期間異常處理模塊一直處于活動狀態(tài),檢測整個通訊過程,如果中間出現(xiàn)異常,講由異常處理模塊接手此次通訊,并通知通訊控制模塊,此次通訊失敗,異常處理模塊能夠?qū)M(jìn)程通訊過程中出現(xiàn)的異常情況進(jìn)行有效的分析和管理,其中異常情況比如:管道文件不存在,無法正常讀寫,管道文件被占用等等情況。
[0031]第五步、通訊結(jié)束,關(guān)閉所有方法模塊。
【權(quán)利要求】
1.一種KUX系統(tǒng)下基于數(shù)據(jù)管道的進(jìn)程間通訊的實現(xiàn)方法,其特征在于主要分為進(jìn)程管理模塊(I)、數(shù)據(jù)管道模塊(2)、通訊控制模塊(3)、文件管理模塊(4)、異常處理模塊(5)五個模塊構(gòu)成; 進(jìn)程管理模塊(I),其主要目的是對通訊前提進(jìn)行定義; 數(shù)據(jù)管道模塊(2),是通訊實現(xiàn)方法的核心模塊,其主要目的是通過匿名管道通訊實現(xiàn)數(shù)據(jù)傳遞和通訊的管道設(shè)置; 通訊控制模塊(3),是對整體通訊方法的控制模塊,其主要目的是對通訊中的進(jìn)程、傳遞方式、通訊模式等進(jìn)行有效的管理; 文件管理模塊(4),是對通訊內(nèi)容的一個管理模塊,其主要目的是對數(shù)據(jù)傳遞的內(nèi)容進(jìn)行有效的管理; 異常處理模塊(5),是進(jìn)程通訊方法中出現(xiàn)的異常進(jìn)行處理的模塊,其主要目的是對異常通信情況進(jìn)行分析和處理; 通過數(shù)據(jù)管道和系統(tǒng)標(biāo)準(zhǔn)輸入輸出文件描述符相結(jié)合的方式來實現(xiàn)進(jìn)程間通訊和數(shù)據(jù)交互。
2.根據(jù)權(quán)利要求1所述的KUX系統(tǒng)下基于數(shù)據(jù)管道的進(jìn)程間通訊的實現(xiàn)方法,其特征在于進(jìn)程通訊的步驟如下: 第一步、調(diào)用進(jìn)程管理模塊對需要通訊的進(jìn)程進(jìn)行管理和調(diào)度,實現(xiàn)對具有親緣關(guān)系的進(jìn)程有效的管理; 第二步、通訊控制模塊通過調(diào)用數(shù)據(jù)管道模塊,來進(jìn)行通訊方式和傳遞方式的管理和調(diào)度,這里的數(shù)據(jù)管道的選擇也是通過通訊控制模塊來進(jìn)行管理的; 第三步、文件管理模塊根據(jù)進(jìn)程需要通訊的數(shù)據(jù)進(jìn)行文件化處理,實現(xiàn)系統(tǒng)間通信的標(biāo)準(zhǔn)輸入輸出文件的設(shè)置; 第四步、進(jìn)程間進(jìn)行通訊,以及數(shù)據(jù)傳遞;期間調(diào)用異常處理模塊,對進(jìn)程通訊過程中出現(xiàn)的異常情況進(jìn)行有效的分析和管理; 第五步、通訊結(jié)束,關(guān)閉所有方法模塊。
3.根據(jù)權(quán)利要求1所述的KUX系統(tǒng)下基于數(shù)據(jù)管道的進(jìn)程間通訊的實現(xiàn)方法,其特征在于數(shù)據(jù)管道模塊使用了匿名管道通訊方式,可以只作用于父子進(jìn)程或者是兄弟進(jìn)程之間的通訊,或者是具有親緣管理的進(jìn)程通信。
【文檔編號】G06F9/54GK104375900SQ201410686530
【公開日】2015年2月25日 申請日期:2014年11月26日 優(yōu)先權(quán)日:2014年11月26日
【發(fā)明者】吳丹宇 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司