專利名稱:允許通過通信設(shè)備在進(jìn)程之間交換信息的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及允許通過通信設(shè)備在進(jìn)程之間交換信息的方法。
例如由專利申請EP-A0492177和EP-A0164972可知,當(dāng)與存儲設(shè)備連接時,在適當(dāng)配置下,控制設(shè)備能夠處理進(jìn)程之間的通信;這些設(shè)備能夠與一個或多個處理機相連使用。尤其是,通過所提及的兩個專利申請的第一個中所公開的設(shè)備,通過發(fā)送適當(dāng)命令,一個RAM設(shè)備能夠配置為一組獨立存儲塊,每塊根據(jù)選自FI-FO、LIFO、循環(huán)隊列等的一種方式工作;通過另外的命令,數(shù)據(jù)能夠引入到所述存儲塊或從所述存儲塊中抽取,而與其工作方式無關(guān)。盡管這樣的設(shè)備在處理進(jìn)程之間的通信時能有效地提高處理機性能,但是缺點在于僅能執(zhí)行低級命令,一般嚴(yán)格相關(guān)于其內(nèi)部硬件結(jié)構(gòu),并為所使用的特定設(shè)備特有。
這樣的缺點實際上意味著要求為含有這種設(shè)備的硬件環(huán)境開發(fā)軟件的程序員廣泛地了解這種設(shè)備;如果這種軟件用于多進(jìn)程實時應(yīng)用程序,則產(chǎn)生錯誤的可能性很高,因為也應(yīng)考慮對這種設(shè)備的并行訪問。
再者,這種軟件難以修改。
本發(fā)明的目的在于克服這些缺點。
該目的通過允許通過通信設(shè)備在進(jìn)程之間交換信息的方法得以實現(xiàn)。
假設(shè),通過軟件,更確切些通過系統(tǒng)軟件(認(rèn)為是固件更好)、能夠執(zhí)行高級命令(直接由硬件實現(xiàn),因而相對于軟件實現(xiàn)而言能提高執(zhí)行速度)并用于每個進(jìn)程的通信設(shè)備,上述缺陷受限于系統(tǒng)軟件,因而極大地降低了其有害作用。
通過以下參照附圖的說明,本發(fā)明將更加明顯。
圖1是根據(jù)本發(fā)明的硬件環(huán)境的框圖;
圖2是根據(jù)本發(fā)明的軟件環(huán)境的概念圖。
如前述,在多進(jìn)程軟件環(huán)境下,由一個或多個處理機形成的硬件環(huán)境下實現(xiàn)時,總是需要在各進(jìn)程之間交換信息;這些可以劃分為系統(tǒng)進(jìn)程和用戶進(jìn)程;另一個可能的細(xì)分是根據(jù)執(zhí)行時間要求進(jìn)行的。
根據(jù)本發(fā)明的方法與這種情形有關(guān),這種信息交換通過使用通信設(shè)備(圖1中標(biāo)以CD)進(jìn)行,因而并非簡單地通過各種處理機(圖1中標(biāo)以PROC-1,…,PROC-N)的系統(tǒng)軟件。
以下尤其參照圖2說明本方法。
允許通過通信設(shè)備CD在第一用戶進(jìn)程P1和第二用戶進(jìn)程P2之間交換信息的方法包括步驟a)當(dāng)收到第一高級原語(直接由硬件實現(xiàn),因而相對于軟件實現(xiàn)能提高其執(zhí)行速度)時,例如稱為CREATE-LINK,激活一個系統(tǒng)鏈路進(jìn)程,標(biāo)以LINKER,它能夠利用通信設(shè)備CD在用戶進(jìn)程P1和P2之間建立一條通信信道,以及b)當(dāng)收到發(fā)送信息的第二高級原語時,例如稱為SEND-MSG,和等待信息的第三高級原語時,例如稱為WAIT-MSG(直接由硬件實現(xiàn),因而對于軟件實現(xiàn)能提高其執(zhí)行速度),激活至少一個系統(tǒng)處理進(jìn)程,圖中標(biāo)以CD-HAND,它能夠通過在設(shè)備CD上所建立的信道將信息從一個用戶進(jìn)程傳遞到另一個用戶進(jìn)程。
例如,在單向信道情形下,CREATE-LINK原語至少可以設(shè)有以下參數(shù)P-MITT發(fā)送進(jìn)程標(biāo)識;
P-DCST被訪地址進(jìn)程標(biāo)識;
LINK-TYPE數(shù)據(jù)交換方式(FIFO,LIFO,……);
CHAN-PTR數(shù)據(jù)交換所用的存儲區(qū)標(biāo)識,也可理解為所建信道的標(biāo)識;這種標(biāo)識當(dāng)然是原語輸出參數(shù)。
自然,該原語可設(shè)有一個輸出參數(shù),指明信道建立操作的結(jié)果。為建立雙向信道,利用適當(dāng)?shù)膮?shù)發(fā)送兩次這種原語就足夠了。當(dāng)用戶進(jìn)程需要特意建立雙向信道時,可以在原語CREATE-LINK中再設(shè)一個參數(shù),或設(shè)兩個單獨的原語,例如稱為CREATE-LINK-SIMPLEX和CREATE-LINK-DUPLEX。
進(jìn)程之前的通信的多種變型應(yīng)得到考慮例如具有一個發(fā)送端和多個被訪地址的通信信道。
在多處理機環(huán)境下執(zhí)行這樣的原語,需要確定發(fā)送進(jìn)程和被訪地址進(jìn)程在哪些處理機上是活動的。為此,可能設(shè)想存在一個特定系統(tǒng)進(jìn)程,它負(fù)責(zé)用戶進(jìn)程的建立和摧毀,并能在任何時刻知道它們的狀態(tài)(這種系統(tǒng)進(jìn)程可以稱為管理進(jìn)程,即負(fù)責(zé)系統(tǒng)的各種進(jìn)程交替執(zhí)行的進(jìn)程);它可以具有一個原語,為LINKER進(jìn)程提供所需信息。
SEND-MSG原語的參數(shù)可以至少為P-DEST被訪地址進(jìn)程(希望向其發(fā)送一條信息)的標(biāo)識;
CHAN-PTR用于發(fā)送一條信息的信道的標(biāo)識;
MSG-PTR含有待發(fā)信息的存儲區(qū)的標(biāo)識。
自然,該原語可以設(shè)有一個輸出參數(shù),指明發(fā)送操作的結(jié)果。
WAIT-MSG原語的參數(shù)可以至少為P-MITT發(fā)送信息的標(biāo)識,從其可得到一條信息;
CHAN-PTR信道的標(biāo)識,從其可得到一條信息;
MSG-PTR將要含有所得信息的存儲區(qū)的標(biāo)識。
自然,該最后一個原語也可以設(shè)有一個指明接收操作的結(jié)果的輸出參數(shù)。
例如,最后兩個原語可以對發(fā)送它們的進(jìn)程進(jìn)行暫停即發(fā)送SEND-MSG原語的進(jìn)程在信息被有效發(fā)送之前不繼續(xù)執(zhí)行,或者發(fā)送WAIT-MSG原語的進(jìn)程在信息被有效接收之前不繼續(xù)進(jìn)行。
為解決對設(shè)備CD的并行訪問問題的一個可能的和有利的方式是設(shè)置進(jìn)一步的步驟c)激活至少一個系統(tǒng)仲裁進(jìn)程,稱為RES-MAN,用于控制系統(tǒng)進(jìn)程對設(shè)備CD的并行訪問。
對設(shè)備CD的訪問必須盡可能僅由系統(tǒng)進(jìn)程執(zhí)行,并最好僅由進(jìn)程LINKER和CD-HAND,或較好地僅由CD-HAND執(zhí)行。這可通過為進(jìn)程RES-MAN設(shè)置兩個原語實現(xiàn),例如稱為GET-CD和RELEASE-CD,利用它們?nèi)魏涡枰L問設(shè)備CD的進(jìn)程請求互斥訪問,并在使用之后釋放設(shè)備。另外,進(jìn)程RES-MAN可以利用類似的原語對來處理所有系統(tǒng)資源的互斥訪問每個資源一對。
進(jìn)程P1和進(jìn)程P2應(yīng)該在兩個不同的處理機上活動,步驟b)必須能夠激活第一和第二處理進(jìn)程CD-HAND,然后根據(jù)處理原語SEND-MSG的第一進(jìn)程的接收和根據(jù)處理原語WAIT-MSG的第二進(jìn)程的接收,進(jìn)行信息傳送。
顯然,高級原語CREATE-LINK、SEND-MSG和WAIT-MSG是由用戶進(jìn)程發(fā)送的,同時重要的是,這些進(jìn)程盡可能僅利用這種高級原語進(jìn)行通信。
至此一直討論進(jìn)程LINKER和CD-HAND所能接收的高級原語,自然,它們也能接收低級原語;例如,進(jìn)程LINKER可以從進(jìn)程CD-HAND接收一條低級原語,以請求與設(shè)備CD的已建的特定信道有關(guān)的詳細(xì)信息。
例如,在只有通過進(jìn)程CD-HAND的中間來訪問設(shè)備CD的情形下,進(jìn)程CD-HAND能夠從進(jìn)程LINKER接收關(guān)于設(shè)備CD的初始化和測試、從設(shè)備CD讀出或?qū)懭霐?shù)據(jù)、從設(shè)備CD傳送或接收信號的低級原語;因此,能夠在其內(nèi)部限定設(shè)備的所有特征,并能看到使用不同類型的通信設(shè)備不必修改系統(tǒng)的其他進(jìn)程。
需要看到,所有這樣的低級原語一般不由用戶進(jìn)程發(fā)送,使得與進(jìn)程之間信息交換有關(guān)的特征需要更多限定。
顯然,本發(fā)明的方法一般要以至少一個程序來實現(xiàn),因而該方法的步驟包括以機器語言字符編碼的指令序列,并記錄在存儲裝置中。現(xiàn)在仍參照圖2說明根據(jù)本發(fā)明的軟件環(huán)境。
這種軟件環(huán)境包括至少第一用戶進(jìn)程P1和第二用戶進(jìn)程P2,還包括a)一個系統(tǒng)鏈路進(jìn)程LINKER,用于在收到高級原語CRE-ATE-LINK時在用戶進(jìn)程之間建立一個通信設(shè)備CD,以及b)至少一個系統(tǒng)處理進(jìn)程CD-HAND,在收到高級發(fā)送信息原語SEND-MSG和高級等待信息原語WAIT-MSG時,能夠通過通信設(shè)備CD將信息從一個用戶進(jìn)程傳遞到另一個用戶進(jìn)程。
自然,所有這樣的進(jìn)程是同時活動的,并且一般一個系統(tǒng)管理進(jìn)程SP具有實現(xiàn)在同一處理機上這些進(jìn)程交替執(zhí)行的功能;此外,若不用管理進(jìn)程SP,交替執(zhí)行也可通過進(jìn)程之間控制的直接傳遞機制來實現(xiàn),但從簡化編程的觀點來看并非十分有效。
如果用戶進(jìn)程在兩個不同的處理機上是活動的,則該環(huán)境包括第一和第二處理進(jìn)程CD-HAND,用于在第一處理進(jìn)程收到原語SEND-MSG和第二處理進(jìn)程收到原語WAIT-MSG時,傳送信息;自然,在每個處理機上可以激活管理進(jìn)程,但這是明顯的,因為每個處理機具有多進(jìn)程軟件環(huán)境。該環(huán)境可以包括c)系統(tǒng)仲裁進(jìn)程RES-MAN,也是活動的,用于控制系統(tǒng)進(jìn)程對通信設(shè)備CD進(jìn)行的并行訪問。
圖2中以橢圓標(biāo)出了各種進(jìn)程;各橢圓之間以線路相互鏈接,線路代表進(jìn)程之間根據(jù)下述原語的傳送和接收的主要鏈路進(jìn)程P1和P2向進(jìn)程LINKER和CD-HAND發(fā)送和/或從其接收原語,進(jìn)程LINKER和CD-HAND向進(jìn)程RES-MAN發(fā)送或從其接收原語,以及相互之間發(fā)送和接收原語;另外,可以有與軟件系統(tǒng)的所有進(jìn)程相連的管理進(jìn)程SP,以及與進(jìn)程SP嚴(yán)格相關(guān)的兩個進(jìn)程RT和BL,后兩個進(jìn)程也可以沒有,它們分別負(fù)責(zé)具有嚴(yán)格時間要求的進(jìn)程以及沒有時間要求的進(jìn)程的執(zhí)行控制。
仍參照圖2,兩列堆起來的矩形代表進(jìn)程LINKER和CD-HAND的高級原語HLP和低級原語LLP。最后需要指出,上述軟件環(huán)境代表為實現(xiàn)本發(fā)明的方法的全部最小環(huán)境。尤其是,當(dāng)硬件環(huán)境是變化的時,進(jìn)程LINKER、CD-HAND、RES-MAN、SP等的數(shù)量可以很多,它們之間的鏈路可以更復(fù)雜。
現(xiàn)參照圖1簡述根據(jù)本發(fā)明的硬件環(huán)境。
這樣的環(huán)境包括至少一個處理機PROC-2和與所述處理機PROC-2連接的通信設(shè)備CD,并且它以這種方法編程,使得處理機PROC-2能夠?qū)崿F(xiàn)根據(jù)本發(fā)明的方法的各步。
圖1中,示出更復(fù)雜的環(huán)境,包括多個處理機PROC-1、PROC-2、PROC-3、PROC-4、…、PROC-N以及與這些處理機連接的設(shè)備CD。這種連接可以是各種類型的,例如,與PROC-1的連接是串行的,與PROC-2的連接是并行的,而與其他處理機的連接是總線共享型的。
在圖示的實施例中,設(shè)備CD是由與開始提及的專利申請中所述類型的控制設(shè)備QRC相連的隨機存取存儲器RAM的連接實現(xiàn)的。
自然,硬件環(huán)境,即至少各處理機必須以這樣的方法編程,使得所有處理機能夠?qū)崿F(xiàn)根據(jù)本發(fā)明的方法的各步。
權(quán)利要求
1.允許通過通信設(shè)備(CD)在第一用戶進(jìn)程(P1)和第二用戶進(jìn)程(P2)之間交換信息的方法,包括步驟a)在收到直接由硬件實現(xiàn)的第一原語(CREATE-LINK)時,激活一個系統(tǒng)鏈路進(jìn)程(LINKER),它能夠在所述用戶進(jìn)程(P1,P2)之間在所述設(shè)備(CD)上建立一條通信信道,以及b)在收到直接由硬件實現(xiàn)的第二發(fā)送信息原語(SEND-MSG)和直接由硬件實現(xiàn)的第三等待信息原語(WAIT-MSG)時,激活至少一個系統(tǒng)處理進(jìn)程(CD-HAND),它能夠通過建立在所述設(shè)備(CD)上的所述信道,將信息從所述用戶進(jìn)程之一傳遞到另一用戶進(jìn)程。
2.根據(jù)權(quán)利要求1的方法,還包括步驟c)激活至少一個系統(tǒng)仲裁進(jìn)程(RES-MAN),它能夠控制所述系統(tǒng)進(jìn)程對所述設(shè)備(CD)進(jìn)行的并行訪問。
3.根據(jù)權(quán)利要求1的方法,其中所述步驟b)能激活第一和第二處理進(jìn)程(CD-HAND),其中這樣的信息傳送發(fā)生在所述第一處理進(jìn)程收到所述第二原語并且所述第二處理進(jìn)程收到所述第三原語時。
4.根據(jù)權(quán)利要求1的方法,其中所述原語由所述用戶進(jìn)程發(fā)送。
5.根據(jù)權(quán)利要求1的方法,其特征在于所述處理進(jìn)程用于接收與所述設(shè)備的初始化和測試、從所述設(shè)備讀取或向所述設(shè)備寫數(shù)據(jù)、向所述設(shè)備發(fā)送或從所述設(shè)備接收信號有關(guān)的低級原語,其特征還在于所述低級原語一般不能由用戶進(jìn)程發(fā)送。
6.根據(jù)前述任一權(quán)利要求的方法,其特征在于所述步驟包括存儲裝置中所存儲的機器語言編碼的指令序列。
7.包括至少一個用戶進(jìn)程(P1)和第二用戶進(jìn)程(P2)這一類型的軟件環(huán)境,其特征在于包括a)一個系統(tǒng)鏈路進(jìn)程(LINKER),在收到第一原語(CRE-ATE-LINK)時,在所述用戶進(jìn)程之間,在通信設(shè)備(CD)上建立一條通信信道,以及b)至少一個系統(tǒng)處理進(jìn)程(CD-HAND),在收到第二發(fā)送信息原語(SEND-MSG)并且收到第三等待信息原語(WAIT-MSG)時,能夠通過所述通信設(shè)備(CD),將信息從所述用戶進(jìn)程之一傳遞到另一用戶進(jìn)程;其中所有所述進(jìn)程是活動的。
8.根據(jù)權(quán)利要求7的軟件環(huán)境,包括第一和第二處理進(jìn)程(CD-HAND),在所述第一處理進(jìn)程收到所述第二原語并且所述處理進(jìn)程收到所述第三原語時,能夠傳送信息。
9.根據(jù)權(quán)利要求7的軟件環(huán)境,還包括c)一個系統(tǒng)仲裁進(jìn)程(RES-MAN),用于控制所述系統(tǒng)進(jìn)程對所述通信設(shè)備(CD)的并行訪問;其中所有所述進(jìn)程是活動的。
10.硬件環(huán)境,包括至少一個處理機(PROC-2)和連接于所述處理機(PROC-2)的通信設(shè)備(CD),其特征在于它以這種方法編程,使得所述至少一個處理機(PROC-2)能夠?qū)崿F(xiàn)權(quán)利要求1所述的方法的各步。
11.根據(jù)權(quán)利要求10的硬件環(huán)境,包括多個處理機(PROC-1、…、PROC-N)和連接于所述處理機的通信設(shè)備(CD),其特征在于它以這種方法編程,使得所有所述處理機能夠?qū)崿F(xiàn)權(quán)利要求1所述的方法的各步。
全文摘要
本發(fā)明涉及允許通過通信設(shè)備在進(jìn)程之間交換信息的方法。本方法允許虛擬化,從若干進(jìn)程共享的通信設(shè)備開始,能夠執(zhí)行低級命令,通信設(shè)備能夠執(zhí)行高級命令并用于每個進(jìn)程。
文檔編號G06F9/46GK1098580SQ9410811
公開日1995年2月8日 申請日期1994年7月2日 優(yōu)先權(quán)日1993年7月2日
發(fā)明者法比歐·布托, 尼克拉·克森茲 申請人:阿爾卡塔爾有限公司