1. 程式人生 > >淺談實時作業系統和分時作業系統

淺談實時作業系統和分時作業系統

什麼是實時作業系統?

參見 Donal Gillies 在 Realtime Computing FAQ 中提出定義:

實時系統指系統的計算正確性不僅取決於計算的邏輯正確性,還取決於產生結果的時間。如果未滿足系統的時間約束,則認為系統失效。

一個實時作業系統面對變化的負載(從最小到最壞的情況)時必須確定性地保證滿足時間要求。請注意,必須要滿足確定性,而不是要求速度足夠快!例如,如果使用足夠強大的CPU,Windows在CPU空閒時可以提供非常短的典型中斷響應,但是,當某些後臺任務正在執行時,有時候響應會變得非常漫長,以至於某一個簡單的讀取檔案的任務會長時間無響應,甚至直接掛死。這是一個基本的問題:並不是Windows不夠快或效率不夠高,而是因為它不能提供確定性,所以,Windows不是一個實時作業系統。

實時系統分類

根據實際應用,可以選擇採用硬實時作業系統軟實時作業系統,硬實時當然比軟實時好,但是,如果你的公司正在準備開發一款商用軟體,那請你注意了,業界公認比較好的VxWorks(WindRiver開發),會花光你本來就很少的銀子,而軟實時的作業系統,如某些實時linux,一般是開源免費的,我們公司本來的產品就是基於VxWorks的,現在業界都在Cost Reduction,為了響應號召,正在調研如何把平臺換成免費的嵌入式實時Linux。同學們,如何選擇,自己考慮吧:-)

硬實時 - 代表產品 VxWorks

實時作業系統一般只用於嵌入式平臺,用於過程控制,特別是工控領域。舉一個經常使用的例項,中高檔汽車中使用的氣囊

。當報告車輛碰撞的感測器中斷CPU後,作業系統應快速地分配展開氣囊的任務,並且不允許任何其他非實時處理進行干擾,晚一秒鐘展開氣囊比沒有氣囊的情況更糟糕,這就是一個典型的必須使用硬實時的系統。

硬實時系統指系統要有確保的最壞情況下的服務時間,即對於事件的響應時間的截止期限是無論如何都必須得到滿足。

軟實時 - 代表產品 軟實時Linux

再舉一個例項,IPTV數字電視機頂盒,需要實時的處理(解碼)視訊流,如果丟失了一個或幾個視訊幀,顯然會造成視訊的品質更差,但是隻要做過簡單的抖動處理的系統,丟失幾個視訊幀就不會對整個系統造成不可挽救的影響。

軟實時系統就是那些從統計的角度來說,一個任務能夠得到有確保的處理時間,到達系統的事件也能夠在截止期限到來之前得到處理,但違反截止期限並不會帶來致命的錯誤。

分時作業系統

使一臺計算機同時為幾個、幾十個甚至幾百個使用者服務的一種作業系統。把計算機與許多終端使用者連線起來,分時作業系統將系統處理機時間與記憶體空間按一定的時間間隔,輪流地切換給各終端使用者的程式使用。由於時間間隔很短,每個使用者的感覺就像他獨佔計算機一樣。分時作業系統的特點是可有效增加資源的使用率。例如UNIX系統就採用輪轉法(剝奪式程序排程演算法)動態優先的CPU排程,有力地支援分時操作。

疑問:

linux是不是實時作業系統?
軟實時作業系統和分時作業系統有何區別?體現在終端使用者數量上?
求助各位大神幫忙解答~