嵌入式實時操作系統RTOS里實時的衡量指標到底是什麼呢?1s肯定達不到實時,那需要多快呢?100ms,10ms,1ms,還是100us,10us? 還有這些指標是如何測量的呢? 一個關於1553B匯流排消息周期實時性指標的例子 一篇論文中關於1553B匯流排消息周期實時性的指標,從這個例子中可以看出,對 ...
嵌入式實時操作系統RTOS里實時的衡量指標到底是什麼呢?1s肯定達不到實時,那需要多快呢?100ms,10ms,1ms,還是100us,10us?
還有這些指標是如何測量的呢?
一個關於1553B匯流排消息周期實時性指標的例子
一篇論文中關於1553B匯流排消息周期實時性的指標,從這個例子中可以看出,對於windows這種非實時操作系統而言,10ms的精度也很難保證。因此,實時性指標要求任務需要至少滿足10ms的指標,甚至更高。
韓春慧,王煜,黃書華,許權,張珅,魯月林. 基於BM3803的1553B匯流排通信軟體設計 [J]. 中國空間科學技術, 2019,39(234), 05 65-72.
論文中需要完成的1553匯流排測試終端的消息的周期數值偏差較為嚴格,
對於任務1廣播時間碼,周期為1s,周期偏差不能超過100us,
對於任務7系統同步,周期為2s,周期偏差不能超過10 000us=10ms,如下圖所示。
如果使用傳統的windows+1553B-PCI板卡方案的話,不能保證以上的精度;所以,論文使用了嵌入式實時操作系統的方案,BM3803+uCOS+61580,該系統可以滿足上圖的精度。
下表為實際測試結果,對於任務1,採用嵌入式實時操作系統方案,周期精確度偏差平均為8us,而採用windows方案則高達13ms,超過了100us=0.1ms的精度要求。
其它任務的周期精度要求均為10ms以內,對於嵌入式實時操作系統方案,周期精度平均1.5ms,而windows則為15ms,超過了精度要求。
論文
鏈接:https://pan.baidu.com/s/15P6VCZqdieAlSH9Mq8anmg
提取碼:o1vq
關於實時性都有哪些指標
expresslogic有一個文檔Measuring RTOS Real-Time Performance,其中描述了實時性的各種指標,最後,介紹了其RTOS實時性測量軟體。
https://rtos.com/wp-content/uploads/2017/10/EL_Measuring_RTOS_Real-Time_Performance.pdf
主要分為兩部分,
一是中斷處理實時性,主要包括以下步驟:
(1)中斷當前正在執行的任務,
(2)保存當前任務上下文,
(3)開始執行中斷服務程式ISR,
(4)ISR中進行一些處理,以確定需要採取的動作,
(5)保存一些中斷相關的關鍵數據,
(6)設置一些必須的輸出,
(7)確定該執行哪個任務(一般中斷到來之後,需要的處理會比較多,一般中斷中會處理必須的事情,剩下的處理由某個任務來處理)
(8)清除中斷狀態寄存器,
(9)將控制轉移到要執行的任務。
二是系統服務實時性,包括
(1)在某個事件發生時調度一個任務執行,
(2)任務之間傳遞消息(消息隊列),
(3)申明公共資源三方面(信號量等)。
TNKernel-RX/Thread-Metric/,某個操作系統使用了Thread Metric
源代碼:https://github.com/msalau/TNKernel-RX/tree/master/Thread-Metric
pdf鏈接:https://pan.baidu.com/s/1pJH2azMJb8QNmYZwXUQpFA
提取碼:t421