<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > CORBA在分布式嵌入式實(shí)時(shí)系統中的應用

CORBA在分布式嵌入式實(shí)時(shí)系統中的應用

作者: 時(shí)間:2011-05-19 來(lái)源:網(wǎng)絡(luò ) 收藏

隨著(zhù)嵌入式實(shí)時(shí)系統的飛速發(fā)展,它已被廣泛應用到軍事、通信、工業(yè)控制等領(lǐng)域。近年來(lái),嵌入式操作系統、嵌入式芯片都日漸成熟,嵌入式軟件開(kāi)發(fā)方式也發(fā)生了很大改變。嵌入式實(shí)時(shí)系統的發(fā)展方向之一是建立分布式系統。在通信和軍事領(lǐng)域,各種嵌入式設備之間需要進(jìn)行實(shí)時(shí)通信,而且各種設備往往建立在異構的軟硬件平臺上。實(shí)現了在分布式系統上的面向對象編程,比較適合建立分布式異構系統。但是由于傳統的對存儲容量要求較大,且不能滿(mǎn)足實(shí)時(shí)要求,因而在分布式實(shí)時(shí)嵌入式系統中的應用受到限制。軟件技術(shù)和硬件設備的發(fā)展為建立鋪平了道路。技術(shù)和嵌入式系統的結合成為當前的研究熱門(mén)之一。本文首先分析了的特點(diǎn)和要求,然后對實(shí)時(shí)CORBA處理器、內存和網(wǎng)絡(luò )資源管理的主要技術(shù)進(jìn)行總結,在此基礎上,提出了利用CORBA技術(shù)建立的三種方案。

1 分布式嵌入式實(shí)時(shí)系統的軟硬件要求

1.1 嵌入式系統的特點(diǎn)

嵌入式系統是指除了臺式機、筆記本電腦和主機的計算系統外的、嵌入到設備環(huán)境中、自治地執行既定操作的專(zhuān)用計算機系統,一般由處理器、感應器和反應器組成。越來(lái)越多的消費類(lèi)電子產(chǎn)品、辦公自動(dòng)化設備、商務(wù)設備和汽車(chē)等應用環(huán)境中都有嵌入式系統。

與普通臺式機相比,嵌入式系統具有以下特點(diǎn):

(1)功能單一。嵌入式系統一般應用在各種專(zhuān)業(yè)領(lǐng)域,其軟硬件都針對最終功能進(jìn)行裁剪,不具備通用性。
(2)資源限制。為了降低成本,嵌入式系統的資源都受到嚴格限制,主要為處理器資源、存儲器資源和網(wǎng)絡(luò )資源。
(3)反應性與實(shí)時(shí)性。嵌入式系統一般采用實(shí)時(shí)操作系統,進(jìn)程調度采用搶占式調度策略。

本文引用地址:http://dyxdggzs.com/article/257874.htm

1.2 分布式嵌入式實(shí)時(shí)系統的關(guān)鍵設計因素

所謂分布式系統,是指各種嵌入式實(shí)時(shí)設備除了自治完成其特定功能之外,還必須通過(guò)網(wǎng)絡(luò )互聯(lián)實(shí)現相互之間的通信,以完成數據傳輸、遠程控制等功能。分布式嵌入式實(shí)時(shí)系統的關(guān)鍵設計因素包括:

(1)分布適應性(Distribution Flexibility)。分布式系統的底層結構必須支持位置透明性,應用程序不必處理目標對象的物理位置。遠程通信時(shí),程序員不必關(guān)心發(fā)現對象、使用網(wǎng)絡(luò )進(jìn)行通信等細節。這樣既可以隔離網(wǎng)絡(luò )底層與應用高層,支持異構系統,也有利于對系統進(jìn)行擴展和維護。

(2)異構系統(Heterogeneous Systems)。分布式系統必須無(wú)縫集成各種不同層次的異構系統,如網(wǎng)絡(luò )、操作系統、編程語(yǔ)言。要求用標準的分布式中間件來(lái)實(shí)現不同語(yǔ)言、數據格式和調用方法的對象之間的相互通信。

  (3)分布實(shí)時(shí)限制(Distributed Real-Time Constrains)。在分布式嵌入式實(shí)時(shí)系統中,必須對遠程過(guò)程調用的通信延遲進(jìn)行考慮,硬件和通信協(xié)議的選擇對延遲都有很大影響。

