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

基于LuatOS核心庫的實時操作系統(tǒng)開發(fā):從理論到實踐~

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

ARM嵌入式實時操作系統(tǒng)比較
鴻道Intewell操作系統(tǒng)的Windows實時拓展方案

linux是實時系統(tǒng)還是分時操作系統(tǒng)
ARM開發(fā)板上的實時操作系統(tǒng)介紹
freertos和rtos區(qū)別是什么
鴻道Intewell實時操作系統(tǒng)MIPS架構(gòu)生態(tài):龍芯2K1000

RTOS的特性和類型
簡單認(rèn)識RTOS實時操作系統(tǒng)
國產(chǎn)鴻道Intewel操作系統(tǒng)與Codesys高實時虛擬化運動控制解決方案

嵌入式實時操作系統(tǒng):Intewell操作系統(tǒng)與VxWorks操作系統(tǒng)有啥區(qū)別

工業(yè)實時操作系統(tǒng)對比:鴻道Intewell跟rt-linux有啥區(qū)別

評論