1. 程式人生 > >圖解實時作業系統和非實時作業系統的區別

圖解實時作業系統和非實時作業系統的區別

對於實時作業系統(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)和非實時作業系統,你能分別列舉出來多少? 實時作業系統:uCOS/VxWorks/RTLinux 非實時作業系統:Linux/Windows/OSX 我也只能列舉出來這麼多了。 重點不在這裡,重點在於他們之間的區別,詳見下圖: 在上面的圖中

實時作業系統分時作業系統區別

轉自:http://blog.csdn.net/u013752202/article/details/53649047 對於實時作業系統(RTOS)和非實時作業系統,你能分別列舉出來多少? 實時作業系統:uCOS/VxWorks/RTLinux 非實時作業系統:Linu

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

什麼是實時作業系統? 參見 Donal Gillies 在 Realtime Computing FAQ 中提出定義: 實時系統指系統的計算正確性不僅取決於計算的邏輯正確性,還取決於產生結果的時間。如果未滿足系統的時間約束,則認為系統失效。 一個實

32位作業系統64位作業系統區別

1,定位不一樣。64位滿足高效能(機械設計,分析,三維動畫等):大量系統記憶體和浮點效能。    即高科技人員使用,32的是給普通人用的2,配置不同。64系統只能裝64位電腦上,32位的可以裝在32,還可以裝在64上(但是發揮不會64的硬體效能)3,運算速度不同。64的處理器

32位作業系統64位作業系統區別

第一,設計初衷不同。64位作業系統的設計初衷是:滿足機械設計和分析、三維動畫、視訊編輯和創作,以及科學計算和高效能運算應用程式等領域中需要大量記憶體和浮點效能的客戶需求。換句簡明的話說就是:它們

C# 面向對象3 靜態靜態的區別

一個 允許 如果 class 共享 靜態函數 區別 回收 body 靜態和非靜態的區別 1.在非靜態類中,既可以有實例成員(非靜態成員),也可以有靜態成員. 2.在調用實例成員的時候,需要使用對象名.實例成員; 在調用靜態成員的時候,需要使用類名.靜態成員名; 總結:

c#靜態方法靜態方法區別

特殊 靜態成員 pan 們的 gpo ase sna eth key c#靜態方法和非靜態方法區別 C#的類中可以包含兩種方法:C#靜態方法與非靜態方法。那麽他們的定義有什麽不同呢?他們在使用上會有什麽不同呢?讓我們來看看最直觀的差別:使用了static 修飾符的方法

同步異步以及阻塞阻塞的區別

結束 線程 同步異步 成功 -s 區別 狀態 得到 概念 一、同步與異步的區別: 同步:一個服務的完成需要依賴其他服務時,只有等待被依賴的服務完成後,才算完成,這是一種可靠的服務序列。要麽成功都成功,失敗都失敗,服務的狀態可以保持一致。 異步:一個服務的完成需要依賴其他

errorexception的區別,RuntimeExceptionRuntimeException的區別

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

關係型資料庫關係型資料庫區別

關係型資料庫和非關係型資料庫的區別 關係型資料庫 SQLite、Oracle、mysql 特性 1、關係型資料庫,是指採用了關係模型來組織資料的資料庫; 2、關係型資料庫的最大特點就是事務的

socket阻塞阻塞的區別【轉】

轉載地址:http://kalogen.iteye.com/blog/670841簡單點說: 阻塞就是幹不完不準回來,   非組賽就是你先幹,我現看看有其他事沒有,完了告訴我一聲 我們拿最常用的send

Git基本命令-遠端 以及 對稱對稱加密區別

git 基本命令 引擎 程式碼在本地提交,可以實現版本回退和前進。但是如果本地磁碟損壞,程式碼丟失,所以 我們要把程式碼往另一臺電腦(遠端伺服器)存一份。好像網盤。實現程式碼在不同客戶端 (電腦、筆記本、手機)拷貝下載程式碼,提交程式碼到遠端伺服器。 ssh 非對稱加密 ss

圖解阻塞io阻塞io及多路複用機制

文章目錄IOTCP通訊阻塞IO非阻塞IO IO 即Input Stream與Output Stream TCP通訊 在介紹IO之前我們首先我們先了解一下TCP協議,對於TCP通訊來說,每個TCP的scoket核心裡面都有一個接受與傳送緩衝區。 資料在應用層的s

關係型資料庫關係型資料庫區別、oracle與mysql的區別

一、關係型資料庫     關係型資料庫,是指採用了關係模型來組織資料的資料庫。     關係模型是在1970年由IBM的研究員E.F.Codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。     簡單來說,關係模型指的

http的持久連線持久連線區別

HTTP 協議概要 非持久連線 “非持久連線”的概念 某網頁由最基本的 HTML 和10個JPEG 影象構成,10個JPEG 影象檔案存放在同一臺伺服器中。設這個網頁的URL為www.server.com/somepath/index.html。如果使用者請求該網頁並採用

go中緩衝通道緩衝通道區別

1:緩衝通道滿時,試圖往裡面傳送資料,會導致執行緒阻塞 2:緩衝通道為空時,試圖往裡面取資料,會導致執行緒阻塞 3:關閉非緩衝通道時,取資料,會導致程式崩潰 4: 試圖往非緩衝通道傳送資料時,若另一方不接受資料,會導致執行緒阻塞 5:緩衝通道是非同步的,非緩衝通道是非

非同步阻塞的區別

我們說Twisted是一個非同步的網路框架,經常我們也聽到一個詞語叫做非阻塞,那麼他們有什麼區別呢?非同步:呼叫在發出之後,這個呼叫就直接返回,不管有無結果;非同步是過程。 非阻塞:關注的是程式在等待呼叫結果(訊息,返回值)時的狀態,指在不能立刻得到結果之前,該呼叫不會阻塞當

linux中阻塞阻塞的區別

所謂阻塞方式block,顧名思義,就是程序或是執行緒執行到這些函式時必須等待某個事件的發生,如果事件沒有發生,程序或執行緒就被阻塞,函式不能立即返回)。 所謂非阻塞方式non-block,就是程序或執行緒執行此函式時不必非要等待事件的發生,一旦執行肯定返回,以返回值的不同來

java回顧篇——staticstatic的區別

關於static和非static變數的區別。 1. static 修飾的變數稱為類變數或全域性變數或成員變數,在類被載入的時候成員變數即被初始化,與類關聯,只要類存在,static變數就存在。非static修飾的成員變數是在物件new出來的時候劃分儲存空間,是與具體的物件繫

圖解符號連結硬連結的區別i節點的介紹

我們先來介紹一些linux檔案系統的知識。我們知道 linux中一個檔案具有很多屬性,uid,gid,檔案大小,訪問許可權,檔案內容block位置等。這些內容是和檔案中的實際內容分開放的。檔案的屬性是放在叫做 i節點的結構中 ,而檔案內容則放在資料塊中。這個 inode(i