[報告] 即時作業系統的一些概念

一﹑摘要

本篇報告主要在釐清即時作業系統的一些概念,我們會看到,要怎麼評估一個即時作業系統的效能。我們也會看到,為了有達到良好的效能,一個即時作業系統需要提供哪些服務或符合哪些條件。另外,由於短期排班機制是一個即時作業系統的核心,本篇報告也會提及一些關於短期排班機制的議題。最後,本篇報告將會針對目前已經被提出來的即時作業系統,做一點概念性的介紹,以讓我們瞭解目前即時作業系統已經進展到何種境界。

二﹑前言

近年來我們可以發現,即時作業(real-time computing)的觀念已經被應用在許多重要的領域之中,包括內嵌式系統﹑機器人﹑空中交通管制﹑無線通訊。我們預期未來即時作業的觀念,也將會被應用在更重要的場合中,如深海探測﹑太空站﹑具有彈性關節的機器人的控制……等等。以下,讓我們對即時作業的概念,做一點概括性的瞭解。

三﹑即時作業的概念

即時作業可以被定義為,一個作業行程,其正確性不但和邏輯上執行的結果有關,同時也和執行的時間有密切的關係。也就是說,即使一個作業行程,它的執行結果在邏輯上來說是正確的,但卻沒有能夠滿足時間上的要求(例如未能在期限之前做完),則這樣的結果是不被接受的。一般來說,在即時系統(real-time system)之中,有些行程屬於即時行程(real-time process),它們具有某種程度的迫切性(需要在一定的時間內完成它們所被賦予的任務),這些行程會試圖根據外界所發生的一些事件來做適當的反應。因為這些事件是即時(real-time)發生的,所以即時行程必須要能夠跟得上這些事件所發生的速度,否則它們便失去了意義。因此我們通常會為某個行程給定一個期限,可能是指定它的開始執行的期限或完成的期限,並且要求該行程必須滿足期限上的要求,而這一點,就要交由即時作業系統來負責了。

四﹑評估即時作業系統的效能

即時作業系統必須負責讓使用者所交付的行程,能夠滿足期限上的要求。而即時作業系統的性能好壞,跟許多因素都有密切的關係。通常我們可以根據下列特性,來對即時作業系統的效能加以評估:

  1. 可決定性(Determinism)
  2. 反應速度(Responsiveness)
  3. 使用者控制(User control)
  4. 可靠性(Reliability)
  5. 錯誤容忍性(Fail-soft operation)

可決定性指的是,作業系統讓使用者可以自行估算,一件工作可以在什麼樣的期限之內做完。它和在外界提出一項中斷要求之後,作業系統要花費多少時間,才能確認到這一項中斷要求有關。作業系統在這方面的表現是否良好,取決於兩個因素:(i)作業系統對外界中斷的反應速度(ii)系統是否有足夠的能力得以在限定的時間內處理所有的中斷要求。

反應速度指的是,在確認到一項中斷要求之後,作業系統需要花多少時間來處理這項中斷要求。系統反應速度的快慢取決於下列因素:(i)做一些初始化的動作以及準備好開始執行中斷服務常式(interrupt service routine)所需花費的時間。(ii)執行完中斷服務常式所需的時間,這項因素通常決定於硬體平台。(iii)系統是否允許槽狀式中斷(interrupt nesting),如果中斷服務常式本身也可以因為另一個中斷要求的抵達而被中斷,則系統就可能必須花比較多的時間來執行中斷服務常式。

可決定性和反應速度這兩個因素,決定了系統對於外界事件的反應時間。對於即時作業系統而言,反應時間是很重要的一個因素,因為即時作業系統必須在指定的時限之內,針對外界事件加以反應,並完成其工作。

使用者控制指的是,作業系統可以讓使用者對於各個行程的優先權精確地加以控制。通常在即時作業系統之中,使用者所能做的決策遠比一般的作業系統來的多。例如,使用者可以決定是否使用記憶體分頁(paging),指定哪些行程必須永遠常駐在記憶體內,指定哪些行程各有何種優先權……等等。

對於即時作業系統來說,其可靠性的要求遠比一般非即時作業系統來的嚴格。在一般非即時作業系統之中,如果突然發生了某種嚴重的錯誤,只要重新開機就可以解決問題。但是即時作業系統必須立即的針對外界事件加以反應,不能有任何疏失,否則往往會造成嚴重的損害,小至金錢上的損失,大到貴重儀器的損毀,甚至人員傷亡。

錯誤容忍性指的是,當系統發生錯誤時,它是否有足夠的能力,盡可能地維持住其資料及其系統效能。當即時作業系統遇到一項錯誤發生時,它會試圖自行修復錯誤,或盡可能使錯誤所造成的損害降到最低。一般而言,此時系統會通知使用者或使用者的行程,它將要試圖進行修復的動作,並且可能會導致系統效能的降低。當條件惡化使得系統必須做關機的處置時,它會試圖維持檔案及資料的完整性。

