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