當(dāng)今嵌入式系統(tǒng)中最重要的組件之一是“RTOS”或“實(shí)時(shí)操作系統(tǒng)”,它負(fù)責(zé)從調(diào)度任務(wù)到啟用 C 和 Python 等高級(jí)語(yǔ)言的所有工作。
那么,是什么讓 RTOS 打勾,嵌入式系統(tǒng)開(kāi)發(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),例如提供良好的最終用戶(hù)體驗(yàn)、支持不同類(lèi)型的程序和硬件以及提供定制選項(xiàng)等功能。
GPOS 傾向于與每個(gè)內(nèi)核一次運(yùn)行一個(gè)執(zhí)行線(xiàn)程的處理器協(xié)同工作。在這里,操作系統(tǒng)的調(diào)度程序決定運(yùn)行哪個(gè)程序以及何時(shí)運(yùn)行,并在每個(gè)程序之間快速切換。這會(huì)產(chǎn)生同時(shí)執(zhí)行的錯(cuò)覺(jué),并有望提供良好的整體用戶(hù)體驗(yàn)。除此之外,GPOS 還可以提供額外的功能,例如復(fù)雜的圖形用戶(hù)界面、復(fù)雜的文件 I/O 系統(tǒng)等。
另一方面,RTOS 旨在提供可預(yù)測(cè)的執(zhí)行模式,并在處理必須符合時(shí)限系統(tǒng)的時(shí)間約束時(shí)使用(即,處理以特定頻率完成或整個(gè)系統(tǒng)將失敗) )。因此,與 GPOS 相比,RTOS 通常重量輕且體積小,并且通常僅提供在特定硬件上運(yùn)行某些類(lèi)型的應(yīng)用程序所需的功能。在某些情況下,開(kāi)發(fā)人員可能會(huì)修改現(xiàn)有的 RTOS,將其縮減為僅具有特定應(yīng)用程序所需的功能,和/或自定義其功能或性能特征。
RTOS 可分為:
軟:RTOS 通??梢詽M(mǎn)足時(shí)間限制的期限;搶占時(shí)間通常在幾毫秒內(nèi)。
堅(jiān)定:RTOS 有一定的時(shí)間限制,時(shí)間限制并不嚴(yán)格,可能會(huì)導(dǎo)致不希望的但可接受的效果。
Hard:RTOS 可以確定地滿(mǎn)足時(shí)間期限。硬 RTOS 通常更適用于涉及任務(wù)關(guān)鍵型應(yīng)用程序的用例,例如機(jī)器人和無(wú)人機(jī)中的應(yīng)用程序。硬 RTOS 的搶占時(shí)間通常少于幾微秒。
與 GPOS 一樣,RTOS 提供了您期望從操作系統(tǒng)獲得的部分或全部基本功能,例如線(xiàn)程同步、跨界通信(例如,命名管道)、計(jì)時(shí)器、內(nèi)存管理等。但是,RTOS 努力做到以符合底層系統(tǒng)和目標(biāo)應(yīng)用程序的時(shí)間受限要求的方式提供此功能。
會(huì)議截止日期
在允許 RTOS 滿(mǎn)足這些時(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è)性來(lái)衡量的,而不是它在給定時(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)度更多線(xiàn)程而累積。RTOS 沒(méi)有這樣的問(wèn)題,因?yàn)樗羞M(jìn)程和線(xiàn)程的延遲都是有時(shí)間限制的。RTOS 還為您提供了一種方法來(lái)確保共享系統(tǒng)資源免受并發(fā)訪(fǎng)問(wèn)。
RTOS 的內(nèi)核是可搶占的,而 GPOS 內(nèi)核不是可搶占的,這在首先服務(wù)高優(yōu)先級(jí)進(jìn)程和線(xiàn)程時(shí)很重要。如果沒(méi)有可搶占內(nèi)核,來(lái)自?xún)?nèi)核內(nèi)部的請(qǐng)求(例如來(lái)自驅(qū)動(dòng)程序或系統(tǒng)服務(wù)的請(qǐng)求)將覆蓋所有其他進(jìn)程和線(xiàn)程。使用 RTOS,只有非常重要的服務(wù)請(qǐng)求保留在內(nèi)核調(diào)用中,所有其他服務(wù)請(qǐng)求都被視為外部進(jìn)程和線(xiàn)程?;趦?nèi)核的服務(wù)請(qǐng)求與 RTOS 的有限延遲相關(guān)聯(lián),以保持快速和可預(yù)測(cè)的響應(yīng)。
RTOS 的今天
開(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)上的Qualcomm? Hexagon? DSP,并作為討論 RTOS 的一個(gè)很好的例子,因?yàn)樗S富的功能集。
例如,QuRT 提供多線(xiàn)程、互斥體、信號(hào)量、定時(shí)器、中斷處理、內(nèi)存管理等,并允許程序和線(xiàn)程在單獨(dú)的受保護(hù)地址空間中執(zhí)行,以提高系統(tǒng)的安全性和穩(wěn)定性。開(kāi)發(fā)人員可以使用Hexagon DSP SDK編寫(xiě)設(shè)計(jì)用于在 C/C++ 和/或匯編中利用 QuRT 的用戶(hù)程序并使用 QuRT API 訪(fǎng)問(wèn) RTOS 服務(wù)。每個(gè)用戶(hù)程序都可以訪(fǎng)問(wèn)全局堆,并包含一個(gè)主線(xiàn)程調(diào)用堆棧、數(shù)據(jù)和文本部分,以及分配額外堆和線(xiàn)程的能力。由于 QuRT 將用戶(hù)軟件線(xiàn)程映射到處理器的硬件線(xiàn)程上,因此程序員無(wú)需關(guān)注底層線(xiàn)程模型。QuRT 可以全局調(diào)度最高優(yōu)先級(jí)的可運(yùn)行軟件線(xiàn)程,并始終將中斷定向到最低優(yōu)先級(jí)的硬件線(xiàn)程。
QuRT 還管理軟件和硬件看門(mén)狗定時(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í)最大限度地減少延遲,例如由中斷和切換線(xiàn)程引起的延遲。
正如我們所見(jiàn),有商業(yè)、開(kāi)源和專(zhuān)有的 RTOS 可用于嵌入式系統(tǒng)。它們提供各種選項(xiàng)和功能,例如可定制性、跨平臺(tái)或?qū)I(yè)支持以及豐富的 SDK 支持。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5126文章
19446瀏覽量
313314 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2922文章
45692瀏覽量
385678 -
RTOS
+關(guān)注
關(guān)注
24文章
837瀏覽量
120606
發(fā)布評(píng)論請(qǐng)先 登錄
實(shí)時(shí)操作系統(tǒng)RTOS選型指南及實(shí)例分析
鴻道Intewell操作系統(tǒng)的Linux實(shí)時(shí)拓展方案

鴻道Intewell操作系統(tǒng)的Windows實(shí)時(shí)拓展方案

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

RTOS的特性和類(lèi)型
簡(jiǎn)單認(rèn)識(shí)RTOS實(shí)時(shí)操作系統(tǒng)
國(guó)產(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ū)別

實(shí)時(shí)操作系統(tǒng)之RT-Thread及FreeRTOS

評(píng)論