為了要滿足上述的這些要求,即時作業系統通常必須具備下列特性:

  1. 快速的行程切換(context switch)。
  2. 佔用比較小的儲存空間(盡可能提供最少且最不可或缺的功能)。
  3. 有能力對於外界所引發的中斷做迅速的反應。
  4. 多工,並提供行程與行程之間溝通的機制,如信號機﹑信號﹑事件。
  5. 使用特殊格式的循序檔案,以便於快速地存取資料。
  6. 以優先權為基準來排定執行次序的可搶先式排程。
  7. 盡量減短抑制外部中斷時所維持的時間。
  8. 提供延遲行程一段固定的時間及暫停或繼續執行行程的機制。
  9. 特殊的鬧鈴(Alarm)及逾時(Timeout)機制。

五﹑即時作業系統的核心

即時作業系統的核心,在於它的短期行程排班機制(short-term task scheduling)。在設計這樣的排班機制時,對於各個行程的排班是否公平﹑是否擁有最小的平均反應時間,這些並不是很重要的考慮因素。真正重要的是,所有的硬式即時行程(hard real-time tasks)要能在期限之內完成(或開始執行)它的工作,同時盡可能使得比較多的軟式即時行程(soft real-time tasks)能夠在期限之內完成(或開始執行)它的工作。

目前的即時作業系統,大多數無法直接處理期限(deadline)的問題。它們只能盡可能提高即時行程的反應速度,使得快要到達期限的時候,即時行程能夠很快地被加以排班。因此,即時應用程式一般會要求反應時間在數毫秒到次毫秒的範圍內。比較前端的應用程式,例如軍用飛機的模擬器,經常要求作業系統的反應時間在十微秒到一百微秒之內。

六﹑短期行程排班的一些議題

最近幾年,對於即時行程的排程,有許多功能更強大及更合適的方法紛紛被提出來討論。這些方法基本上都需要作業系統擁有各個行程的一些附加的資訊。一般來說,對於各個行程,作業系統需要擁有下列資訊:

1.備妥時間(Ready Time):行程準備好開始執行所需花費的時間。對於週期性的行程而言,備妥時間實際上是一連串事先預知的時間。對於非週期性的行程而言,備妥時間可能事先預知,或者是等到行程確實準備好之後,再通知作業系統做適當的處理。

2.啟始期限(Starting deadline):行程必須開始執行的時間。

3.完成期限(Completion deadline):行程必須完成其工作的時間。典型的即時應用程式可能會要求啟始期限,或者是完成期限,但不會同時要求兩者。

4.處理時間(Processing time):工作執行直到完成所需的時間。有些情況下,應用程式會提供這項資訊。有些情況下,作業系統會自動測量其指數平均值。有些情況下,作業系統不會使用這項資訊。

5.資源需求(Resource requirements):行程在執行時所需要的所有資源(除了處理器之外)。

6.優先權(Priority):提供了行程之間重要性的相對關係。迫切性的即時行程可能會提供絕對的優先權,如果無法滿足它對於期限的要求,則這個系統便無法正常運作。如果系統在任何情況下都想繼續運作(即使某個迫切性的即時行程對於期限的要求無法被滿足),則可以為迫切性與非迫切性的即時行程指定相對的優先權,提供排班機制作為排班的依據。

7.次行程的結構(Subtask structure):行程可以被分解為強制性的次行程及附加性的次行程。只有強制性的次行程才需要指定工作期限。

排班機制在考慮行程執行期限的問題時,有許多層面需要考量,例如:系統應該根據什麼條件以選擇下一個行程來執行﹑系統應該允許什麼種類的搶先機制。我們通常必須針對系統的應用場合,來決定要採用什麼樣的排班策略。

七﹑目前業界的一些即時作業系統

LynxOS 3.0

LynxOS 3.0在引進了Galaxy這項新技術之後,增加了兩個主要的特性:

(1)具備模組化的核心(kernel),使得LynxOS的彈性大幅提昇。它使得LynxOS可以適用於比以往更廣泛的各種場合之中,小自非常小的內嵌式系統(embedded systems),大到非常龐大非常複雜的系統,它都有能力勝任。它使得儀器製造商可以方便地選用LynxOS作為他們各式各樣產品的一個標準作業系統。

(2)支援全球資訊網,使得LynxOS的通訊能力大幅改善。如此一來,即使不是和UNIX相容的作業系統,都有能力透過網路來使用新的LynxOS圖形化的組態設定及建造工具軟體。而且以LynxOS為架構的內嵌式系統,將可以透過網路,提供圖形化的使用者介面給任何一部電腦使用。

Galaxy是由一個小型的微核心(microkernel),和一組輕量級的核心模組所組成,而這些核心模組,我們稱之為核心增益程式(Kernel Plug-In, KPI)。其微核心提供了下列的基本功能:核心的啟始及關閉﹑低階的記憶體管理﹑錯誤處理﹑中斷分派﹑多工﹑及低階行程的同步化機制。其微核心只佔28K位元組,本身就足以應付小型的內嵌式系統的需求。如果要應用於較大型的系統,可以利用微核心所提供的機制,KPI切換(KPI Switch),將此微核心與其他的核心模組連結起來,以提供更完整的功能。