(4)內存限制(Memory Limitation)。在每個(gè)嵌入式芯片上安裝的系統軟件、通信軟件和應用軟件都受到嚴格的內存限制。必須選擇合適的軟件并可以進(jìn)行特殊的裁剪以降低存儲容量的消耗和提高內存使用和訪(fǎng)問(wèn)效率。

2 CORBA在分布式系統上應用的優(yōu)勢

CORBA(Common Object Request Broker Architecture,)是由OMG組織發(fā)布的開(kāi)放的軟件標準,是目前最流行的中間件平臺。CORBA 僅定義接口,不定義具體實(shí)現方式,各廠(chǎng)商或研究機構都可以根據規范進(jìn)行具體實(shí)現。目前很多主流的軟件供應商都提供對CORBA的支持。

分布式系統有多種實(shí)現方案,如:多計算機系統、網(wǎng)絡(luò )操作系統、基于中間件的操作系統。其不同點(diǎn)主要是透明度、異構性和可擴展性?;谥虚g件的操作系統透明度比較高,例如CORBA可以提供訪(fǎng)問(wèn)透明性、位置透明性、復制透明性、安全透明性等。CORBA通過(guò)中間件的形式提供多種通用服務(wù),大大降低了開(kāi)發(fā)分布式應用程序的生命周期和成本,降低了程序出錯的可能性。

如圖1所示,客戶(hù)程序通過(guò)名稱(chēng)服務(wù)等方法獲得遠程對象的引用后就可以調用遠程對象的方法。在客戶(hù)機上的樁(stub)模擬服務(wù)器上的實(shí)際對象,程序員只需要調用對象的方法而不必關(guān)心對象是在本地還是遠程。方法調用通過(guò)底層的ORB(對象請求代理)進(jìn)行參數和返回值的包裝與解包,ORB可以屏蔽不同的網(wǎng)絡(luò )協(xié)議。同時(shí)ORB以中間件的形式提供多種通用服務(wù),可以大大降低程序員的編程代價(jià)。

CORBA支持各種面向對象的編程語(yǔ)言,如C++和JAVA。特別需要強調的是:CORBA將遠程調用也封裝在對象中,對程序員隱藏了底層的通信細節。程序員對分布式對象的引用與集中式環(huán)境下的引用基本相同,因此可以大大提高軟件的生產(chǎn)效率。

3 實(shí)時(shí)CORBA的資源管理

通用的CORBA并不提供對實(shí)時(shí)系統的支持,這阻礙了CORBA在實(shí)時(shí)嵌入式系統中的應用。為此,OMG對CORBA進(jìn)行了擴展,于2002年提出了Real-time CORBA規范1.0版,但它僅支持靜態(tài)調度;2003年11月OMG推出了Real-time CORBA規范2.0版,以支持動(dòng)態(tài)調度。Real-time CORBA的目標是通過(guò)實(shí)施系統行為的端到端的可預測性(End-to-End Predictability)和提供對資源管理的支持來(lái)滿(mǎn)足實(shí)時(shí)要求。實(shí)時(shí)CORBA犧牲了CORBA的部分通用特性來(lái)支持實(shí)時(shí)系統的開(kāi)發(fā)。應用程序開(kāi)發(fā)過(guò)程中,必須進(jìn)行顯式的資源請求,資源的分配可以靜態(tài)處理。

在優(yōu)先級固定的CORBA系統中,所謂“端到端的可預測性”是指:(1)在處理CORBA調用而發(fā)生資源競爭時(shí)遵守客戶(hù)機與服務(wù)器之間的線(xiàn)程優(yōu)先級;(2)端到端進(jìn)行處理時(shí)限定發(fā)生優(yōu)先級反轉的時(shí)間長(cháng)度;(3)限定操作調用的延遲。

實(shí)時(shí)CORBA的接口和機制可以保證ORB和應用程序成為可預測的組合。應用程序通過(guò)使用實(shí)時(shí)CORBA的接口來(lái)管理資源;ORB機制協(xié)調組成應用程序的行為;實(shí)時(shí)CORBA則通過(guò)實(shí)時(shí)操作系統來(lái)調度線(xiàn)程和處理資源競爭。

Real-time CORBA規范中抽象的“活動(dòng)”被具體化為三種處于不同階段的實(shí)體,即傳輸協(xié)議中的消息、內存中的請求以及被調度到處理器上運行的線(xiàn)程。這三個(gè)階段分別被稱(chēng)為“傳輸中”、“靜態(tài)的”和“活動(dòng)的”。實(shí)時(shí)CORBA可以對這三種狀態(tài)中的活動(dòng)進(jìn)行作用。應用程序開(kāi)發(fā)人員必須通過(guò)實(shí)時(shí)CORBA提供的界面對“活動(dòng)”的狀態(tài)進(jìn)行界定。

