對於實時作業系統(rtos)和非實時作業系統,你能分別列舉出來多少?
實時作業系統:ucos/vxworks/rtlinux
非實時作業系統:linux/windows/osx
我也只能列舉出來這麼多了。
重點不在這裡,重點在於他們之間的區別,詳見下圖:
在上面的圖中右邊的任務優先順序高於左邊的任務,先看實時作業系統的,當優先順序更高的任務2就緒的時候,即便任務1正在執行中,也必須立刻交出cpu的使用權,就跟中斷一樣,先執行任務2,等任務2執行完或者主動掛起(sleep)讓出cpu的時候,任務1才能接著執行。
ucos就是這樣的實時作業系統,它是可搶占性的核心。我曾跟很多同事爭辯過ucos高優先順序任務就緒而低優先順序任務正在執行沒有sleep的時候,高優先順序任務能否打斷低優先順序任務而立即得到執行,遺憾的是很多人仍然堅持必須要sleep才能切換任務,每次我都只能無奈的用實驗來證明這個本來不應該爭辯的東西。
再看看我們的linux/windows/osx這些基於時間片輪轉的作業系統遇到這種問題的時候會怎麼樣呢,毫無疑問它們都是非實時的作業系統,cpu是不可搶占的,從上圖可以看到,即便高優先順序的任務就緒了,也不能馬上中斷低優先順序任務而得到執行,必須要等到低優先順序任務主動掛起(sleep)或者時間片結束才能得到執行。所以我們在使用pc的時候經常會遇到應用程式無響應的問題。即硬體資源被其他任務占用,本任務得不到立即執行。
我們平常娛樂辦公用的都是非實時的作業系統,那麼什麼時候該使用實時作業系統呢?試想一下,乙個射出的飛彈如果要執行乙個調整姿態的任務,這個時候剛好有其他無關緊要的任務在執行,如果是非實時作業系統,那麼可能會等一會兒然後彈個窗告訴你應用程式無響應(如果它有窗可彈的話),那完了等彈窗出來飛彈都射到外太空去了!毫無疑問這種高優先順序任務片刻都不能等的裝置就必須上實時作業系統,如果你不想你的飛彈射到外太空去的話。
RTOS實時作業系統的認識
rtos 實時作業系統是事件驅動的,能對來自外界的訊號在有限的時間內做出響應,實時性,可靠性,靈活性 分為一般實時作業系統,嵌入式實時作業系統 1 非同步的事件響應 2 切換時間和中斷延遲時間確定 3優先順序中斷和排程 4 搶占式排程 5 記憶體鎖定 6 連續檔案 7 同步 rtos是一段在嵌入式系...
什麼是實時作業系統(RTOS)
實時作業系統 real time operating system,rtos 又稱即時作業系統,它會按照排序執行 管理系統資源,並為開發應用程式提供一致的基礎。實時作業系統與一般的作業系統相比,最大的特色就是 實時性 如果有乙個任務需要執行,實時作業系統會馬上 在較短時間內 執行該任務,不會有較長的...
嵌入式系統 實時作業系統 RTOS
一 rtos中的基本概念 背景 rtos具有的功能 作業系統中的程序與執行緒 二 嵌入式作業系統的主要種類 1 uc os ii 2 linux 作業系統 3 vxworks 4 wince os 作業系統,operating system 是嵌入式系統中的靈魂,是其軟體系統中的重要組成部分,嵌入式...