即時作業系統- 維基百科,自由的百科全書 - Wikipedia
文章推薦指數: 80 %
即時作業系統(Real-time operating system, RTOS),又稱實時作業系統,它會按照排序執行、管理系統資源,並為開發應用程式提供一致的基礎。
即時作業系統
語言
監視
編輯
即時作業系統(Real-timeoperatingsystem,RTOS),又稱實時作業系統,它會按照排序執行、管理系統資源,並為開發應用程式提供一致的基礎。
實時操作系統與一般的操作系統相比,最大的特色就是「實時性」[1],如果有一個任務需要執行,實時操作系統會馬上(在較短時間內)執行該任務,不會有較長的延時。
這種特性保證了各個任務的及時執行。
設計實時操作系統的首要目標不是高的吞吐量,而是保證任務在特定時間內完成,因此衡量一個實時操作系統堅固性的重要指標,是系統從接收一個任務,到完成該任務所需的時間,其時間的變化稱為抖動。
可以依抖動將實時操作系統分為兩種:硬實時操作系統及軟實時操作系統,硬實時操作系統比軟實時操作系統有更少的抖動:
硬實時操作系統必須使任務在確定的時間內完成。
軟實時操作系統能讓絕大多數任務在確定時間內完成。
[2]實時操作系統與一般的操作系統有着不同的調度算法。
普通的操作系統的調度器對於線程優先級等方面的處理更加靈活;而實時操作系統追求最小的中斷延時(英語:Interruptlatency)和線程切換延時。
[3]通常都會有最基礎的內核,以及外加上去的模組,像是檔案系統、網路協定堆疊和應用、裝置驅動程式等模組。
RTOS的內核通常會有:排程器、物件、服務
目次
1設計理念
2任務調度
2.1排程算法
3RTOS舉例
3.1開放原始碼&免費
3.2開放原始碼
3.3非開放原始碼
4參考文獻
設計理念編輯
通常,實時操作系統分為兩大類:
事件驅動型。
當一個高優先級的任務需要執行時,系統會自動切換到這個任務。
這種根據優先級調度任務的方式稱為搶占式任務處理。
時間觸發型。
每個任務在各自設定好的的時間間隔內重複、輪流調度。
時間觸發型設計往往比較嚴格地調度任務,具有更好的多任務處理能力。
多個任務被不停地輪流調度,在宏觀上,就相當於一個CPU同時執行多個任務。
在過去,CPU在切換任務時往往需要多個機器周期,在這段時間內,CPU不能處理其他任何任務。
例如,一個20MHz的摩托羅拉68000處理器(1980年代後期),在切換任務時需要花費20微秒。
(相比之下,一個100MHz的ARM架構的處理器(2008年之後的)只需要3微秒。
)[4][5]因此,早期的實時操作系統通過減少任務切換次數來避免消耗過多CPU時間。
任務調度編輯
在典型的設計中[來源請求],一個任務有以下三種狀態:
正在運行(Running,正在CPU中執行)
待命(Ready,等待執行)
阻塞(Blocked,任務暫停,等待一個事件的發生,例如接收一組數據)由於CPU在某個時間只能執行一個任務,大部分任務,在大部分時間,處於阻塞或待命狀態。
可能會有大量項目在待命列表里等待執行,這取決於系統所需的任務數量以及調度器的類型。
通常情況下,對於簡單的時間觸發式調度器來說,待命任務列表的數據結構的設計要儘可能縮短最壞情況下,程序在調度器關鍵部分的執行時間,以防止其他任務一直在待命列表中,無法及時執行。
因此,在這種調度器中,應儘可能避免搶占式任務,甚至應該關閉調度器之外的所有中斷。
當然,待命任務列表的數據結構也應根據這個系統需要的最大任務數量做進一步的優化。
如果待命任務列表中的任務較多,雙向鍊表是一個比較好的選擇。
如果待命任務列表通常包含少量任務,但偶爾會出現較多任務,任務應該根據優先級排序。
這樣一來,要尋找最高優先級的任務,就不必要在整個列表中一個一個地尋找。
而插入任務需要從列表中的第一個任務開始,向後尋找,直到找到比要插入的任務優先級低的任務,然後插入到該任務之前;如果沒有找到優先級更低的任務,就插入到任務列表末尾。
在尋找任務列表,準備插入任務的過程中,應該注意避免搶占。
長的關鍵部分應分為多個小的部分分別執行。
如果在尋找任務列表,要插入低優先級任務的時候,一個中斷發生使高優先級任務進入待命狀態,高優先級任務應該在低優先級任務被插入之前立刻被插入列表和執行。
在更先進的系統中,實時任務和許多非實時任務共享運算資源,這時候待命任務列表會變得很長。
在這種系統中,待命任務列表可能不適合用鍊表的結構。
排程算法編輯
一些實時操作系統中常用的算法:
合作式調度搶占式調度
Rate-monotonicscheduling
Round-robinscheduling
Fixedprioritypre-emptivescheduling,animplementationofpreemptivetimeslicing
Fixed-PrioritySchedulingwithDeferredPreemption
Fixed-PriorityNon-preemptiveScheduling
Criticalsectionpreemptivescheduling
Statictimescheduling
EarliestDeadlineFirstapproach
Stochasticdigraphswithmulti-threadedgraphtraversalRTOS舉例編輯
WinCE、VxWorks、μC/OS-Ⅱ等運用較廣。
Linux是作為通用操作系統開發的,其內核在實時處理能力上先天不足,部分網絡開發社區將其經過改造能在一定程度上成為實時操作系統。
[6]
開放原始碼&免費編輯
Raw-OS[1](頁面存檔備份,存於網際網路檔案館)
CoOS[2]開放原始碼編輯
SylixOS[3](頁面存檔備份,存於網際網路檔案館)
RT-Thread[4](頁面存檔備份,存於網際網路檔案館)
eCos
Fiasco.OC[5](頁面存檔備份,存於網際網路檔案館)
FreeRTOS[6](頁面存檔備份,存於網際網路檔案館)
Phoenix-RTOS
Nut/OS[7](頁面存檔備份,存於網際網路檔案館)
Prex
RTAI
RTEMS
RTLinux
SHaRK[8](頁面存檔備份,存於網際網路檔案館)
TRONProject
Xenomai[9]
CoOS[10]
OneOS[11](頁面存檔備份,存於網際網路檔案館)
ChibiOS非開放原始碼編輯
ArdenceRTX
BeOS
ChorusOS
DNIX
DMERT
e-Tkernel
HOPENOS
embOS(Segger)
INTEGRITY
ITRON
LynxOS
MERT
MicroC/OS-II
MQXRTOS[12](頁面存檔備份,存於網際網路檔案館)
Nucleus
OS-9
OSE
OSEK/VDX
OSEKtime
PDOS
PharLapETS
PikeOS
Portos
pSOS
QNX
RMX
RSX-11
RT-11
RTOS-UH
RTXC
SalvoRTOS[13](頁面存檔備份,存於網際網路檔案館)
SINTRANIII
SymbianOS
ThreadX
VRTX
VxWorks
WindowsCE
µnOS
UNIX-RTR
REX
HP-1000/RTE[14]參考文獻編輯
^ResponseTimeandJitter.[2013-08-16].(原始內容存檔於2014-04-14).
^Tanenbaum,Andrew.ModernOperatingSystems.UpperSaddleRiver,NJ:Pearson/PrenticeHall.2008:160.ISBN 978-0-13-600663-3.
^RTOSConcepts.[2013-08-16].(原始內容存檔於2013-04-06).
^Contextswitchingtime.SeggerMicrocontrollerSystems.[2009-12-20].(原始內容存檔於2011-07-16).
^RTOSperformancecomparisononemb4fun.de.[2013-08-16].(原始內容存檔於2013-01-11).
^KarimYaghmour;JonMasters,GiladBen-Yossef&PhilippeGerum.BuildingEmbeddedLinuxSystems.O』ReillyMedia,Inc. :354.ISBN 978-0-596-52968-0. 引文使用過時參數coauthors(幫助)
取自「https://zh.wikipedia.org/w/index.php?title=实时操作系统&oldid=71303968」
延伸文章資訊
- 116. 即時作業系統(Real-time Operating System) | 宅學習
即時作業系統(Real-time operating system,RTOS),是指作業系統要在一個固定時間內,做出正確反應,以及對時序及穩定度的要求十分嚴格,它會按照 ...
- 2第二十天補充-------即時作業系統 - iT 邦幫忙
即時作業系統(Real-time operating system,RTOS),是指作業系統要在一個固定時間內,做出正確反應,以及對時序及穩定度的要求十分嚴格,它會按照排序執行、管理系統 ...
- 3作業系統、分散式與即時系統 - 國立陽明交通大學資訊工程學系
作業系統、分散式與即時系統. 作業系統的主要任務是將底層的硬體抽象化,使得應用軟體能以更方便、更有效率、更安全的方式使用硬體資源。換言之,硬體效能是否能徹底被 ...
- 4即時作業系統- 維基百科,自由的百科全書 - Wikipedia
即時作業系統(Real-time operating system, RTOS),又稱實時作業系統,它會按照排序執行、管理系統資源,並為開發應用程式提供一致的基礎。
- 5real-time system - 即時系統 - 國家教育研究院雙語詞彙
即時系統. real-time system. 2003年6月 資訊與通信術語辭典. 名詞解釋: 以快速處理外來資料,並須在一定時間內做出反應的電腦系統。