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

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

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

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

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

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

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

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

評(píng)論