大家平時玩單片機基本上對于μC/OS、FreeRTOS、ThreadX這些操作系統(tǒng)非常熟悉了,他們都屬于實時操作系統(tǒng)(RTOS),在工業(yè)領(lǐng)域比較廣泛;然而對于linux這樣的基于時間片劃分的非實時系統(tǒng)就難以滿足實時性需求,但是目前l(fā)inux社區(qū)已經(jīng)增加了較多版本的實時性補丁,給linux內(nèi)核打上實時補丁后其實時性會得到大幅度提升,那么我們一起來看看兩者的區(qū)別。
如下分享一下:“l(fā)inux是實時系統(tǒng)還是分時操作系統(tǒng)”
1 實時操作系統(tǒng)-RTOS
RTOS,英文全稱Real Time Operating System,即實時操作系統(tǒng)。
1.1 實時操作系統(tǒng)定義
實時操作系統(tǒng)(RTOS)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時,能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實時任務(wù)協(xié)調(diào)一致運行的操作系統(tǒng)。
因而,提供及時響應(yīng)和高可靠性是其主要特點。
實時操作系統(tǒng)有硬實時和軟實時之分,硬實時要求在規(guī)定的時間內(nèi)必須完成操作,這是在操作系統(tǒng)設(shè)計時保證的。
軟實時則只要按照任務(wù)的優(yōu)先級,盡可能快地完成操作即可。我們通常使用的操作系統(tǒng)在經(jīng)過一定改變之后就可以變成實時操作系統(tǒng)。
實時操作系統(tǒng)是保證在一定時間限制內(nèi)完成特定功能的操作系統(tǒng)。例如,可以為確保生產(chǎn)線上的機器人能獲取某個物體而設(shè)計一個操作系統(tǒng)。在“硬”實時操作系統(tǒng)中,如果不能在允許時間內(nèi)完成使物體可達的計算,操作系統(tǒng)將因錯誤結(jié)束。
在“軟”實時操作系統(tǒng)中,生產(chǎn)線仍然能繼續(xù)工作,但產(chǎn)品的輸出會因產(chǎn)品不能在允許時間內(nèi)到達而減慢,這使機器人有短暫的不生產(chǎn)現(xiàn)象。一些實時操作系統(tǒng)是為特定的應(yīng)用設(shè)計的,另一些是通用的。
一些通用目的的操作系統(tǒng)稱自己為實時操作系統(tǒng)。但某種程度上,大部分通用目的的操作系統(tǒng),如微軟的Windows NT或IBM的OS/390有實時系統(tǒng)的特征。這就是說,即使一個操作系統(tǒng)不是嚴(yán)格的實時系統(tǒng),它們也能解決一部分實時應(yīng)用問題。
1.2 實時操作系統(tǒng)的特征
1)多任務(wù);
2)有線程優(yōu)先級
3)多種中斷級別
小的嵌入式操作系統(tǒng)經(jīng)常需要實時操作系統(tǒng),內(nèi)核要滿足實時操作系統(tǒng)的要求。
1.3 實時操作系統(tǒng)的相關(guān)概念
(1)基本概念
代碼臨界段:指處理時不可分割的代碼。一旦這部分代碼開始執(zhí)行則不允許中斷打入;
資源:任何為任務(wù)所占用的實體;
共享資源:可以被一個以上任務(wù)使用的資源;
任務(wù):也稱作一個線程,是一個簡單的程序。每個任務(wù)被賦予一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的??臻g。典型地,每個任務(wù)都是一個無限的循環(huán),每個任務(wù)都處在以下五個狀態(tài)下:休眠態(tài),就緒態(tài),運行態(tài),掛起態(tài),被中斷態(tài);
任務(wù)切換:將正在運行任務(wù)的當(dāng)前狀態(tài)(CPU寄存器中的全部內(nèi)容)保存在任務(wù)自己的棧區(qū),然后把下一個將要運行的任務(wù)的當(dāng)前狀態(tài)從該任務(wù)的棧中重新裝入CPU的寄存器,并開始下一個任務(wù)的運行;
內(nèi)核:負(fù)責(zé)管理各個任務(wù),為每個任務(wù)分配CPU時間,并負(fù)責(zé)任務(wù)之間通訊。分為不可剝奪型內(nèi)核于可剝奪型內(nèi)核;
調(diào)度:內(nèi)核的主要職責(zé)之一,決定輪到哪個任務(wù)運行。一般基于優(yōu)先級調(diào)度法;
(2)關(guān)于優(yōu)先級的問題
任務(wù)優(yōu)先級:分為優(yōu)先級不可改變的靜態(tài)優(yōu)先級和優(yōu)先級可改變的動態(tài)優(yōu)先級;
優(yōu)先級反轉(zhuǎn):優(yōu)先級反轉(zhuǎn)問題是實時系統(tǒng)中出現(xiàn)最多的問題。共享資源的分配可導(dǎo)致優(yōu)先級低的任務(wù)先運行,優(yōu)先級高的任務(wù)后運行。解決的辦法是使用“優(yōu)先級繼承”算法來臨時改變?nèi)蝿?wù)優(yōu)先級,以遏制優(yōu)先級反轉(zhuǎn)。
(3)互斥
雖然共享數(shù)據(jù)區(qū)簡化了任務(wù)之間的信息交換,但是必須保證每個任務(wù)在處理共享共享數(shù)據(jù)時的排他性。使之滿足互斥條件的一般方法有:關(guān)中斷,使用測試并置位指令(TAS),禁止做任務(wù)切換,利用信號量。
因為采用實時操作系統(tǒng)的意義就在于能夠及時處理各種突發(fā)的事件,即處理各種中斷,因而衡量嵌入式實時操作系統(tǒng)的最主要、最具有代表性的性能指標(biāo)參數(shù)無疑應(yīng)該是中斷響應(yīng)時間了。中斷響應(yīng)時間通常被定義為:
中斷響應(yīng)時間=中斷延遲時間+保存CPU狀態(tài)的時間+該內(nèi)核的ISR進入函數(shù)的執(zhí)行時間。
中斷延遲時間=MAX(關(guān)中斷的最長時間,最長指令時間) + 開始執(zhí)行ISR的第一條指令的時間。
2 分時操作系統(tǒng)-TSOS
TSOS,英文全稱Time-sharing Operating System,即分時操作系統(tǒng)。
使一臺計算機同時為幾個、幾十個甚至幾百個用戶服務(wù)的一種操作系統(tǒng)叫分時操作系統(tǒng)。把計算機與許多終端用戶連接起來,分時操作系統(tǒng)將系統(tǒng)處理機時間與內(nèi)存空間按一定的時間間隔,輪流地切換給各終端用戶的程序使用。
由于時間間隔很短,每個用戶的感覺就像他獨占計算機一樣。分時操作系統(tǒng)的特點是可有效增加資源的使用率。例如UNIX系統(tǒng)就采用剝奪式動態(tài)優(yōu)先的CPU調(diào)度,有力地支持分時操作。
產(chǎn)生分時系統(tǒng)是為了滿足用戶需求所形成的一種新型 OS 。它與多道批處理系統(tǒng)之間,有著截然不同的性能差別。用戶的需求具體表現(xiàn)在以下幾個方面: 人—機交互 共享主機 便于用戶上機
2.1 分時系統(tǒng)的基本思想
時間片:是把計算機的系統(tǒng)資源(尤其是 CPU時間)進行時間上的分割,每個時間段稱為一個時間片,每個用戶依次輪流使用時間片。
分時技術(shù):把處理機的運行時間分為很短的時間片,按時間片輪流把處理機分給各聯(lián)機作業(yè)使用。
分時操作系統(tǒng):是一種聯(lián)機的多用戶交互式的操作系統(tǒng)。一般采用時間片輪轉(zhuǎn)的方式使一臺計算機為多個終端服務(wù)。對每個用戶能保證足夠快的響應(yīng)時間,并提供交互會話能力。
設(shè)計目標(biāo):對用戶的請求及時響應(yīng),并在可能條件下盡量提高系統(tǒng)資源的利用率。
適合辦公自動化、教學(xué)及事務(wù)處理等要求人機會話的場合。
2.2 工作方式
一臺主機連接了若干個終端;每個終端有一個用戶在使用;交互式地向系統(tǒng)提出命令請求;系統(tǒng)接受每個用戶的命令;采用時間片輪轉(zhuǎn)方式處理服務(wù)請求;并通過交互方式在終端上向用戶顯示結(jié)果;用戶根據(jù)上步結(jié)果發(fā)出下道命令
分時系統(tǒng)實現(xiàn)中的關(guān)鍵問題:及時接收。及時處理。
2.3 特征
交互性:用戶與系統(tǒng)進行人機對話。
多路性:多用戶同時在各自終端上使用同一CPU。
獨立性:用戶可彼此獨立操作,互不干擾,互不混淆。
及時性:用戶在短時間內(nèi)可得到系統(tǒng)的及時回答。
影響響應(yīng)時間的因素:終端數(shù)目多少、時間片的大小、信息交換量、信息交換速度。
3 兩者區(qū)別
RTOS和TSOS各有各的特點,RTOS一般用于相對低速的MCU,比如運動控制類、按鍵輸入等動作要求實時處理的系統(tǒng),一般要求ms級,甚至us級響應(yīng)。 分時:現(xiàn)在流行的PC,服務(wù)器都是采用這種運行模式,即把CPU的運行分成若干時間片分別處理不同的運算請求。 實時:一般用于單片機上,比如電梯的上下控制中,對于按鍵等動作要求進行實時處理。
4 最后
通過以上分析,可以明確linux是分時系統(tǒng),不過可以改成實時的如:ucLinux就是linux修改而來的實時系統(tǒng),至于他們的區(qū)別,可以引用百度中的類似回答: 分時系統(tǒng)是一個系統(tǒng)可以同時為兩個或兩個以上的賬戶服務(wù)! 實時系統(tǒng)是能立即對指令做出反應(yīng)的操作系統(tǒng)!微軟的常見系統(tǒng)不能吧!而且還死機!戰(zhàn)斗機中的操作系統(tǒng)就是實時的系統(tǒng),想想如果別人打仗時戰(zhàn)斗機中的電腦反應(yīng)的是飛行員上一條指令或死機了,誰還敢開這架飛機呢?
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209322 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6801瀏覽量
123283 -
實時系統(tǒng)
+關(guān)注
關(guān)注
0文章
38瀏覽量
14467
原文標(biāo)題:Linux是實時操作系統(tǒng)嗎?
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論