如圖2所示,實(shí)時(shí)CORBA規范對CORBA體系結構的主要擴展是調度服務(wù)和優(yōu)先級映射。

CORBA實(shí)時(shí)嵌入式系統包括4個(gè)主要的組成部分:操作系統、實(shí)時(shí)ORB、通信傳輸、應用程序。為了保證整個(gè)嵌入式系統滿(mǎn)足實(shí)時(shí)要求,系統的各組成部分及其相互之間的結合都應具有時(shí)間上的確定性。

Real-time CORBA必須建立在嵌入式設備的本機實(shí)時(shí)操作系統基礎上,利用本地的實(shí)時(shí)操作系統進(jìn)行處理器資源、存儲資源和網(wǎng)絡(luò )資源的管理,以實(shí)現整個(gè)系統上端到端的可預測性。

(1)處理器資源管理

CORBA進(jìn)行處理器資源管理的策略是將網(wǎng)絡(luò )任務(wù)的優(yōu)先級映射到實(shí)時(shí)操作系統的優(yōu)先級隊列中。有二種映射方法:一種是將網(wǎng)絡(luò )ORB請求映射到整個(gè)實(shí)時(shí)操作系統的優(yōu)先級范圍;另一種是映射到本地實(shí)時(shí)操作系統優(yōu)先級的一個(gè)子集上。

優(yōu)先級繼承與傳播:在運行過(guò)程中,進(jìn)程會(huì )創(chuàng )建子進(jìn)程,不同的進(jìn)程之間相互調用,如果不支持優(yōu)先級繼承和傳播,則無(wú)法保證正確的優(yōu)先級關(guān)系。被調用進(jìn)程的優(yōu)先級必須大于或等于調用進(jìn)程的優(yōu)先級。因此在調用時(shí),必須動(dòng)態(tài)改變被調用進(jìn)程的優(yōu)先級。

(2)存儲管理

Real-Time CORBA的存儲管理是通過(guò)進(jìn)程池來(lái)實(shí)現的。本地操作系統給CORBA子系統分配一定數量的進(jìn)程數目,并根據請求參數配置進(jìn)程可用的存儲資源。

CORBA進(jìn)程申請緩沖區時(shí),操作系統會(huì )對系統空閑區加鎖,然后再根據請求分配存儲區域。當系統空閑區不能滿(mǎn)足連續分配時(shí),系統將對內存區域進(jìn)行移動(dòng)或合并,這一過(guò)程中進(jìn)程處于等待狀態(tài)。更嚴重的是,如果此時(shí)出現一個(gè)更高優(yōu)先級的內存請求,則不管當前是否能滿(mǎn)足,由于已經(jīng)加鎖,這一高優(yōu)先級的進(jìn)程只能等待低優(yōu)先級進(jìn)程結束并釋放資源。解決方法是預先分配不同的內存池供不同進(jìn)程使用,這樣,進(jìn)程之間不再互斥共享存儲區域。

(3)網(wǎng)絡(luò )資源管理

  在多任務(wù)嵌入式操作系統中,多個(gè)進(jìn)程可能并發(fā)要求網(wǎng)絡(luò )進(jìn)行數據傳輸。傳統CORBA一般采用復用技術(shù)以降低硬件開(kāi)銷(xiāo),即只有一個(gè)端口和單線(xiàn)連接,程序與通信端口之間的綁定是隱式的,實(shí)際的綁定被延遲到有數據傳輸請求時(shí)。但是這種網(wǎng)絡(luò )復用無(wú)法保證實(shí)時(shí)性。一般情況下,網(wǎng)絡(luò )資源屬于不可搶奪資源,因此高優(yōu)先級的進(jìn)程必須等待低優(yōu)先級進(jìn)程完成后才能使用網(wǎng)絡(luò )。為了保證實(shí)時(shí)性,可以為多個(gè)任務(wù)申請不同的端口和專(zhuān)線(xiàn)連接,程序與通信端口之間的連接綁定進(jìn)行預先分配。由于嵌入式系統功能比較單一,在設計系統時(shí)事先可以確定所需要的最大連接數目,所以這種方案是可行的,只是網(wǎng)絡(luò )硬件資源的利用率可能比較低。一種改進(jìn)的方案是設立不同優(yōu)先級的端口和連接,ORB根據請求的優(yōu)先級動(dòng)態(tài)確定使用的端口和連接。為了確保網(wǎng)絡(luò )連接的實(shí)時(shí)性,可以針對不同情況選擇以下的策略:

