電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 1810|回復(fù): 0
收起左側(cè)

怎么學(xué)嵌入式外圍帶電路_CORBA在分布式嵌入式實(shí)時(shí)系統(tǒng)中的應(yīng)用

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級(jí)會(huì)員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-7-30 14:46:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
怎么學(xué)嵌入式外圍帶電路_CORBA在分布式嵌入式實(shí)時(shí)系統(tǒng)中的應(yīng)用,   



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

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

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

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

與普通臺(tái)式機(jī)相比,嵌入式系統(tǒng)具有以下特點(diǎn):

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

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

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

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

(2)異構(gòu)系統(tǒng)(Heterogeneous Systems)。分布式系統(tǒng)必須無縫集成各種不同層次的異構(gòu)系統(tǒng),如網(wǎng)絡(luò)、操作系統(tǒng)、編程語(yǔ)言。要求用標(biāo)準(zhǔn)的分布式中間件來實(shí)現(xiàn)不同語(yǔ)言、數(shù)據(jù)格式和調(diào)用方法的對(duì)象之間的相互通信。

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

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

2CORBA在分布式系統(tǒng)上應(yīng)用的優(yōu)勢(shì)

CORBA(Common Object Request Broker Architecture,公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu))是由OMG組織發(fā)布的開放的軟件標(biāo)準(zhǔn),是目前最流行的中間件平臺(tái)。CORBA 僅定義接口,不定義具體實(shí)現(xiàn)方式,各廠商或研究機(jī)構(gòu)都可以根據(jù)規(guī)范進(jìn)行具體實(shí)現(xiàn)。目前很多主流的軟件供應(yīng)商都提供對(duì)CORBA的支持。

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

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

CORBA支持各種面向?qū)ο蟮木幊陶Z(yǔ)言,如C++和JAVA。特別需要強(qiáng)調(diào)的是:CORBA將遠(yuǎn)程調(diào)用也封裝在對(duì)象中,對(duì)程序員隱藏了底層的通信細(xì)節(jié)。程序員對(duì)分布式對(duì)象的引用與集中式環(huán)境下的引用基本相同,因此可以大大提高軟件的生產(chǎn)效率。

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

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

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

實(shí)時(shí)CORBA的接口和機(jī)制可以保證ORB和應(yīng)用程序成為可預(yù)測(cè)的組合。應(yīng)用程序通過使用實(shí)時(shí)CORBA的接口來管理資源;ORB機(jī)制協(xié)調(diào)組成應(yīng)用程序的行為;實(shí)時(shí)CORBA則通過實(shí)時(shí)操作系統(tǒng)來調(diào)度線程和處理資源競(jìng)爭(zhēng)。

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

如圖2所示,實(shí)時(shí)CORBA規(guī)范對(duì)CORBA體系結(jié)構(gòu)的主要擴(kuò)展是調(diào)度服務(wù)和優(yōu)先級(jí)映射。

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

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

(1)處理器資源管理

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

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

(2)存儲(chǔ)管理

Real-Time CORBA的存儲(chǔ)管理是通過進(jìn)程池來實(shí)現(xiàn)的。本地操作系統(tǒng)給CORBA子系統(tǒng)分配一定數(shù)量的進(jìn)程數(shù)目,并根據(jù)請(qǐng)求參數(shù)配置進(jìn)程可用的存儲(chǔ)資源。

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

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

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

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

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

4用CORBA建立分布式嵌入式系統(tǒng)的方案

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

(1)減少內(nèi)存使用

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

(2)特殊配置

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

(3)利用代理

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

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

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

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表