亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

共享處理器和網(wǎng)絡(luò)接口的多個操作系統(tǒng)的制作方法

文檔序號:7607792閱讀:158來源:國知局
專利名稱:共享處理器和網(wǎng)絡(luò)接口的多個操作系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及從被設(shè)置為運行多個操作系統(tǒng)的計算機連接網(wǎng)絡(luò)。在常規(guī)的計算機中,設(shè)置有網(wǎng)絡(luò)接口卡(NIC),其將計算機連接到網(wǎng)絡(luò)。NIC被設(shè)置為根據(jù)網(wǎng)絡(luò)協(xié)議在網(wǎng)絡(luò)上傳送數(shù)據(jù);例如,其可以是以太網(wǎng)網(wǎng)絡(luò)接口卡。計算機在網(wǎng)絡(luò)上具有物理地址(MAC地址)。
背景技術(shù)
計算機運行提供應(yīng)用程序接口(API)的操作系統(tǒng),該應(yīng)用程序接口(API)使得應(yīng)用程序可以使用計算機的資源(包括NIC)。為此,操作系統(tǒng)提供直接控制特定計算機平臺的資源的驅(qū)動器例程(通常為獨立的程序)。很多操作系統(tǒng)提供使用網(wǎng)際協(xié)議(“IP”)來進行通信的例程(即,IP堆棧)。使用網(wǎng)際協(xié)議使得計算機可以通過多個網(wǎng)絡(luò)來進行通信。為計算機分配IP地址,IP地址是不同于物理MAC地址的邏輯地址。
最著名的操作系統(tǒng)(例如,Microsoft WindowsTM和LinuxTM)是適用于在寬范圍的平臺(具有適當(dāng)?shù)尿?qū)動器程序)上運行寬范圍的應(yīng)用程序的“通用”操作系統(tǒng)。此外,這種操作系統(tǒng)通常提供多任務(wù);換言之,它們允許幾個應(yīng)用程序并行運行。為此,這種操作系統(tǒng)提供調(diào)度;換言之,它們根據(jù)調(diào)度算法為各個應(yīng)用程序分配時間,在不同的應(yīng)用程序之間共享計算機資源的使用。
這種操作系統(tǒng)得到廣泛應(yīng)用,并因此具有被編寫為在該操作系統(tǒng)上運行的、用戶可以從中進行選擇的大應(yīng)用程序庫。因此這種操作系統(tǒng)是大多數(shù)應(yīng)用程序的首選。
然而,對于某些應(yīng)用程序,程序中的步驟在規(guī)定時間段內(nèi)或在規(guī)定時間執(zhí)行是非常關(guān)鍵的。這種程序的示例為用于操縱移動電話或者用于操縱專用小交換機(PBX)或蜂窩基站的控制程序。通常,該程序必須在外部事件或狀態(tài)變化內(nèi)的特定時刻或者特定時間內(nèi)以一貫的方式對事件作出響應(yīng)。這稱為“實時”操作。通用的操作系統(tǒng)不適用于實時操作,也不能修改為進行該操作。
因此,為了這種任務(wù),已經(jīng)開發(fā)了實時操作系統(tǒng);一個示例是ChorusOS(也稱為Chorus)及其衍生物。作為開放源碼軟件,Chorus可以從http//www.experimentalstuff.com/Technologies/ChorusOS/index.html獲得,Jaluna可以在http//www.jaluna.com/獲得。
在2001年8月的222頁的“ChorusOS Features and Architectureoverview”,F(xiàn)rancois Armand,Sun Technical Report(可以從http//www.jaluna.com/developer/papers/COSDESPERF.pdf獲得)中對其進行了描述。
這些操作系統(tǒng)也可以用于運行其他類型的程序。然而,可以理解,用戶希望能夠運行為諸如Windows或Linux的通用操作系統(tǒng)而編寫的大量“傳統(tǒng)”程序,而不必為了在實時操作系統(tǒng)中運行而重寫這些程序。
在US 5903752和US 5721206中,試圖通過在非實時操作系統(tǒng)(例如Windows)的中斷處理環(huán)境中提供實時多任務(wù)內(nèi)核來將實時環(huán)境并入非實時操作系統(tǒng)中。
當(dāng)試圖使用通用操作系統(tǒng)來進行實時流數(shù)據(jù)(例如,音頻流或視頻流,或者基于因特網(wǎng)的語音(VoIP)數(shù)據(jù))的通信時,結(jié)果通常是不能令人滿意的;首先,因為如果存在操作系統(tǒng)必須執(zhí)行的其他任務(wù),則操作系統(tǒng)可能完全不能足夠快地進行操作,其次,因為如果調(diào)度執(zhí)行另一任務(wù),則調(diào)度器可能意外地拒絕IP堆棧處理器資源,導(dǎo)致短時數(shù)據(jù)丟失。
已經(jīng)進行了一些努力來解決這一問題,以提供對Linux的實時擴展。一個方案是US 5995745(Yodaiken)或http//www.fsmlabs.com中描述的RT Linux。另一方案是RTAI(Linux的實時應(yīng)用程序接口),對此參見http//www.aero.polimi.it/~rtai/applications/或者h(yuǎn)ttp//www.opensource.lineo.com/rtai.html應(yīng)當(dāng)理解,RT Linux和RTAI都可以被構(gòu)成為通過使用RT NET程序來提供IP協(xié)議堆棧,對此參見http//www.rts.uni-hannover.de/rtnet/。
近來,已經(jīng)提出了用于提供“多個性”系統(tǒng)(即,其中在同一處理器上并行運行兩個或更多個不同操作系統(tǒng)的系統(tǒng))的方案。一個是http//opersys.com/ftp/pub/Adeos/adeos.pdf的白皮書中(以及在http//opersys.com/adeos的其他文件中)描述的ADEOS(操作系統(tǒng)的自適應(yīng)域環(huán)境)。另一個是我們于2003年4月9日提交的在先歐洲申請EP03290894.9中描述的Jaluna 2,在此通過引用并入其全部內(nèi)容。
EP 1054332示出了具有實時操作系統(tǒng)和通用操作系統(tǒng)并且在兩者之間進行切換的計算機系統(tǒng),其中在這些操作系統(tǒng)之間共享外圍裝置。EP1059582描述了運行實時操作系統(tǒng)和通用操作系統(tǒng)的虛擬機系統(tǒng)。
US 6330616描述了包括多個邏輯分區(qū)和到網(wǎng)絡(luò)的端口的主機數(shù)據(jù)處理系統(tǒng)。多個不同的TCP/IP堆棧(各自由不同分區(qū)中的軟件來控制,所述軟件可以是各分區(qū)中的獨立操作系統(tǒng))可以訪問該端口。操作系統(tǒng)和TCP/IP堆棧完全獨立地運行,并且各堆棧具有其自有的唯一的IP地址。

發(fā)明內(nèi)容
本發(fā)明的目的是提供改進的網(wǎng)絡(luò)通信。一方面,本發(fā)明包括根據(jù)權(quán)利要求1所述的計算機系統(tǒng)、根據(jù)權(quán)利要求18所述的方法、或者根據(jù)權(quán)利要求19所述的用于提供執(zhí)行該方法的代碼的計算機程序產(chǎn)品。
盡管該解決方案可能初看起來效率低下,但是由于在運行多個并行操作系統(tǒng)時不可避免地將存在一些處理器開銷(overhead),因此選擇適當(dāng)?shù)牟僮飨到y(tǒng)可以提高操作效率例如,第一操作系統(tǒng)可以是實時操作系統(tǒng),其可以支持用于時間關(guān)鍵(time-critical)通信(例如流數(shù)據(jù)通信)的代碼,第二操作系統(tǒng)可以是通用操作系統(tǒng),其可以被允許傳送諸如信令或監(jiān)視數(shù)據(jù)的非時間關(guān)鍵數(shù)據(jù)。在該示例中,第一(實時)操作系統(tǒng)自然被設(shè)計為保證確定性并且對于流數(shù)據(jù)傳輸比通用系統(tǒng)提供更高的性能。
由此,通過提供共享對網(wǎng)絡(luò)的訪問的多個并行運行的操作系統(tǒng)、這些不同操作系統(tǒng)共享公共邏輯地址,可以共同地管理兩個操作系統(tǒng)來使用相同的公共的參數(shù)組,然而可以將通信中涉及的行為指派給它們尤其適合的不同操作系統(tǒng)。
另一方面,本發(fā)明使用基于網(wǎng)際協(xié)議的語音通信的環(huán)境中的這種靈活性,但是使用實時操作系統(tǒng)來傳送語音數(shù)據(jù)(例如,使用具有小分組的用戶數(shù)據(jù)報協(xié)議(UDP/IP)傳輸)、并使用通用操作系統(tǒng)來提供呼叫建立及切斷信令和/或呼叫計費信令。因此,實時操作系統(tǒng)可以保證不中斷語音通信所必需的最低性能,同時通用操作系統(tǒng)可以在實時操作系統(tǒng)不需要網(wǎng)絡(luò)接口卡時按不同的更可靠的協(xié)議(例如TCP/IP)來進行通信。
優(yōu)選地,在任一種情況下,實時操作系統(tǒng)被賦予對NIC的訪問優(yōu)先權(quán)。對于輸入數(shù)據(jù),實時操作系統(tǒng)優(yōu)選地對全部接收到的數(shù)據(jù)分組進行過濾,并將并非唯一地旨在用于實時操作系統(tǒng)上運行的應(yīng)用程序的全部數(shù)據(jù)分組傳送給通用操作系統(tǒng)。由此,在處理時間關(guān)鍵分組時不存在延遲。對于輸出數(shù)據(jù),優(yōu)選地,將優(yōu)先權(quán)賦予來自實時操作系統(tǒng)的數(shù)據(jù)。
根據(jù)以下說明和權(quán)利要求,本發(fā)明的其他方面、特征、實施例和優(yōu)點將變得顯而易見。


