當今嵌入式系統中最重要的組件之一是“RTOS”或“實時操作系統”,它負責從調度任務到啟用 C 和 Python 等高級語言的所有工作。
那么,是什么讓 RTOS 打勾,嵌入式系統開發人員為什么要關心它呢?
RTOS 與 GPOS
要了解 RTOS,讓我們退后一步,看看什么是“通用操作系統”(GPOS)。您可能已經熟悉 GPOS,因為它們存在于您每天使用的設備上,例如您的智能手機和工作 PC(例如,Android、Windows 等)。
通用操作系統中的“通用”意味著操作系統必須實現許多目標,例如提供良好的最終用戶體驗、支持不同類型的程序和硬件以及提供定制選項等功能。
GPOS 傾向于與每個內核一次運行一個執行線程的處理器協同工作。在這里,操作系統的調度程序決定運行哪個程序以及何時運行,并在每個程序之間快速切換。這會產生同時執行的錯覺,并有望提供良好的整體用戶體驗。除此之外,GPOS 還可以提供額外的功能,例如復雜的圖形用戶界面、復雜的文件 I/O 系統等。
另一方面,RTOS 旨在提供可預測的執行模式,并在處理必須符合時限系統的時間約束時使用(即,處理以特定頻率完成或整個系統將失敗) )。因此,與 GPOS 相比,RTOS 通常重量輕且體積小,并且通常僅提供在特定硬件上運行某些類型的應用程序所需的功能。在某些情況下,開發人員可能會修改現有的 RTOS,將其縮減為僅具有特定應用程序所需的功能,和/或自定義其功能或性能特征。
RTOS 可分為:
軟:RTOS 通常可以滿足時間限制的期限;搶占時間通常在幾毫秒內。
堅定:RTOS 有一定的時間限制,時間限制并不嚴格,可能會導致不希望的但可接受的效果。
Hard:RTOS 可以確定地滿足時間期限。硬 RTOS 通常更適用于涉及任務關鍵型應用程序的用例,例如機器人和無人機中的應用程序。硬 RTOS 的搶占時間通常少于幾微秒。
與 GPOS 一樣,RTOS 提供了您期望從操作系統獲得的部分或全部基本功能,例如線程同步、跨界通信(例如,命名管道)、計時器、內存管理等。但是,RTOS 努力做到以符合底層系統和目標應用程序的時間受限要求的方式提供此功能。
會議截止日期
在允許 RTOS 滿足這些時間限制的眾多因素中,任務調度和中斷值得特別提及。
使用 GPOS,調度以通常實現高吞吐量(即,每單位時間完成執行的進程總數)的方式進行處理。但是,這可能意味著高優先級進程的執行將被延遲,以完成多個低優先級任務。另一方面,RTOS 的價值是根據它的響應速度或可預測性來衡量的,而不是它在給定時間段內可以執行的工作量。
在 RTOS 中,調度通常是基于優先級的。大多數 RTOS 使用基于優先級的搶先式任務調度方法。在這里,高優先級進程將在低優先級進程之上執行。使用 GPOS,延遲會隨著需要調度更多線程而累積。RTOS 沒有這樣的問題,因為所有進程和線程的延遲都是有時間限制的。RTOS 還為您提供了一種方法來確保共享系統資源免受并發訪問。
RTOS 的內核是可搶占的,而 GPOS 內核不是可搶占的,這在首先服務高優先級進程和線程時很重要。如果沒有可搶占內核,來自內核內部的請求(例如來自驅動程序或系統服務的請求)將覆蓋所有其他進程和線程。使用 RTOS,只有非常重要的服務請求保留在內核調用中,所有其他服務請求都被視為外部進程和線程。基于內核的服務請求與 RTOS 的有限延遲相關聯,以保持快速和可預測的響應。
RTOS 的今天
開發人員可以在他們的項目中使用多種 RTOS,包括商業(例如,VxWorks、Red Hat Linux 等)和開源產品(例如,FreeRTOS、RTEMS 等)。一些組織還擁有專門為其硬件產品開發的專有 RTOS。
一個這樣的例子是 Qualcomm Technologies 的 QuRT? RTOS,它用于Qualcomm? Snapdragon? 8 系列移動平臺上的Qualcomm? Hexagon? DSP,并作為討論 RTOS 的一個很好的例子,因為它豐富的功能集。
例如,QuRT 提供多線程、互斥體、信號量、定時器、中斷處理、內存管理等,并允許程序和線程在單獨的受保護地址空間中執行,以提高系統的安全性和穩定性。開發人員可以使用Hexagon DSP SDK編寫設計用于在 C/C++ 和/或匯編中利用 QuRT 的用戶程序并使用 QuRT API 訪問 RTOS 服務。每個用戶程序都可以訪問全局堆,并包含一個主線程調用堆棧、數據和文本部分,以及分配額外堆和線程的能力。由于 QuRT 將用戶軟件線程映射到處理器的硬件線程上,因此程序員無需關注底層線程模型。QuRT 可以全局調度最高優先級的可運行軟件線程,并始終將中斷定向到最低優先級的硬件線程。
QuRT 還管理軟件和硬件看門狗定時器,以檢測和重置系統故障。
結論
RTOS 是確保嵌入式設備(例如用于物聯網、機器人和移動設備)的可預測和及時執行的關鍵組件。因此,它的目標是為必須在特定時間范圍內執行的時間受限的應用程序提供設施,同時最大限度地減少延遲,例如由中斷和切換線程引起的延遲。
正如我們所見,有商業、開源和專有的 RTOS 可用于嵌入式系統。它們提供各種選項和功能,例如可定制性、跨平臺或專業支持以及豐富的 SDK 支持。
審核編輯:郭婷
-
嵌入式
+關注
關注
5143文章
19569瀏覽量
315663 -
物聯網
+關注
關注
2927文章
46007瀏覽量
389244 -
RTOS
+關注
關注
24文章
844瀏覽量
120854
發布評論請先 登錄
零延遲響應:安卓工控機如何用實時操作系統(RTOS)賦能工業控制
揭秘LuatOS:實時操作系統RTOS核心庫的關鍵技術剖析!

實時操作系統RTOS選型指南及實例分析
鴻道Intewell操作系統的Linux實時拓展方案

鴻道Intewell操作系統的Windows實時拓展方案

linux是實時系統還是分時操作系統
ARM開發板上的實時操作系統介紹
freertos和rtos區別是什么
鴻道Intewell實時操作系統MIPS架構生態:龍芯2K1000

RTOS的特性和類型
簡單認識RTOS實時操作系統
國產鴻道Intewel操作系統與Codesys高實時虛擬化運動控制解決方案

嵌入式實時操作系統:Intewell操作系統與VxWorks操作系統有啥區別

工業實時操作系統對比:鴻道Intewell跟rt-linux有啥區別

評論