RTOS是一種架構。歷史以來,任何一個階段都有一定的軟件架構在主宰軟件行業。最開始的架構是前後臺的超循環模式。While(1)大循環是後臺,中斷異步處理是前臺。這種結構直至現在也很多公司使用,適合簡單的、資源不多的單片機做一些簡單的控制處理。但是如果需要處理多個的任務,這種超循環模式將變得難以控制,而且實時性也變的十分差,一個任務卡住了,下個任務執行時間難以預測,任何優秀的產品都是離不開現實需求,於是RTOS孕育而生。
RTOS以多任務,實時性強,提供多種服務爲軟件工程師解決了超循環問題。對於RTOS,一個任務的卡死,並不影響另一個任務的運行。RTOS每個任務都有機會佔有cpu全部的資源(單核情況),使用RTOS的用戶只需要關心怎樣去規劃任務,包括任務的優先級、時間片,以及任務之間的同步、通訊就可以。
概念解析:
1. 任務、進程、線程
Linux中內核層的進程等於線程,用戶層的進程是由線程組成的,同一進程的各個線程可以使用該進程的全部資源(比如消息隊列、信號量等)。
2. 軟實時和硬實時
軟實時:儘可能快地完成操作。
硬實時:能夠在指定的期限完成實時任務(即便在最壞的處理負載下也能如此)的操作系統,超過截止期限後將造成災難性後果。
軟實時對於任務的平均響應時間要低於某個值(Deadline),而硬實時是在最壞的情況下對於任務的響應時間要低於某個值。
在RTOS中進程等於線程等於任務,一般RTOS是沒有分層的(後面會提到爲什麼會這樣),一般稱作任務。
操作系統在作者看來就是爲用戶做好一些服務,比如提供任務切換、信號量、消息隊列、互斥鎖等服務;在用戶看來就是管理軟硬件,寫好任務,使用操作系統提供的API,讓操作系統去調度任務。