使用者可以自行決定要將哪些核心模組連結到系統中,如此增加了使用上的彈性。使用者可以透過圖形化的介面來做這些設定,並建立核心(kernel)及使用者行程的映像(image),建立目標映像環境。使用者也可以很方便的來設定一些系統參數,如最大引線(thread)數目﹑磁碟快取容量,並且對驅動程式加以設定。

Galaxy核心採用的是微核心的策略,但它避開了一般其他作業系統實作微核心時遭遇的一些障礙,例如它以特殊的方式減低訊息傳遞時所造成的負荷﹑使用特殊的機制(Kernal Plug-Ins)來提供系統額外的功能﹑使用有效率的記憶體模型等,使得它不但具有微核心的優點,也能夠避開微核心可能存在的缺點。這是它比較特別的地方。

pSOSystem

pSOSytem系統的基本架構為整合性的軟體元件。以即時核心﹑網路工具﹑發展軟體為基礎,各個獨立的元件可以互相配合,以組成一個完整的發展/配置(deployment)環境。在這種堆積木式的架構之下,pSOSytem系統可以滿足各種工業應用上的需要,小自單板設備,大到複雜的物件導向分散式系統,都可以適用。因為所有的pSOSytem的元件佔的空間都不大,所以它們可以有效率地﹑順利地被置入最緊密的儲存空間之中。

pSOSytem系統的成員包括了核心作業系統﹑網路系統﹑檔案系統﹑分散式系統﹑圖形系統﹑及發展工具。使用者只需要利用一條生產線,就可以生產出各式各樣的內嵌式系統。

pSOSystem是一個開放式的系統,它支援的工業標準包括了ANSI及POSIX。舉例來說,它採用了UNIX STREAMS的標準,來連接所有的pSOSystem系統,及幾乎所有的知名的網路通訊協定﹑及驅動程式。pSOSystem也正在逐年持續成長中,在最近幾年,它所新添加的數個主要元件包含:廣泛地網路支援﹑分散式的物件﹑新的程式語言﹑及物件導向的發展工具。

pSOSystem的執行時期引擎(run-time engine)為pSOS+及pSOS+m。這兩個核心都支援了優先權式的多工﹑整塊式(full slate)的記憶體配置﹑行程與行程之間及行程與中斷服務常式之間的溝通及同步機制。

pSOS+核心僅僅佔據14K位元組的系統記憶體,它的行程切換所需的時間,經過測試,在使用以摩托羅拉68040為處理器的VME匯流排主機板,且時脈設為25Mhz的時候,不管在應用程式中使用了多少數目的行程,都可以維持在10微秒的長短,而它的中斷延遲,也可以維持在6微秒的長短。

pSOS+m核心也只佔據了17K位元組的系統記憶體,它可以將pSOS+的行程分散到許多處理器上去執行,它可以應用在無線通訊及需要高效率之處理器與處理器間之通訊的分散式系統上。最新版的pSOS+m核心加入了新的功能,包括可容錯的多處理器系統﹑可便長度的訊息貯列﹑非同步的通訊,並且對於共享式記憶體及網路多處理器環境的配置,提供最佳化的機制。而pSOS+上的應用程式只要稍做修正,便可以在pSOS+m上執行。

pSOSystem具有完整便利的發展環境及功能強大的發展工具,而且它也支援許多工業標準(如ANSI及POSIX),這些條件,使得pSOSystem很適合用來開發各式各樣的內嵌式系統,也使得一個系統的開發時間可以大幅減少。這是它與眾不同的地方。

八﹑結論

即時作業系統的應用範圍非常廣泛,隨著應用範圍的不同,即時作業系統的複雜度也呈現大幅度的變化,小自非常簡單的微控制器(例如汽車引擎裡所使用的微處理機),大到非常精密且複雜的分散式系統(例如美國本土的飛航安全控制系統),都可以發現即時作業系統的蹤影。

即時作業系統的應用還包括行程管理系統﹑飛航控制系統﹑太空梭飛行系統﹑太空站﹑星戰防禦系統﹑多媒體﹑及高速通訊系統……等等。很多即時作業系統也開始加入了專家系統及其它的人工智慧科技,以滿足更複雜的應用需求。

在未來蓬勃發展的重要應用範圍內,即時作業系統是一門扮演關鍵性角色的科技。很多重要的科學研究,目前都遭遇到一些問題,需要高效能的計算才能加以解決。未來很多大型的﹑複雜的應用也必須仰賴所謂的即時作業,才能圓滿地達成任務。因此,即時作業系統的重要性不容忽視。

九﹑參考書目

  1. William Stallings, “Real-Time Scheduling”, Operating Systems, Second Edition.
  2. Silberschatz Galvin, “Real-Time Systems”, Operating System Concepts, Fourth Edition.
  3. John A. Stankovic, “Real-Time Computing”.
  4. Mitchell Bunnell, “Galaxy White Paper”, http://www.lynx.com/.
  5. Integrated Systems, Inc. “pSOSystem Overview”, http://www.isi.com/.