2017-10-28 124 views
0

如今「實時」這個概念有很多不同的解釋。在這question提供了兩個定義:通信中間件如何支持軟實時應用程序?

硬實時定義認爲任何錯過的最後期限是系統故障。這種調度被廣泛用於任務關鍵型系統,如果不符合時序約束條件會導致壽命或財產損失。

軟實時定義允許頻頻失手的最後期限,只要任務執行及時的結果繼續有值。已完成的任務可能會在截止日期前增加價值,並且會越過價值遞減。

在我的研究,我來到了以下結論:

  • 中間件支持硬實時的,如果它提供可預測的和有效的對系統資源的終端到終端的控制。就像設置由中間件創建的所有線程的線程優先級一樣。
  • 在我看來,良好的性能是支持軟實時應用程序最相關的因素。

這是真的嗎?通信中間件的其他相關功能是否支持軟實時應用程序?

回答

1

首先,根據第一原則和心智模型,我將你引用到real-time.org,爲了準確定義實時原則和術語,

實時從業者計算社區使用各種不一致和不完整的「實時」,「硬實時」和「軟實時」「定義」。實時計算研究界對「硬實時」達成共識,但對「軟實時」感到困惑。

研究社區的「硬」實時計算模型的核心是任務有嚴格的最後期限,所有這些最後期限必須被忽略,否則系統失敗。達到最後期限是「及時性」標準,並保證所有截止日期都將符合「可預測性」標準 - 可預測性爲「確定性」。

(在某些機型中,沒有最後期限的任務在後臺被允許,如果他們不與硬實時任務干擾;他們通常也被餓死預防。)

這種模式需要的一切與硬實時任務相關的是靜態的(事先已知的),即它要求事先知道系統的時間演變。這個要求非常強,在大多數情況下,這是不可行的。有一些重要的硬實時系統需要滿足這個要求(至少推定)。衆所周知的例子包括數字航空電子飛行控制,某些醫療設備,發電廠控制,鐵路道口控制等。這些例子對安全至關重要,但並非所有硬實時系統都是(我們將在下面看到,關鍵系統不是也不可能是實時的,儘管有些可能包括簡單的低級硬實時組件)。

軟實時是指一類實時系統,它是硬實時系統的一般化。普遍性包括較弱的及時性標準和/或較弱的可預測性標準。

例如,考慮一個模擬任務具有截止日期的實時任務。在這個特定的模型中,及時性標準是任何數量的任務都可以延遲15%,並且可預測性標準是這必須像硬實時系統一樣得到保證(即確定性)。如果這些任務中的一個或多個任務遲遲超過15%,則系統失敗。該模型不是傳統的硬實時模型,儘管它可能是一個安全關鍵型模型。

考慮另一個模型:及時性標準是不超過20%的任務可以超過5%遲到,並且可預測性標準是保證至少滿足概率0.9。違反及時性和/或可預測性標準意味着系統失敗。這不是一個硬實時系統,儘管它可能是一個安全關鍵的系統。但是要考慮:如果該系統的效用因不符合一個或任何這些標準而降級 - 例如,23%遲於5%,或者不到20%的任務遲到,但是10其中的百分比遲遲超過5%,或者除了可預測性僅爲0.8之外,所有標準都得到滿足。有許多具有這種動態特性的實時系統。

我們需要指定系統退化(例如,系統的「效用」或「價值」)與多少以及這些及時性和可預測性標準中的多少以及達到什麼程度有關。實際上,這個模型是許多實際存在的實時系統的一個概念性例子,它們儘可能地對安全至關重要 - 例如,用於防禦核武裝敵對導彈(以及許多其他軍事作戰系統,因爲它們都有各種固有的動態不確定性)。

現在我們回到那個需求來指定實時系統的時效性和可預測性與系統效用的關係。一個成功使用的解決方案稱爲「時間/效用函數」(或「時間/價值函數」),並在real- time.org上詳細描述。每個任務的功能都是從系統應用程序的物理屬性中派生出來的。系統的及時性和及時性的可預測性基於任務的時間性和可預測性 - 例如,通過各自公用事業的加權應計。

軟實時系統(在real-time.org上描述的精確定義)是一般情況,硬實時系統是一個特殊情況,適用於實時問題的小得多的領域。所有硬和軟實時系統都可以通過時間/效用函數進行指定和創建。

所有的說明,現在我們可以解決您關於實時中間件的問題。

答案的一個顯而易見的來源是Open Group Real-Time CORBA(RTC)標準(谷歌,這裏有一大堆可用的詳細信息)。

RTC可以作爲一個固定的優先級基礎結構實現,具有映射到節點優先級的15位系統範圍的優先級。在這種情況下,最低要求是:尊重客戶端和服務器之間的線程優先級,以便在處理CORBA調用期間解決資源爭用問題;在端到端處理期間限制線程優先級反轉的持續時間;限制了操作調用的延遲。根據這三個要求(和許多存在的),可以構建硬實時RTC分佈式系統 - 但顯然底層網絡QoS影響實時行爲。因此,RTC提供可插拔的特定於應用程序的網絡,例如那些具有確定性QoS(在RTC層和低於RTC層的情況下可能實時實時),以及具有非確定性QoS的那些(但RTC層仍然具有三個必要的固定優先實時屬性)。更一般地說,RTC在CORBA層提供軟實時(在real-time.org上定義的技術含義)。它通過提供稱爲「分佈式線程」的一階調度抽象來實現這一點。它提供了一個調度框架,不僅支持固定的優先級,而且還支持時間/效用函數,這些函數足以表達一種非常普遍的「實用程序累計」軟實時調度算法。這種算法(或通常啓發式算法)對於由特定應用的軟實時系統模型組成的分佈式系統是必需的,比如我上面描述的。

如果您不想使用RTC,該怎麼辦?好消息是,RTC的原則首先公開於不同的分佈式實時系統(在real- time.org上描述),並且可以(並且已經)移植到其他實時中間件,實時系統。

對於軟件實時(同時,從real-time.org定義的意義上而言),中間件的動態及時性和可預測性的原則必須應用於中間件系統中每個節點的資源管理 - 包括被應用於調度中間件的網絡(例如,訪問,路由等)。這種方法的實例出現在幾個博士學位。論文,並已在一些軍事實戰分佈式實時系統中實施。

相關問題