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