現(xiàn)在參照附圖,僅通過示例的方式來示出本發(fā)明的實施例,在附圖中圖1是示出其中可以實現(xiàn)本發(fā)明的計算機系統(tǒng)的框圖;圖2是示出第一實施例中存在的操作系統(tǒng)和主要部件的圖;圖3是更詳細(xì)地示出第一實施例中的參與網(wǎng)絡(luò)通信的軟件部件的圖;圖4a是示出已知的IP分組結(jié)構(gòu)的圖;圖4b是示出已知的UDP數(shù)據(jù)報結(jié)構(gòu)的圖;圖5是示出啟動操作系統(tǒng)時執(zhí)行的處理的流程圖;圖6是示出在一個操作系統(tǒng)下(按已知方式)啟動應(yīng)用程序時執(zhí)行的處理的流程圖;圖7a、7b和7c是示出通用操作系統(tǒng)執(zhí)行的處理的流程圖;并且圖8a、8b和8c是示出實時操作系統(tǒng)執(zhí)行的對應(yīng)處理的流程圖;
圖9是示出根據(jù)本發(fā)明第二實施例的基于IP的語音(VoIP)網(wǎng)絡(luò)的框圖;以及圖10是示出實現(xiàn)第二實施例的IP網(wǎng)絡(luò)的計算機中存在的軟件部件的圖。
具體實施例方式
系統(tǒng)硬件本系統(tǒng)適用的計算機系統(tǒng)100包括中央處理單元(CPU)102,例如可以從Intel公司獲得的Pentium 4TMCPU,或者可以從Motorola獲得的PowerPC CPU(本實施例在這兩者上都已獲得實現(xiàn)),經(jīng)由系統(tǒng)總線104(包括控制總線、數(shù)據(jù)總線和地址總線)將中央處理單元102連接到只讀存儲器(ROM)芯片106、一組或更多組隨機存取存儲器(RAM)芯片(108)、盤控制器裝置110(例如,與軟盤驅(qū)動器、硬盤驅(qū)動器、以及諸如DVD驅(qū)動器的附加可移動介質(zhì)驅(qū)動器相連接的IDE或SCSI控制器)、一個或更多個輸入/輸出端口(112)(例如,一個或更多個USB端口控制器,以及/或者用于連接到打印機等的并行端口控制器)、用于總線連接到外部外圍裝置或內(nèi)部外圍裝置的擴展總線114(例如,PCI總線)、以及其他系統(tǒng)芯片116(例如,圖形和聲音裝置)。還設(shè)置有網(wǎng)絡(luò)接口卡(NIC)118,用于經(jīng)由網(wǎng)絡(luò)(例如因特網(wǎng))傳送數(shù)據(jù)。
這種類型的計算機的示例為個人計算機(PC)和工作站。然而,本文還公開了本發(fā)明應(yīng)用于諸如主機、控制系統(tǒng)中的嵌入式微機、以及PDA(在這種情況下可以省略諸如盤驅(qū)動控制器的某些專用裝置)的其他計算機裝置的情況。
計算機系統(tǒng)被設(shè)置為經(jīng)由NIC連接到的網(wǎng)絡(luò)以及其他網(wǎng)絡(luò)(總體上包括因特網(wǎng))來與另一計算機系統(tǒng)(其可以實現(xiàn)本發(fā)明或者可以不實現(xiàn)本發(fā)明)傳送數(shù)據(jù)。為了進一步討論,將這些網(wǎng)絡(luò)統(tǒng)稱為因特網(wǎng)。
參照圖3,本發(fā)明被設(shè)置為運行包括以下部件的軟件·第一操作系統(tǒng)內(nèi)核201,包括實時操作系統(tǒng)內(nèi)核,例如C5操作系統(tǒng)(Jaluna-1的實時微內(nèi)核,第五代ChorusOS系統(tǒng)的開放源碼版,可以從http//www.jaluna.com作為開放源碼免費下載而獲得)。
·通用操作系統(tǒng)內(nèi)核202,其可以是Linux內(nèi)核版本2.4.20。按照我們前面引用的在先歐洲專利申請03290894.9中描述的方式略微修改所述內(nèi)核以使得可以并行執(zhí)行。
·硬件資源調(diào)度器400,其本身不是操作系統(tǒng),但被設(shè)置為加載并啟動多個操作系統(tǒng)201、202中的每一個并向其分配資源,并且調(diào)度這些操作系統(tǒng)的運行(即,在它們之間分割CPU時間),并在它們之間提供操作系統(tǒng)間通信鏈路以使得在不同操作系統(tǒng)上運行的應(yīng)用程序可以彼此通信(并使得操作系統(tǒng)可以彼此通信)。再一次地,在我們前面引用的在先歐洲專利申請03290894.9中給出了全部的細(xì)節(jié),在此通過引用并入其全部內(nèi)容。
各操作系統(tǒng)提供連接網(wǎng)絡(luò)的“中間件”軟件。在該實施例中,實時操作系統(tǒng)201提供網(wǎng)際協(xié)議(IP)堆棧、以及用于操縱用戶數(shù)據(jù)報協(xié)議(UDP/IP)的協(xié)議和用于在UDP/IP堆棧之上運行的RTP/RTCP數(shù)據(jù)通信協(xié)議。在本實施例中,UDP/IP堆棧優(yōu)選為按小分組尺寸進行操作以提供有保證的等待時間(即,最大延遲)和帶寬。
通用操作系統(tǒng)202提供IP堆棧206、以及UDP/IP協(xié)議、傳輸控制協(xié)議(TCP/IP)、超文本傳輸協(xié)議(HTTP)、文件傳輸協(xié)議(FTP)等。
通用操作系統(tǒng)提供操作系統(tǒng)用戶接口或展示層204(例如XWindows)。
最后,各個操作系統(tǒng)支持一個或更多個應(yīng)用程序207、208a、208b……。這些應(yīng)用程序通過它們正通過其操作的操作系統(tǒng)提供的應(yīng)用程序接口(API)來使用計算機資源。操作系統(tǒng)按照我們前面引用的在先歐洲申請03290894.9中描述的方式訪問硬件資源。具體地,對于操作系統(tǒng)排他訪問的裝置,它們使用各個操作系統(tǒng)的本地裝置驅(qū)動器程序,并且,對于必須共享的裝置,它們使用實時操作系統(tǒng)201的本地驅(qū)動器程序。
由此,通過硬件資源調(diào)度器400來為各操作系統(tǒng)201、202分配一些CPU時間,在該時間內(nèi),各操作系統(tǒng)在其運行的應(yīng)用程序的線程之間分配時間。
參照圖3,在本發(fā)明中,實時操作系統(tǒng)201為NIC提供驅(qū)動器程序252。驅(qū)動器程序?qū)?shù)據(jù)從NIC傳送到操作系統(tǒng)201,并將數(shù)據(jù)從操作系統(tǒng)201傳送到NIC 118。盡管通用操作系統(tǒng)202通常具有NIC驅(qū)動器程序,但在這種情況下該NIC驅(qū)動器程序由代理驅(qū)動器程序254來替代(如在我們前面引用的歐洲申請中所述),所述代理驅(qū)動器程序254不與NIC進行通信,而是與在實時操作系統(tǒng)201上運行的另一代理程序256進行通信。
使用由一個操作系統(tǒng)向其寫入并由另一操作系統(tǒng)從其讀取的共享存儲空間,這兩個操作系統(tǒng)經(jīng)由操作系統(tǒng)間通信總線260來進行通信,如在我們前面引用的在先歐洲專利申請中所公開的那樣。
由此,當(dāng)實時操作系統(tǒng)上運行的應(yīng)用程序需要進行通信時,它們通過NIC驅(qū)動器程序252來進行通信。當(dāng)通用操作系統(tǒng)上運行的應(yīng)用程序希望進行通信時,它們通過將數(shù)據(jù)經(jīng)通用操作系統(tǒng)代理254傳送到實時操作系統(tǒng)代理256以由實時操作系統(tǒng)NIC驅(qū)動器252進行處理,從而進行通信。在相反方向,在通用操作系統(tǒng)上運行的應(yīng)用程序經(jīng)由NIC驅(qū)動器252、實時操作系統(tǒng)協(xié)議堆棧205、以及代理256、254來接收其數(shù)據(jù),而不是直接從NIC卡接收數(shù)據(jù)。
在兩個代理驅(qū)動器254、256之間開有三個單工數(shù)據(jù)通信通道1-數(shù)據(jù)輸出通道,用于從實時UDP/IP堆棧轉(zhuǎn)發(fā)輸入數(shù)據(jù)分組,2-數(shù)據(jù)輸入通道,用于從通用操作系統(tǒng)接收輸出分組,3-控制輸入通道,用于接收通用操作系統(tǒng)發(fā)出的與NIC相關(guān)的輸入/輸出控制請求。由此,用戶通過通用操作系統(tǒng)202指示的對網(wǎng)絡(luò)接口配置的任何改變傳送到實時操作系統(tǒng)201,之后實時操作系統(tǒng)201根據(jù)更新后的網(wǎng)絡(luò)參數(shù)進行操作。例如,可以使用Linux IFCONFIG命令來改變各種網(wǎng)絡(luò)參數(shù);這樣的效果是兩個操作系統(tǒng)都繼續(xù)使用相同的公共參數(shù)組。因此,在其他事件中,對NIC的實時操作系統(tǒng)和通用操作系統(tǒng)示例都分配相同的物理(MAC)地址和IP地址。
為此,在本實施例中,通用代理254“探測”操作系統(tǒng)202進行的全部I/O控制呼叫,并將對應(yīng)的消息發(fā)送給實時代理256。
在本實施例中,通用代理254方便地實現(xiàn)Linux以太網(wǎng)驅(qū)動器因特網(wǎng)接口,因此其具有與網(wǎng)絡(luò)Linux以太網(wǎng)裝置相同的接口,并且操作系統(tǒng)202可以將其作為網(wǎng)絡(luò)Linux以太網(wǎng)裝置來處理。
實時操作系統(tǒng)201進一步設(shè)置有發(fā)送調(diào)度器258。發(fā)送調(diào)度器258的功能是確定經(jīng)由NIC驅(qū)動器252發(fā)送來自通用操作系統(tǒng)的哪些數(shù)據(jù),或者更一般地說,在兩個操作系統(tǒng)之間分配發(fā)送容量。
調(diào)度器將來自實時UDP/IP堆棧的分組處理為具有高優(yōu)先級,而將來自通用操作系統(tǒng)(經(jīng)由代理驅(qū)動器254、256)的分組處理為具有低優(yōu)先級。在本實施例中,如果來自實時操作系統(tǒng)的分組在等待發(fā)送,則調(diào)度器不發(fā)送來自通用操作系統(tǒng)的任何分組;相反,將等待發(fā)送的分組排隊以在可能時進行后續(xù)發(fā)送。
圖4a示出了IP分組的結(jié)構(gòu)。IP分組具有頭部302和數(shù)據(jù)部304。圖4b示出了UDP數(shù)據(jù)報的結(jié)構(gòu)。其占據(jù)分組的數(shù)據(jù)部304,并包括頭部306和數(shù)據(jù)308。通過IP地址和端口號來對分組定址。NIC接收具有相關(guān)IP地址的分組,NIC驅(qū)動器252將這些分組轉(zhuǎn)發(fā)到實時UDP/IP堆棧205。操作系統(tǒng)201、202中的每一個為使用IP堆棧205、206的各應(yīng)用程序分配端口號。為此,各操作系統(tǒng)具有其可以分配的端口號的列表。兩個端口號列表是互斥的。在本實施例中,它們是統(tǒng)計分配的;即,各操作系統(tǒng)永遠(yuǎn)被分配其自身的端口列表。
NIC 118接收各種類型的IP分組。這些IP分組包括廣播分組(其旨在用于網(wǎng)絡(luò)中的全部計算機并由網(wǎng)絡(luò)中的全部計算機接收)和定址到計算機100的分組。后者包括旨在用于實時操作系統(tǒng)上運行的應(yīng)用程序的UDP數(shù)據(jù)報(通過具有該操作系統(tǒng)分配的端口號來識別)以及具有表示其旨在用于通用操作系統(tǒng)202上運行的應(yīng)用程序的端口號的UDP、TCP或其他分組。
實時UDP/IP堆棧205被設(shè)置為處理旨在用于其應(yīng)用程序的分組,并且將有效負(fù)載數(shù)據(jù)提供給相關(guān)的應(yīng)用程序。在實時UDP/IP堆棧205遇到具有表示其屬于通用操作系統(tǒng)202的端口地址的分組的情況下,其將該分組經(jīng)由代理256、254轉(zhuǎn)發(fā)給通用操作系統(tǒng)202的TCP/IP堆棧,通用操作系統(tǒng)202的TCP/IP堆棧將該分組的有效負(fù)載路由到與所述端口對應(yīng)的應(yīng)用程序。
存在包含與兩個操作系統(tǒng)的IP堆棧相關(guān)的信息的分組。例如,兩個操作系統(tǒng)都讀取包含與給定IP地址對應(yīng)的物理地址的ARP應(yīng)答數(shù)據(jù)報分組是適宜的。這樣,各操作系統(tǒng)可以保持用于對將來的分組進行定址的地址表。
已經(jīng)描述了本實施例的軟件部件,現(xiàn)在公開本實施例的操作。
圖5示出了在計算機系統(tǒng)通電、重啟、重置或重舉時執(zhí)行的處理。在步驟402,如在我們前面引用的在先歐洲專利申請中所述,加載并啟動操作系統(tǒng)。在步驟404,也如其中所述,分配各種系統(tǒng)資源。這些資源中包括各操作系統(tǒng)的IP端口的子集。
與各端口相關(guān)聯(lián)的是包括發(fā)送隊列和接收隊列的套接字(socket)。將應(yīng)用程序產(chǎn)生的待發(fā)送分組保持在發(fā)送隊列中,并將為應(yīng)用程序接收的分組傳送到接收隊列。
在本實施例中,首先將預(yù)定的端口列表提供給實時操作系統(tǒng)201,然后其次,在第二操作系統(tǒng)下,為這些端口中的每一個分配虛擬的或偽的套接字。由此,通用操作系統(tǒng)就像已經(jīng)分配了端口一樣處理端口,并且不將這些端口分配給其運行的任何應(yīng)用程序。因此第二操作系統(tǒng)可以分配的端口子集對應(yīng)于除了已經(jīng)分配給實時操作系統(tǒng)的端口之外的可獲得的端口總數(shù)。
參照圖6,啟動在一個操作系統(tǒng)下運行的應(yīng)用程序時執(zhí)行的處理概述如下。加載應(yīng)用程序。在應(yīng)用程序需要通信的情況下,如使用常規(guī)操作系統(tǒng)那樣,在步驟406啟動IP堆棧(如果IP堆棧尚未運行的話)。在步驟408,相關(guān)的操作系統(tǒng)向應(yīng)用程序分配一個或更多個端口地址。除了所分配的端口是從上述步驟404中在啟動時提供給該操作系統(tǒng)的子集中取出的之外,該處理與在常規(guī)操作系統(tǒng)中一樣。然后像在常規(guī)操作系統(tǒng)中那樣啟動應(yīng)用程序(步驟410)。
當(dāng)關(guān)閉應(yīng)用程序時,如果有必要則釋放所使用的端口以用于后續(xù)重新分配。
現(xiàn)在將公開本實施例在通信期間的操作。通用操作系統(tǒng)202的操作本質(zhì)上是常規(guī)的,因此僅參照圖7(包括圖7a、7b和7c)簡要地對其進行公開。
圖7a示出了與將分組發(fā)送給連接到網(wǎng)絡(luò)的主機相關(guān)聯(lián)的步驟。在步驟452,網(wǎng)絡(luò)堆棧選擇(例如,在多個應(yīng)用程序之間按復(fù)用方式來選擇)由操作系統(tǒng)上運行的一個應(yīng)用程序208所產(chǎn)生的IP分組或幀。在步驟454,網(wǎng)絡(luò)堆棧將分組轉(zhuǎn)發(fā)給網(wǎng)絡(luò)接口代理驅(qū)動器程序254,網(wǎng)絡(luò)接口代理驅(qū)動器程序254在步驟455中將分組提供給實時代理驅(qū)動器程序256。在下文中將參照圖8來說明實時操作系統(tǒng)執(zhí)行的進一步處理。
圖7b示出了與從連接到網(wǎng)絡(luò)的主機接收分組相關(guān)聯(lián)的步驟。在步驟456,通用堆棧從NIC代理驅(qū)動器254讀取保持在其中的所接收分組,在步驟458,將該分組傳送給與該分組相關(guān)聯(lián)的應(yīng)用程序的套接字。在下文中將參照圖8來說明實時操作系統(tǒng)執(zhí)行的進一步處理。
圖7c示出了與對NIC進行配置相關(guān)聯(lián)的步驟。在步驟460,讀取在控制臺(console)輸入的網(wǎng)絡(luò)接口配置命令,在步驟462,將用于重新配置NIC的對應(yīng)指令傳送到NIC代理驅(qū)動器程序254。在下文中將參照圖8來說明實時操作系統(tǒng)執(zhí)行的進一步處理。
現(xiàn)在參照圖8(包括圖8a、8b和8c)來說明實時操作系統(tǒng)的對應(yīng)操作。
圖8a示出了與將分組發(fā)送給連接到網(wǎng)絡(luò)的主機相關(guān)聯(lián)的步驟。實時UDP/IP堆棧檢測是否存在來自其正在運行的任何應(yīng)用程序的分組(UDP數(shù)據(jù)報)(步驟472)。堆棧將該分組傳送到NIC驅(qū)動器252(步驟478)。在步驟476,調(diào)度器258從NIC代理256讀取全部等待分組(如以上關(guān)于圖7所述,所述等待分組是從通用操作系統(tǒng)接收到的)。在步驟478中,將全部這種分組傳送到NIC驅(qū)動器252以發(fā)送到網(wǎng)絡(luò)。
圖8b示出了與從網(wǎng)絡(luò)接收分組相關(guān)聯(lián)的步驟。一旦從網(wǎng)絡(luò)接收到幀,NIC就觸發(fā)使得CPU執(zhí)行實時系統(tǒng)中的NIC驅(qū)動器的中斷處理器(Interrupt Handler)的中斷。繼而,中斷處理器喚醒實時系統(tǒng)的專用于接收輸入網(wǎng)絡(luò)幀的特定輸入線程。該輸入線程讀取接收到的各幀并根據(jù)其類型和/或其目的地來傳遞各幀。如果該幀是目的地端口為初始對實時操作系統(tǒng)保留的UDP端口之一的UDP/IP分組,則立即將該分組排隊在綁定于該UDP端口的套接字之后。
參照圖8b,在步驟486中,線程從NIC驅(qū)動器252讀取分組。在步驟488,其讀取分組類型,并且在該分組包括端口地址的情況下讀取該端口。
在步驟490中,實時操作系統(tǒng)確定分組的目的地。如果該幀是目的地端口地址為對實時操作系統(tǒng)保留的UDP端口之一的UDP/IP分組,則立即將該分組列隊于綁定于該UDP端口的套接字(步驟492)。
如果分組是實時操作系統(tǒng)和通用操作系統(tǒng)都感興趣的類型,則在將其提供給通用系統(tǒng)前由實時操作系統(tǒng)UDP/IP堆棧對其進行處理(步驟494)。例如,分組可能是ARP應(yīng)答分組,攜帶有目的地主機的MAC地址和IP地址。在這種情況下,于是,在步驟494中實時操作系統(tǒng)使用該分組來更新其ARP表(即,所存儲的IP地址表),然后在步驟496中將該分組轉(zhuǎn)發(fā)給NIC代理驅(qū)動器254以轉(zhuǎn)發(fā)給通用操作系統(tǒng)(通用操作系統(tǒng)隨后將執(zhí)行相同的ARP表更新任務(wù))。
將所有其他類型的輸入網(wǎng)絡(luò)幀直接提供給通用系統(tǒng)的NIC代理驅(qū)動器,以由其網(wǎng)絡(luò)堆棧不同時地進行處理(步驟496)。由此,例如,將具有非實時操作系統(tǒng)目的地端口的UDP分組、TCP分組、以及所有其他分組轉(zhuǎn)發(fā)給實時操作系統(tǒng)。
圖8c示出了與對NIC進行配置相關(guān)聯(lián)的步驟。實時IP堆棧205檢查是否存在來自NIC代理256的新配置命令(步驟480),如果存在新配置命令,則讀取該命令(步驟482)并對NIC進行配置(步驟484)。
第二實施例基于網(wǎng)際協(xié)議的語音現(xiàn)在將描述對基于網(wǎng)際協(xié)議的語音(VoIP)電話的具體應(yīng)用,其實現(xiàn)傳統(tǒng)電話網(wǎng)絡(luò)與IP網(wǎng)絡(luò)之間的網(wǎng)關(guān)或“軟交換”。
參照圖9,在本實施例中,第一計算機(其根據(jù)本實施例進行操作)902用作電話網(wǎng)絡(luò)910與IP網(wǎng)絡(luò)(或經(jīng)由因特網(wǎng)互連的網(wǎng)絡(luò)組)908之間的網(wǎng)關(guān)。其經(jīng)由網(wǎng)絡(luò)908與第二計算機904進行通信,第二計算機904提供語音鏈路的另一端(它可以是運行基于網(wǎng)際協(xié)議的語音軟件的個人計算機,或另一網(wǎng)關(guān))。其還與VoIP服務(wù)供應(yīng)商的計費計算機906進行通信。
圖10示出了第一計算機902中存在的除第一實施例中所描述的部件以外的附加部件。
參照圖10,對于各個雙工語音通道,設(shè)置有包括經(jīng)由處理器模塊930互連的VoIP模塊910和電話接口模塊914的電話通道系統(tǒng)。
電話接口模塊914取決于電話網(wǎng)絡(luò)910的特性。例如,對于數(shù)字電話,其按脈沖碼調(diào)制(PCM)格式來對語音信號進行編碼和解碼;對于移動電話網(wǎng)絡(luò),其按低比特率編碼格式進行編碼和解碼;對于模擬電話網(wǎng)絡(luò),其包括模數(shù)轉(zhuǎn)換器(ADC)和數(shù)模轉(zhuǎn)換器(DAC)。
VoIP模塊910包括執(zhí)行RTP/RTCP(實時協(xié)議/實時控制協(xié)議)916的程序作為實時操作系統(tǒng)201上的應(yīng)用程序。作為實時操作系統(tǒng)IP堆棧的一部分的UDP/IP堆棧205(如上所述)將RTP/RTCP數(shù)據(jù)格式化為UDP數(shù)據(jù)報。
在電話接口914接收來自電話網(wǎng)絡(luò)910的語音數(shù)據(jù),處理器930將其轉(zhuǎn)換為RTP/RTCP格式,處理器930包括一個或更多個專用于轉(zhuǎn)換任務(wù)的DSP(數(shù)字信號處理)裝置。然后將經(jīng)碼轉(zhuǎn)換的數(shù)據(jù)作為UDP數(shù)據(jù)報從網(wǎng)關(guān)計算機902發(fā)送到IP網(wǎng)絡(luò)908,定址到第二計算機904的IP地址。
在返回方向,由處理器930對從IP網(wǎng)絡(luò)908接收到的定址到第一計算機902并具有VoIP模塊910的端口地址的UDP數(shù)據(jù)報進行碼轉(zhuǎn)換,并且將其提供給電話接口914并從電話接口914提供給電話網(wǎng)絡(luò)910,從而提供返回通道。
控制引擎914包括運行SIP(會話啟動協(xié)議)、用于因特網(wǎng)電話的信令協(xié)議、事件通知以及其他通信的程序。它是在通用操作系統(tǒng)202上運行并且通過通用操作系統(tǒng)TCP/IP堆棧206進行操作的應(yīng)用程序??刂谱酉到y(tǒng)912被設(shè)置為通過經(jīng)IP網(wǎng)絡(luò)908向第二計算機904和計費計算機906發(fā)送信號并從第二計算機904和計費計算機906接收信號來建立與第二計算機904的呼叫會話。類似地,控制子系統(tǒng)912被設(shè)置為在呼叫結(jié)束時切斷呼叫。
在操作中,當(dāng)從電話網(wǎng)絡(luò)910開始呼叫時,SIP引擎920對來自電話網(wǎng)絡(luò)的信令信息進行解碼并使用,以通過建立第二計算機的IP地址并將第一計算機的IP地址傳送給第二計算機并且將會話開始通知給計費計算機906從而建立對第二計算機的呼叫。
在呼叫期間,將來自電話網(wǎng)絡(luò)910的呼叫數(shù)據(jù)通過IP網(wǎng)絡(luò)908經(jīng)由接口914、910轉(zhuǎn)發(fā)給第二計算機904;并且將該呼叫數(shù)據(jù)沿反方向從第二計算機904提供給電話網(wǎng)絡(luò)910。在呼叫期間,控制子系統(tǒng)912監(jiān)視呼叫,并且可以將結(jié)果提供給通用操作系統(tǒng)202的用戶接口204并從用戶接口204接收網(wǎng)絡(luò)配置和其他控制輸入。
在呼叫結(jié)束時,當(dāng)從任一端終止呼叫時,控制子系統(tǒng)912對電話網(wǎng)絡(luò)910或第二計算機904(取決于從哪里終止呼叫)執(zhí)行切斷信令,并向計費計算機906發(fā)送表示計費參數(shù)(例如,呼叫的持續(xù)時間和目的地)的計費消息。
呼叫通道的數(shù)量取決于呼叫的目的,因此設(shè)置在第一計算機902內(nèi)的VoIP模塊和電話接口模塊以及處理器的數(shù)量取決于呼叫的目的。其可以是提供單個通道的獨立的計算機電話集成(CTI)終端,或者提供少量通道的PBX,或者提供數(shù)百個通道或更多通道的網(wǎng)絡(luò)互連節(jié)點。
在本實施例中可以看出,通過使用實時操作系統(tǒng)連同大小有限制的UDP數(shù)據(jù)報,可以提供高可靠、低延遲的電話連接。還可以在呼叫之前、呼叫期間、以及呼叫之后經(jīng)由通用操作系統(tǒng)來提供控制信令和計費信令,由此能夠提供復(fù)雜的信令應(yīng)用程序和計費功能,并使得通過用戶接口204容易地與用戶交互。
其他實施例和變型例根據(jù)上述情況,很明顯,可以對所述實施例進行許多修改、變型和替換。例如,盡管按IP進行操作,公開了Linux和Chorus系統(tǒng),但是本發(fā)明同樣適用于現(xiàn)有的或者將來可能開發(fā)的其他通信協(xié)議和其他操作系統(tǒng)。
盡管描述了靜態(tài)地分配端口,但也可以動態(tài)地改變對端口的分配。例如,實時操作系統(tǒng)可以通過去除端口的套接字指派來在它不再需要這些端口時釋放這些端口,以使得這些端口可以用于通用操作系統(tǒng)。同樣,實時操作系統(tǒng)可以通過相同的方法要求使用來自通用操作系統(tǒng)的更多端口。
盡管描述了在單個處理器上并行運行的兩個操作系統(tǒng)的操作,但是很明顯,很容易將所述操作系統(tǒng)間總線替換為物理通信總線,并且在不同的處理器或不同的平臺上運行所述操作系統(tǒng)。
盡管描述了VoIP,但是也可以使用本發(fā)明提供諸如音頻流(例如,音樂、因特網(wǎng)廣播等)和視頻流(例如,點播視頻)的其他應(yīng)用。
可以有很多其他變型。為避免疑惑,本申請旨在保護本文的任何和全部主旨及其子組合。
權(quán)利要求
1.一種被配置為用于通信的計算機系統(tǒng),包括處理器(102);在處理器(102)上運行的第一操作系統(tǒng)(201);在處理器(102)上運行的第二操作系統(tǒng)(202);以及用于傳送數(shù)據(jù)的網(wǎng)絡(luò)接口(118),其中,第一操作系統(tǒng)和第二操作系統(tǒng)被設(shè)置為共享所述網(wǎng)絡(luò)接口(118)的使用;其特征在于,所述網(wǎng)絡(luò)接口使用兩個操作系統(tǒng)共用的單組網(wǎng)絡(luò)邏輯地址來進行操作。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,第一操作系統(tǒng)(201)為實時操作系統(tǒng)。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,第二操作系統(tǒng)(202)為通用操作系統(tǒng)。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,與第一操作系統(tǒng)相關(guān)聯(lián)的代碼(205)被設(shè)置為接收全部輸入分組,并將那些并非由第一操作系統(tǒng)(201)或其上運行的應(yīng)用程序(207)專用的分組轉(zhuǎn)發(fā)給第二操作系統(tǒng)(202)。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),包括發(fā)送調(diào)度器(258),所述發(fā)送調(diào)度器(258)被設(shè)置為選擇性地轉(zhuǎn)發(fā)來自第一操作系統(tǒng)和第二操作系統(tǒng)(201、202)的用于通過網(wǎng)絡(luò)接口(118)進行發(fā)送的輸出數(shù)據(jù)分組。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其中,發(fā)送調(diào)度器(258)被設(shè)置為將優(yōu)先權(quán)賦予第一操作系統(tǒng)(201)。
7.根據(jù)權(quán)利要求5所述的系統(tǒng),其中,發(fā)送調(diào)度器(258)被設(shè)置為在存在來自第一操作系統(tǒng)(201)的發(fā)送分組時不發(fā)送來自第二操作系統(tǒng)(202)的任何分組。
8.根據(jù)權(quán)利要求1所述的系統(tǒng),其被設(shè)置為使用網(wǎng)際協(xié)議進行通信。
9.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,第一操作系統(tǒng)包括用于處理UDP數(shù)據(jù)報的UDP/IP堆棧(205)。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,第二操作系統(tǒng)包括TCP/IP協(xié)議堆棧(206)。
11.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述第一操作系統(tǒng)和第二操作系統(tǒng)(201、202)在單個處理器(102)上運行。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),包括操作系統(tǒng)間通信通道(260),所述操作系統(tǒng)間通信通道(260)用于在所述第一操作系統(tǒng)與第二操作系統(tǒng)(201、202)之間和/或在所述第一操作系統(tǒng)和第二操作系統(tǒng)(201、202)上運行的應(yīng)用程序(207、208)之間傳送消息。
13.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,第一操作系統(tǒng)(201)具有地址端口的第一子集,第二操作系統(tǒng)(202)具有地址端口的第二子集,所述子集各自包括至少一個地址端口,所述第一子集和第二子集是互斥的。
14.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,第二操作系統(tǒng)(202)提供使得用戶可以對網(wǎng)絡(luò)接口(118)進行配置的命令。
15.根據(jù)權(quán)利要求1所述的系統(tǒng),包括用于提供實時數(shù)據(jù)發(fā)送通道以傳送數(shù)據(jù)以及相關(guān)聯(lián)的控制和/或監(jiān)視信號的代碼,其中,所述代碼包括在所述第一操作系統(tǒng)下操作以傳送所述數(shù)據(jù)的第一代碼;以及在所述第二操作系統(tǒng)下操作以傳送所述控制和/或監(jiān)視信號的第二代碼。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,第一操作系統(tǒng)被設(shè)置為使用UDP/IP協(xié)議堆棧來傳送所述數(shù)據(jù)。
17.一種基于因特網(wǎng)的語音通信系統(tǒng),包括并行運行第一操作系統(tǒng)和第二操作系統(tǒng)(201、202)的計算機(100),第一操作系統(tǒng)(201)為實時操作系統(tǒng),第二操作系統(tǒng)(202)為通用操作系統(tǒng),其中,第一操作系統(tǒng)被設(shè)置為使用相應(yīng)的第一TCP/IP堆棧來傳送語音數(shù)據(jù),第二操作系統(tǒng)(201)被設(shè)置為使用相應(yīng)的第二TCP/IP堆棧來傳送信令和/或監(jiān)視數(shù)據(jù),所述第一TCP/IP堆棧和第二TCP/IP堆棧共享共用的IP地址。
18.一種對計算機提供網(wǎng)絡(luò)訪問的方法,包括以下步驟在計算機上設(shè)置第一操作系統(tǒng)和第二操作系統(tǒng),所述第一操作系統(tǒng)和第二操作系統(tǒng)并行運行,其特征在于共享邏輯網(wǎng)絡(luò)地址;以及使得所述兩個操作系統(tǒng)可以共享對所述計算機的網(wǎng)絡(luò)接口的訪問。
19.一種計算機程序產(chǎn)品,包括用于使得計算機(100)執(zhí)行權(quán)利要求18所述的方法的代碼。
20.一種被配置為用于通信的計算機系統(tǒng),包括處理器(102);在處理器上運行的第一操作系統(tǒng);在處理器上運行的第二操作系統(tǒng);以及用于傳送數(shù)據(jù)的網(wǎng)絡(luò)接口(118),其特征在于,第一操作系統(tǒng)和第二操作系統(tǒng)被設(shè)置為共享所述網(wǎng)絡(luò)接口的使用。
全文摘要
一種被配置為用于通信的計算機系統(tǒng),包括處理器;在處理器上運行的第一操作系統(tǒng);在處理器上運行的第二操作系統(tǒng);以及用于傳送分組數(shù)據(jù)的網(wǎng)絡(luò)接口,其特征在于,第一操作系統(tǒng)和第二操作系統(tǒng)被設(shè)置為共享對所述網(wǎng)絡(luò)接口的訪問。
文檔編號H04M1/253GK1849587SQ200480025081
公開日2006年10月18日 申請日期2004年6月18日 優(yōu)先權(quán)日2003年7月30日
發(fā)明者弗拉迪米爾·格魯齊德夫, 伊萬·布勒 申請人:扎魯納股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1