①選擇協(xié)議:除了TCP/IP協(xié)議,可以根據實(shí)際要求采用其他網(wǎng)絡(luò )協(xié)議以提高數據傳輸速度。
②私有連接:通過(guò)專(zhuān)線(xiàn)連接,線(xiàn)路沒(méi)有復用和共享。這種方法代價(jià)較大,但是對實(shí)時(shí)性的支持也最大。
③多路連接:可以支持線(xiàn)路復用,也可以提高容錯性能,連接的管理可以對應用程序透明。這樣,ORB必須提供適當的機制以確保高優(yōu)先級任務(wù)優(yōu)先獲得連接,另外,也可以由程序員顯式綁定。

利用上述各種資源管理策略,實(shí)時(shí)CORBA可實(shí)現各種軟實(shí)時(shí)和硬實(shí)時(shí)系統的QoS要求。

4 用CORBA建立分布式嵌入式系統的方案

目前,針對不同的應用場(chǎng)合,在內存資源受到嚴格限制的嵌入式設備上建立分布式系統的方法大致分成三類(lèi)。

(1)減少內存使用

OMG于2002年8月推出了minimum CORBA規范1.0版以滿(mǎn)足一些內存受到限制的系統的需求,包括軟實(shí)時(shí)嵌入式系統。minimum CORBA是CORBA的一個(gè)子集,它對CORBA的某些部分進(jìn)行了裁剪,去除了在嵌入式系統中不需要的部分,要求是去除這些部分后的minimal CORBA仍然能滿(mǎn)足可移植性和可互操作性等性能。由于嵌入式系統的專(zhuān)用性,通常,在編譯時(shí)刻都可以確定系統的功能,因此動(dòng)態(tài)調用接口(DII)、動(dòng)態(tài)框架接口(DSI)等部分都被省略。經(jīng)過(guò)裁剪的CORBA(如ORBexpress)的靜態(tài)內存占用可以降低至100KB以下。minimum CORBA并不提供對硬實(shí)時(shí)系統的支持。如果需要實(shí)現硬實(shí)時(shí)系統,則必須選擇滿(mǎn)足Real-Time CORBA規范的產(chǎn)品,如華盛頓大學(xué)開(kāi)發(fā)的TAO。

(2)特殊配置

可針對各種設備專(zhuān)門(mén)設計ORB系統,如應用在手持設備上的PalmORB。各種設備對資源的需求是不一樣的,而且在系統設計時(shí)可以確定,因此可以對CORBA進(jìn)行更多的裁剪。這種方案往往由專(zhuān)業(yè)廠(chǎng)商來(lái)實(shí)現,其特殊性比較強,一般不具備通用性,可擴展性能也比較差,這里不作詳細介紹。

(3)利用代理

UORB(Ubiquitous Object Request Broker)是Universidade Federal de Pernambuco大學(xué)的G N Rodrigues首先提出的,它類(lèi)似于sun公司的Jini Surrogate Architecture。UORB不需要在嵌入式設備內安裝ORB系統,嵌入式設備通過(guò)線(xiàn)路與一臺安裝了ORB的計算機相連,相互之間通過(guò)私有協(xié)議進(jìn)行通信。ORB網(wǎng)關(guān)與其他計算機互連,用IIOP進(jìn)行通信,代理主機上用軟件實(shí)現對象代理,即構造嵌入式系統的虛擬對象。對除代理主機以外的其他計算機,可以把嵌入式設備當成一般的設備進(jìn)行通信。

CORBA代理模型不需要在設備上安裝ORB庫就允許設備加入CORBA網(wǎng)絡(luò )環(huán)境。CORBA處理不是在嵌入式設備上而是位于代理主機上。這種方式是受到Jini Surrogate Architecture的啟發(fā)而提出的。嵌入式設備不能直接與網(wǎng)絡(luò )上的其他設備或主機進(jìn)行通信,而必須通過(guò)安裝了此設備代理的主機間接地與網(wǎng)絡(luò )上其他設備進(jìn)行通信。在嵌入式設備上的存儲資源要求很低,對設備的要求只是設備必須與代理主機進(jìn)行連接和通信。

以上三種方式對嵌入式設備的各種資源要求越來(lái)越少,每種方式都有其適用的范圍,分別被不同的系統所采用。

c++相關(guān)文章:c++教程




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>