登入
註冊
找回密碼
品味生活 |
休閒天地 |
興趣嗜好 |
學術藝文 |
女性頻道 |
電腦數位 |
遊戲天堂 |
影視音樂 |
宗教綜合 |
綜合圖片 |
綜合影片 |
成人園地
新聞時事區
生活優遊區
會員廣告交流區
感恩懺悔區
愛情紅綠燈
上班一族
生活智慧王
醫療保健區
美食王國
財富與風險區
消費購物區
釣友天下
海釣討論區
淡水討論區
釣蝦討論區
教學資訊區
汽機車討論區
搞怪爆笑區
趣味笑話區
搞笑圖片區
搞笑短片區
環瀛搜奇區
幽浮事件簿
靈異鬼怪區
數位影像生活
著名旅遊景點
博奕綜合討論區
休閒飲品
品酒專區
咖啡專區
茶香專區
星座命理區
動漫卡通區
連載區
動漫圖片區
軍事討論區
軍旅生涯
非主流討論區
中外歷史區
體育運動區
武術專區
健身會所
職業摔角區
布布發燒區
寵物世界
流浪動物關懷照護社
模型玩具區
園藝花卉區
自行車綜合區
專業討論區
休閒討論區
方寸之美
玩石天地
長篇小說區
連載中之小說
小說討論區
短篇小說區
經典文章區
原創天地
IQ題猜謎語
民俗文化區
懷舊柑仔店
藝術鑑賞區
校園生活
福爾摩沙風情
客家文化
閩南語小棧
原住民札記
手作小物
發明大觀園
女人話題 (男性禁言)
女性秘語 (男性禁言)
溫馨家庭區
寶貝生活館
天使寶寶專區
媽咪孕事區
時尚潮流館
婚姻資訊區
健康塑身區
美容美髮區
珠寶首飾區
電腦軟體分享區
電腦軟體交流討論區
軟體應用教學區
手機通訊產品交流區
APP軟體區
手機圖鈴館
桌上型電腦討論區
硬體知識圖書館
筆記型電腦討論區
平板型電腦討論區
電腦DIY配件討論區
數位3C館
電子電機暨資訊工程館
手機遊戲討論區
ONLINE GAME
電競討論區
PC GAME
TV GAME
Facebook 討論版
影視戲劇區
明星貼圖區
樂壇綜合區
樂譜及樂器區
佛教
道教
西方教派
一貫道與其他教派
自拍樂園
原創自拍區
正妹貼圖區
性感誘惑區
激情性愛區
成人卡漫區
成人卡漫下載區
禁忌卡漫
另類圖片區
絲襪美腿區
西洋辣妹區
唯美清純區
自然美景區
電腦桌布分享區
優質套圖區
超市發表區
打包下載區
新註冊會員貼圖專區
成人長片直播區
成人短片直播區
BT下載區
HTTP長片下載區
HTTP短片下載區
歷史存放區
成人交流區
成人文學區
成人文學圖書館
搞笑圖影片區
成人笑話區
成人笑話圖書館
性愛秘技區
性愛秘技圖書館
圖影片求檔區
手機版
■
站務公告
■
加分活動
■
綜合教學
■
疑問建議
■
私密影像申訴檢舉專區
搜尋
搜尋
本版
會員
SOGO論壇
›
論壇
›
≡ 電腦數位 ≡
›
電子電機暨資訊工程館
›
(轉)實時操作系統 & 通用 OS
返回列表
查看:
1029
|
回覆:
1
[技術文章]
(轉)實時操作系統 & 通用 OS
[複製連結]
if8051
if8051
註冊時間
2012-3-16
最後登錄
2024-11-8
主題
查看
積分
173
閱讀權限
40
文章
223
相冊
0
日誌
0
正天使(一級)
正天使(一級), 積分 173, 距離下一級還需 27 積分
串個門
加好友
打招呼
發私訊
狀態︰
離線
電梯直達
1
樓
發表於 2013-2-10 09:20:44
|
只看該作者
|
倒序瀏覽
實時操作系統與通用操作系統的一些比較,嵌入式實時系統中採用的操作系統我們稱為嵌入式實時操作系統,它既是嵌入式操作系統,又是實時操作系統。作為一種嵌入式操作系統,它具有嵌入式軟件共有的可裁剪、低資源佔用、低功耗等特點;而作為一種實時操作系統(本文對實時操作系統特性的討論僅限於強實時操作系統,下面提到的實時操作系統也均指強實時操作系統),它與通用操作系統 (如Windows、Unix、Linux等) 相比有很大的差別,下面我們將通過比較這兩種操作系統之間的差別來逐步描述實時操作系統的主要特點。
我們在日常工作學習環境中接觸最多的是通用操作系統,通用操作系統是由分時操作系統發展而來,大部分都支持多 task 和多執行緒,負責管理眾多的執行緒並為它們分配系統資源。分時操作系統的基本設計原則是:盡量縮短系統的平均響應時間並提高系統的吞吐率,在單位時間內為盡可能多 task 請求提供服務。由此可以看出,分時操作系統注重平均表現性能,不注重個體表現性能。如對於整個系統來說,注重所有任務的平均響應時間而不關心單個任務的響應時間,對於某個單個任務來說,注重每次執行的平均響應時間而不關心某次特定執行的響應時間。通用操作系統中採用的很多策略和技巧都體現出了這種設計原則,如虛存管理機制中由於採用了 LRU 等頁替換算法,使得大部分的訪存需求能夠快速地通過物理記憶體完成,只有很小一部分的訪存需求需要通過調頁完成,但從總體上來看,平均訪存時間與不採用虛擬記憶體技術相比沒有很大的提高,同時又獲得了虛擬空間可以遠大於物理記憶體容量等好處,因此虛擬記憶體技術在通用操作系統中得到了十分廣泛的應用。類似的例子還有很多,如 Unix 檔案系統中檔案存放位置的間接索引查詢機制等,甚至硬件設計中的 Cache 技術以及 CPU 的動態分支預測技術等也都體現出了這種設計原則。由此可見,這種注重平均表現,即統計型表現特性的設計原則的影響是十分深遠的。而對於實時操作系統,前面我們已經提到,它除了要滿足應用的功能需求以外,更重要的是還要滿足應用提出的實時性要求,而組成一個應用的眾多實時任務對於實時性的要求是各不相同的,此外實時任務之間可能還會有一些複雜的關聯和同步關係,如執行順序限制、共享資源的互斥訪問要求等,這就為系統實時性的保證帶來了很大的困難。因此,實時操作系統所遵循的最重要的設計原則是:採用各種算法和策略,始終保證系統行為的可預測性 (predictability) 。可預測性是指在系統運行的任何時刻,在任何情況下,實時操作系統的資源調配策略都能為爭奪資源 (包括CPU 、Memory 、網路帶寬等) 的多個實時任務合理地分配資源,使每個實時任務的實時性要求都能得到滿足。與通用操作系統不同,實時操作系統注重的不是系統的平均表現,而是要求每個實時任務在最壞情況下都要滿足其實時性要求,也就是說,實時操作系統注重的是個體表現,更準確地講是個體最壞情況表現。舉例來說,如果實時操作系統採用標準的虛存技術,則一個實時任務執行的最壞情況是每次訪存都需要調頁,如此累計起來的該任務在最壞情況下的運行時間是不可預測的,因此該任務的實時性無法得到保證。從而可以看出在通用操作系統中廣泛採用的虛擬記憶體技術在實時操作系統中不宜直接採用。由於實時操作系統與通用操作系統的基本設計原則差別很大,因此在很多資源調度策略的選擇上以及操作系統實現的方法上兩者都具有較大的差異,這些差異主要體現在以下幾點:
(1) 任務調度策略:通用操作系統中的任務調度策略一般採用基於優先級的搶先式調度策略,對於優先級相同的進程則採用時間片輪轉調度方式,用戶進程可以通過系統調用動態地調整自己的優先級,操作系統也可根據情況調整某些進程的優先級。實時操作系統中的任務調度策略目前使用最廣泛的主要可分為兩種,一種是靜態表驅動方式,另一種是固定優先級搶先式調度方式。靜態表驅動方式是指在系統運行前工程師根據各任務的實時要求用手工的方式或在輔助工具的幫助下生成一張任務的運行時間表,這張時間表與列車的運行時刻表類似,指明了各任務的起始運行時間以及運行長度,運行時間表一旦生成就不再變化了,在運行時調度器只需根據這張表在指定的時刻啟動相應的任務即可。靜態表驅動方式的主要優點是: 運行時間表是在系統運行前生成的,因此可以採用較複雜的搜索算法找到較優的調度方案; 運行時調度器開銷較小; 系統具有非常好的可預測性,實時性驗證也比較方便;這種方式主要缺點是不靈活,需求一旦發生變化,就要重新生成整個運行時間表。由於具有非常好的可預測性,這種方式主要用於航空航天、軍事等對系統的實時性要求十分嚴格的領域。固定優先級搶先式調度方式則與通用操作系統中採用的基於優先級的調度方式基本類似,但在固定優先級搶先式調度方式中,進程的優先級是固定不變的,並且該優先級是在運行前通過某種優先級分配策略(如 Rate-Monotonic、Deadline-Monotonic等)來指定的。這種方式的優缺點與靜態表驅動方式的優缺點正好完全相反,它主要應用於一些較簡單、較獨立的嵌入式系統,但隨著調度理論的不斷成熟和完善,這種方式也會逐漸在一些對實時性要求十分嚴格的領域中得到應用。目前市場上大部分的實時操作系統採用的都是這種調度方式。
(2) 記憶體管理:關於虛擬記憶體管理機制我們在上面已經進行了一些討論。為解決虛擬記憶體給系統帶來的不可預測性,實時操作系統一般採用如下兩種方式: 在原有虛擬記憶體管理機制的基礎上增加頁面鎖功能,用戶可將關鍵頁面鎖定在記憶體中,從而不會被 SWAP 程序將該頁面交換出記憶體。這種方式的優點是既得到了虛擬記憶體管理機制為軟件開發帶來的好處,又提高了系統的可預測性。缺點是由於 TLB 等機制的設計也是按照注重平均表現的原則進行的,因此系統的可預測性並不能完全得到保障; 採用靜態記憶體劃分的方式,為每個實時任務劃分固定的記憶體區域。這種方式的優點是系統具有較好的可預測性,缺點是靈活性不夠好,任務對存儲器的需求一旦有變化就需要重新對記憶體進行劃分,此外虛擬記憶體管理機制所帶來的好處也喪失了。目前市場上的實時操作系統一般都採用第一種管理方式。
(3) 中斷處理:在通用操作系統中,大部分外部中斷都是開啟的,中斷處理一般由設備驅動程序來完成。由於通用操作系統中的用戶進程一般都沒有實時性要求,而中斷處理程序直接跟硬件設備交互,可能有實時性要求,因此中斷處理程序的優先級被設定為高於任何用戶進程。但對於實時操作系統採用上述的中斷處理機制是不合適的。首先,外部中斷是環境向實時操作系統進行的輸入,它的頻度是與環境變化的速率相關的,而與實時操作系統無關。如果外部中斷產生的頻度不可預測,則一個實時任務在運行時被中斷處理程序阻塞的時間開銷也是不可預測的,從而使任務的實時性得不到保證;如果外部中斷產生的頻度是可預測的,一旦某外部中斷產生的頻度超出其預測值 (如硬件故障產生的虛假中斷信號或預測值本身有誤) 可能會破壞整個系統的可預測性。其次,實時操作系統中的各用戶進程一般都有實時性要求,因此中斷處理程序優先級高於所有用戶進程的優先級分配方式是不合適的。一種較適合實時操作系統的中斷處理方式為:除時鐘中斷外,屏蔽所有其它中斷,中斷處理程序變為週期性的輪詢操作,這些操作由核心態的設備驅動程序或由用戶態的設備支持庫來完成。採用這種方式的主要好處是充分保證了系統的可預測性,主要缺點是對環境變化的響應可能不如上述中斷處理方式快,另外輪詢操作在一定程度上降低了CPU的有效利用率。另一種可行的方式是:對於採用輪詢方式無法滿足需求的外部事件,採用中斷方式,其它時間仍然採用輪詢方式。但此時中斷處理程序與所以其它任務一樣擁有優先級,調度器根據優先級對處於就緒態的任務和中斷處理程序統一進行處理器調度。這種方式使外部事件的響應速度加快,並避免了上述中斷方式帶來第二個問題,但第一個問題仍然存在。此外為提高時鐘中斷響應時間的可預測性,實時操作系統應盡可能少地屏蔽中斷。
(4) 共享資源的互斥訪問:通用操作系統一般採用信號量機制來解決共享資源的互斥訪問問題。對於實時操作系統,如果任務調度採用靜態表驅動方式,共享資源的互斥訪問問題在生成運行時間表時已經考慮到了,在運行時無需再考慮。如果任務調度採用基於優先級的方式,則傳統的信號量機制在系統運行時很容易造成優先級倒置問題 (Priority Inversion),即當一個高優先級任務通過信號量機制訪問共享資源時,該信號量已被一低優先級任務佔有,而這個低優先級任務在訪問共享資源時可能又被其它一些中等優先級的任務搶先,因此造成高優先級任務被許多具有較低優先級的任務阻塞,實時性難以得到保證。因此在實時操作系統中,往往對傳統的信號量機制進行了一些擴展,引入瞭如優先級繼承協議 (Priority Inheritance protocol) 、優先級頂置協議 (Priority Ceiling Protocol) 以及 Stack Resource Policy 等機制,較好地解決了優先級倒置的問題。
(5) 系統調用以及系統內部操作的時間開銷:進程通過系統調用得到操作系統提供的服務,操作系統通過內部操作(如上下文切換等)來完成一些內部管理工作。為保證系統的可預測性,實時操作系統中的所有系統調用以及系統內部操作的時間開銷都應是有界的,並且該界限是一個具體的量化數值。而在通用操作系統中對這些時間開銷則未做如此限制。
(6) 系統的可重入性:在通用操作系統中,核心態系統調用往往是不可重入的,當一低優先級任務調用核心態系統調用時,在該時間段內到達的高優先級任務必須等到低優先級的系統調用完成才能獲得 CPU,這就降低了系統的可預測性。因此,實時操作系統中的核心態系統調用往往設計為可重入的。
(7) 輔助工具:實時操作系統額外提供了一些輔助工具,如實時任務在最壞情況下的執行時間估算工具、系統的實時性驗證工具等,可幫助工程師進行系統的實時性驗證工作。此外,實時操作系統對系統硬件設計也提出了一些要求,其中一些要求為:(1) DMA 是一種數據交換協議,主要作用是在無需 CPU 參與的情況下將資料在記憶體與其它外部設備間進行交換。DMA 最常用的一種實現方式被稱為週期竊取 (Cycle Stealing) 方式,即首先通過 Bus 仲裁協議與 CPU 競爭 Bus 控制權,在獲得控制權後再根據用戶預設的操作指令進行數據交換。由於這種週期竊取方式會給用戶任務帶來不可預測的額外阻塞開銷,所以實時操作系統往往要求系統設計時不採用 DMA 或採取一些可預測性更好的 DMA 實現方式,如Time-slice method等。(2) Cache Cache 的主要作用是採用容量相對較小的快速存儲部件來彌補高性能 CPU 與相對來說性能較低的存儲器之間的性能差異,由於它可以使系統的平均表現性能得到大幅提高,因此在硬件設計中得到了極為廣泛的應用。但實時操作系統注重的不是平均表現性能,而是個體最壞情況表現,因此在對系統進行實時性驗證時必須考慮實時任務運行的最壞情況,即每次訪存都沒有命中 Cache 情況下的運行時間,所以在利用輔助工具估算實時任務在最壞情況下的執行時間時,應將系統中所有的 Cache 功能暫時關閉,在系統實際運行時再將 Cache 功能啟動。除此以外,另一種較極端的做法則是在硬件設計中完全不採用 Cache 技術。
喜歡嗎?分享這篇文章給親朋好友︰
檢舉
icl241
icl241
註冊時間
2006-5-22
最後登錄
2024-11-2
主題
查看
積分
119
閱讀權限
40
文章
31
相冊
0
日誌
0
正天使(一級)
正天使(一級), 積分 119, 距離下一級還需 81 積分
串個門
加好友
打招呼
發私訊
狀態︰
離線
2
樓
發表於 2013-3-9 14:23:29
|
只看該作者
綜合來說Real Time OS 與 一般OS, RTOS強調軟體與硬體的時序協調, 所以程式寫作難度高, 像寫組合語言.
而一般OS則強調與硬體的功能整合, 所以程式寫作重點在呼叫使用硬體, 硬體受到呼應或回覆不用即時,
程式寫作考慮不用像RTOS複雜, 像寫BASIC語言.
檢舉
返回列表
請注意︰利用多帳號發表自問自答的
業配文
或
置入性行銷
廣告者,將直接禁訪或刪除帳號及全部文章!
高級模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登錄後才可以回覆
登入
|
註冊
回覆文章
回覆後跳轉到最後一頁
數位軟體勳章
數位軟體勳章
積分 0, 距離下一級還需 積分
本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請
通知管理人員
,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com
GMT+8, 2024-11-11 04:02
手機版
|
SOGO論壇
品味生活
|
休閒天地
|
興趣嗜好
|
學術藝文
|
女性頻道
|
電腦數位
|
遊戲天堂
|
影視音樂
|
宗教綜合
|
綜合圖片
|
綜合影片
|
成人園地
© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部