實時操做系統 實時操做系統
英文稱Real Time Operating System,簡稱RTOS。
1.實時操做系統定義
實時操做系統(RTOS)是指當外界事件或數據產生時,可以接受並以足夠快的速度予以處理,其處理的結果又能在規定的時間以內來控制生產過程或對處理系統做出快速響應,並控制全部實時任務協調一致運行的操做系統。於是,提供及時響應和高可靠性是其主要特色。實時操做系統有硬實時和軟實時之分,硬實時要求在規定的時間內必須完成操做,這是在操做系統設計時保證的;軟實時則只要按照任務的優先級,儘量快地完成操做便可。咱們一般使用的操做系統在通過必定改變以後就能夠變成實時操做系統。
實時操做系統是保證在必定時間限制內完成特定功能的操做系統。例如,能夠爲確保生產線上的機器人能獲取某個物體而設計一個操做系統。在「硬」實時操做系統中,若是不能在容許時間內完成使物體可達的計算,操做系統將因錯誤結束。在「軟」實時操做系統中,生產線仍然能繼續工做,但產品的輸出會因產品不能在容許時間內到達而減慢,這使機器人有短暫的不生產現象。一些實時操做系統是爲特定的應用設計的,另外一些是通用的。一些通用目的的操做系統稱本身爲實時操做系統。但某種程度上,大部分通用目的的操做系統,如微軟的Windows NT或IBM的OS/390有實時系統的特徵。這就是說,即便一個操做系統不是嚴格的實時系統,它們也能解決一部分實時應用問題。
2.實時操做系統的特徵
1)多任務;
2)有線程優先級
3)多種中斷級別
小的嵌入式操做系統常常須要實時操做系統,內核要知足實時操做系統的要求。
3.實時操做系統的相關概念
(1)基本概念
代碼臨界段:指處理時不可分割的代碼。一旦這部分代碼開始執行則不容許中斷打入;
資源:任何爲任務所佔用的實體;
共享資源:能夠被一個以上任務使用的資源;
任務:也稱做一個線程,是一個簡單的程序。每一個任務被賦予必定的優先級,有它本身的一套CPU寄存器和本身的棧空間。典型地,每一個任務都是一個無限的循環,每一個任務都處在如下五個狀態下:休眠態,就緒態,運行態,掛起態,被中斷態;
任務切換:將正在運行任務的當前狀態(CPU寄存器中的所有內容)保存在任務本身的棧區,而後把下一個將要運行的任務的當前狀態從該任務的棧中從新裝入CPU的寄存器,並開始下一個任務的運行;
內核:負責管理各個任務,爲每一個任務分配CPU時間,並負責任務之間通信。分爲不可剝奪型內核於可剝奪型內核;
調度:內核的主要職責之一,決定輪到哪一個任務運行。通常基於優先級調度法;
(2)關於優先級的問題
任務優先級:分爲優先級不可改變的靜態優先級和優先級可改變的動態優先級;
優先級反轉:優先級反轉問題是實時系統中出現最多的問題。共享資源的分配可致使優先級低的任務先運行,優先級高的任務後運行。解決的辦法是使用「優先級繼承」算法來臨時改變任務優先級,以遏制優先級反轉。
(3)互斥
雖然共享數據區簡化了任務之間的信息交換,可是必須保證每一個任務在處理共享共享數據時的排他性。使之知足互斥條件的通常方法有:關中斷,使用測試並置位指令(TAS),禁止作任務切換,利用信號量。
由於採用實時操做系統的意義就在於可以及時處理各類突發的事件,即處理各類中斷,於是衡量嵌入式實時操做系統的最主要、最具備表明性的性能指標參數無疑應該是中斷響應時間了。中斷響應時間一般被定義爲:
中斷響應時間=中斷延遲時間+保存CPU狀態的時間+該內核的ISR進入函數的執行時間[2]。
中斷延遲時間=MAX(關中斷的最長時間,最長指令時間) + 開始執行ISR的第一條指令的時間[2]。linux
--------------------------------------------------------------------------------------------------------------------------算法
分時操做系統 【詞語】:分時操做系統
【註音】:fēn shí cāo zuò xì tǒng
【英文】:Time-sharing Operating System
【釋義】:使一臺計算機同時爲幾個、幾十個甚至幾百個用戶服務的一種操做系統。把計算機與許多終端用戶鏈接起來,分時操做系統將系統處理機時間與內存空間按必定的時間間隔,輪流地切換給各終端用戶的程序使用。因爲時間間隔很短,每一個用戶的感受就像他獨佔計算機同樣。分時操做系統的特色是可有效增長資源的使用率。例如UNIX系統就採用剝奪式動態優先的CPU調度,有力地支持分時操做。
產生分時系統是爲了知足用戶需求所造成的一種新型 OS 。它與多道批處理系統之間,有着大相徑庭的性能差異。用戶的需求具體表如今如下幾個方面: 人—機交互 共享主機 便於用戶上機
分時系統的基本思想
時間片 :是把計算機的系統資源(尤爲是 CPU時間)進行時間上的分割,每一個時間段稱爲一個時間片,每一個用戶依次輪流使用時間片。
分時技術:把處理機的運行時間分爲很短的時間片,按時間片輪流把處理機分給各聯機做業使用。
分時操做系統:是一種聯機的多用戶交互式的操做系統。通常採用時間片輪轉的方式使一臺計算機爲多個終端服務。對每一個用戶能保證足夠快的響應時間,並提供交互會話能力。
設計目標: 對用戶的請求及時響應,並在可能條件下儘可能提升系統資源的利用率。
適合辦公自動化、教學及事務處理等要求人機會話的場合。
工做方式:
一臺主機鏈接了若干個終端;每一個終端有一個用戶在使用;交互式地向系統提出命令請求;系統接受每一個用戶的命令;採用時間片輪轉方式處理服務請求;並經過交互方式在終端上向用戶顯示結果;用戶根據上步結果發出下道命令
分時系統實現中的關鍵問題:及時接收。及時處理。
特徵:
交互性:用戶與系統進行人機對話。
多路性:多用戶同時在各自終端上使用同一CPU。
獨立性:用戶可彼此獨立操做,互不干擾,互不混淆。
及時性:用戶在短期內可獲得系統的及時回答。
影響響應時間的因素:終端數目多少、時間片的大小、信息交換量、信息交換速度。服務器
------------------------------------------------------------------------------------------------------------函數
例子:性能
分時——如今流行的PC,服務器都是採用這種運行模式,即把CPU的運行分紅若干時間片分別處理不一樣的運算請求
實時——通常用於單片機上,好比電梯的上下控制中,對於按鍵等動做要求進行實時處理測試
linux是分時系統,不過能夠改爲實時的如:UCOS就是linux修改而來的實時系統,至於他們的區別,下以引用百度中的相似回答,我的感受簡單明瞭:「分時系統是 一個系統能夠同時爲兩個或兩個以上的帳戶服務!
實時系統 是能當即對指令作出反應的操做系統!微軟的常見系統不能吧!並且還死機!戰鬥機中的操做系統就是實時的系統,想一想若是別人打仗時戰鬥機中的電腦反應的是飛行員上一條指令或死機了,誰還敢開這架飛機呢?」操作系統