即時作業系統 即時作業系統 英文稱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]。--------------------------------------------------------------------------------------------------------------------------分時作業系統 【詞語】:分時作業系統 【注音】:fēn shí cāo zuò xì tǒng 【英文】:Time-sharing Operating System 【釋義】:使一台電腦同時為幾個、幾十個甚至幾百個使用者服務的一種作業系統。把電腦與許多終端使用者串連起來,分時作業系統將系統處理機時間與記憶體空間按一定的時間間隔,輪流地切換給各終端使用者的程式使用。由於時間間隔很短,每個使用者的感覺就像他獨佔電腦一樣。分時作業系統的特點是可有效增加資源的使用率。例如UNIX系統就採用剝奪式動態優先的CPU調度,有力地支援分時操作。 產生分時系統是為了滿足使用者需求所形成的一種新型 OS 。它與多道批處理系統之間,有著截然不同的效能差別。使用者的需求具體表現在以下幾個方面: 人—機互動 共用主機 便於使用者上機 分時系統的基本思想 時間片 :是把電腦的系統資源(尤其是 CPU時間)進行時間上的分割,每個時間段稱為一個時間片,每個使用者依次輪流使用時間片。 分時技術:把處理機的已耗用時間分為很短的時間片,按時間片輪流把處理機分給各聯機作業使用。 分時作業系統:是一種聯機的多使用者互動作業系統。一般採用時間片輪轉的方式使一台電腦為多個終端服務。對每個使用者能保證足夠快的回應時間,並提供互動會話能力。 設計目標: 對使用者的請求及時響應,並在可能條件下盡量提高系統資源的利用率。 適合辦公自動化、教學及交易處理等要求人機會話的場合。 工作方式: 一台主機串連了若干個終端;每個終端有一個使用者在使用;互動式地向系統提出命令請求;系統接受每個使用者的命令;採用時間片輪轉方式處理服務要求;並通過互動方式在終端上向使用者顯示結果;使用者根據上步結果發出下道命令 分時系統實現中的關鍵問題:及時接收。及時處理。 特徵: 互動性:使用者與系統進行人機對話。 多路性:多使用者同時在各自終端上使用同一CPU。 獨立性:使用者可彼此獨立操作,互不干擾,互不混淆。 及時性:使用者在短時間內可得到系統的及時回答。 影響回應時間的因素:終端數目多少、時間片的大小、資訊交換量、資訊交換速度。------------------------------------------------------------------------------------------------------------例子:分時——現在流行的PC,伺服器都是採用這種運行模式,即把CPU的運行分成若干時間片分別處理不同的運算請求即時——一般用於單片機上,比如電梯的上下控制中,對於按鍵等動作要求進行即時處理linux是分時系統,不過可以改成即時的如:UCOS就是linux修改而來的即時系統,至於他們的區別,下以引用百度中的類似回答,個人感覺簡單明了:“分時系統是 一個系統可以同時為兩個或兩個以上的賬戶服務。即時系統 是能立即對指令做出反應的作業系統。微軟的常見系統不能吧。而且還死機。戰鬥機中的作業系統就是即時的系統,想想如果別人打仗時戰鬥機中的電腦反應的是飛行員上一條指令或死機了,誰還敢開這架飛機呢。”