• 正文
    • 關(guān)于RTOS
    • RTOS真的實(shí)時(shí)嗎?
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

RTOS真的是實(shí)時(shí)操作系統(tǒng)嗎?

2024/09/05
1406
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

作者 | strongerHuang微信公眾號(hào)?|?strongerHuang

RTOS:Real Time Operating System,實(shí)時(shí)操作系統(tǒng)。那么,到底啥是實(shí)時(shí)操作系統(tǒng)呢?它真的實(shí)時(shí)嗎?

關(guān)于RTOS

RTOS:Real?Time?Operating?System,即實(shí)時(shí)操作系統(tǒng)。

來(lái)自百度百科的解釋?zhuān)簩?shí)時(shí)操作系統(tǒng)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時(shí),能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時(shí)間之內(nèi)來(lái)控制生產(chǎn)過(guò)程或?qū)μ幚硐到y(tǒng)做出快速響應(yīng),調(diào)度一切可利用的資源完成實(shí)時(shí)任務(wù),并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致運(yùn)行的操作系統(tǒng)。

實(shí)時(shí)操作系統(tǒng),體現(xiàn)的重點(diǎn)是實(shí)時(shí)(及時(shí)響應(yīng))。簡(jiǎn)單說(shuō)就是程序能及時(shí)的解決、處理一些比較急的事情,而不會(huì)出現(xiàn)“卡機(jī)”等情況。

比如:一個(gè)運(yùn)動(dòng)的小車(chē),傳感器檢測(cè)到前方有障礙物,要立馬減速、停車(chē),而不是半天才反應(yīng)過(guò)來(lái)(反應(yīng)慢了就會(huì)撞上去)。

與裸機(jī)相比從裸機(jī)轉(zhuǎn)RTOS的同學(xué),就會(huì)拿裸機(jī)與RTOS相比較:

    • RTOS相比裸機(jī)有什么優(yōu)點(diǎn)?
    • RTOS相比裸機(jī)更方便嗎?......

我可以肯定的說(shuō):RTOS相比裸機(jī)更方便,優(yōu)點(diǎn)也更多。當(dāng)然,前提是MCU資源(Flash、RAM)能滿(mǎn)足需求。

因?yàn)樵缙诘腗CU資源相對(duì)匱乏,比如Flash低于10K,RAM低于1K,這個(gè)時(shí)候用RTOS,優(yōu)點(diǎn)就不明顯,反而更容易暴露缺點(diǎn)。

但現(xiàn)在MCU資源相對(duì)比較多,動(dòng)輒超過(guò)1M的Flash、 100K的RAM,這種情況下,如果跑裸機(jī),我感覺(jué)太浪費(fèi)MCU資源了。

分時(shí)操作系統(tǒng)相比很多人會(huì)聯(lián)想到分時(shí)操作系統(tǒng)(TSOS),RTOS和TSOS有什么區(qū)別?各自有什么特點(diǎn)?

現(xiàn)在的處理器速度相對(duì)更快了,分時(shí)操作系統(tǒng)的實(shí)時(shí)能力也很高了。它們的區(qū)別其實(shí)可以從字面意思上理解,分時(shí)就是分為時(shí)間片,這個(gè)時(shí)間片很小,一般us級(jí)別甚至更低。

你了解一下TSOS分時(shí)操作系統(tǒng)的調(diào)度機(jī)制,你就會(huì)更加明白二者之間的區(qū)別了。

這一節(jié)可以參看我的之前分享的文章:RTOS和TSOS有什么區(qū)別?

RTOS真的實(shí)時(shí)嗎?

回到今天的話題:RTOS真的實(shí)時(shí)嗎?

嚴(yán)格來(lái)說(shuō),RTOS也不是實(shí)時(shí)響應(yīng)并處理緊急的事情,只是在很短時(shí)間(一般ms級(jí)別)就做出了響應(yīng),給人感覺(jué)就是實(shí)時(shí)在響應(yīng)。

單個(gè)CPU,在同一個(gè)時(shí)間只能處理一件事(只能執(zhí)行一處程序),你創(chuàng)建了任務(wù)1、 任務(wù)2、 任務(wù)3......等多個(gè)任務(wù),CPU在執(zhí)行的時(shí)候都是輪流(按照優(yōu)先級(jí))執(zhí)行。

1.系統(tǒng)滴答

RTOS實(shí)時(shí)響應(yīng)有一個(gè)重要的配置,那就是系統(tǒng)滴答(SysTick)。

比如FreeRTOSConfig.h

#define configTICK_RATE_HZ        ((TickType_t)1000)

再比如μCOS系統(tǒng)的os_cfg.h

#define OS_TICKS_PER_SEC        1000u

系統(tǒng)滴答決定了你RTOS底層調(diào)度的時(shí)間大小,如果設(shè)置1000,那么1ms就會(huì)調(diào)度一次,也就說(shuō)1ms會(huì)做出一次響應(yīng)。

拿上面小車(chē)遇到障礙物為例:傳感器檢測(cè)到障礙物,通知更高優(yōu)先級(jí)任務(wù)進(jìn)行剎車(chē),這個(gè)過(guò)程只需要1ms就會(huì)得到響應(yīng)。

你肯定說(shuō):那我設(shè)置10000,是不是0.1ms就會(huì)做出響應(yīng)?是不是系統(tǒng)滴答越大越好?

按理說(shuō)系統(tǒng)滴答值越大響應(yīng)越快,但系統(tǒng)調(diào)度也是需要占用時(shí)間:

調(diào)度的時(shí)間長(zhǎng)度不變,如果N到N+1之間時(shí)間越短(滴答),留給執(zhí)行任務(wù)的時(shí)間就越短。

所以,滴答值也不是越大越好,需要一個(gè)合理的值,可以參看:RTOS滴答Tick設(shè)置多少才合適?

2.硬件中斷

從裸機(jī)開(kāi)發(fā)轉(zhuǎn)RTOS的同學(xué)就有這樣一個(gè)思維:我用中斷就能做到實(shí)時(shí)響應(yīng)。

的確,中斷能做到實(shí)時(shí)響應(yīng),但不能滿(mǎn)足大部分需求。

拿上面小車(chē)剎車(chē)來(lái)說(shuō):比如檢測(cè)到前方障礙物立刻做出中斷響應(yīng),此刻執(zhí)行減速的動(dòng)作,這個(gè)動(dòng)作假如是S曲線(減減速)剎車(chē),執(zhí)行時(shí)間為1s。

如果你在中斷函數(shù)里面執(zhí)行這個(gè)1s剎車(chē)動(dòng)作,CPU就不會(huì)做其他事情了,這樣你覺(jué)得可以嗎?

硬件中斷只能做出一個(gè)“緊急通知”,不能做出(耗時(shí)的)執(zhí)行動(dòng)作。

RTOS結(jié)合硬件中斷就能完美解決這個(gè)問(wèn)題,中斷通知高優(yōu)先級(jí)任務(wù)執(zhí)行剎車(chē)減速的動(dòng)作,但這個(gè)過(guò)程可能需要1ms。

所以,你會(huì)發(fā)現(xiàn)RTOS并非真正的實(shí)時(shí),只是這個(gè)時(shí)間很短,你感覺(jué)不出來(lái)。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
AS-24.576-18-F-EXT-SMD-TR 1 Raltron Electronics Corporation Parallel - Fundamental Quartz Crystal, 24.576MHz Nom, HC-49, SMD, 2 PIN
暫無(wú)數(shù)據(jù) 查看
SP000063858 1 Avago Technologies FIBER OPTIC TRANSMITTER, 630-685nm, THROUGH HOLE MOUNT, ROHS COMPLIANT, PLASTIC PACKAGE

ECAD模型

下載ECAD模型
$18.82 查看
ZL62034UBJA 1 Microsemi Corporation FIBER OPTIC RECEIVER, 6250Mbps
暫無(wú)數(shù)據(jù) 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶(hù)資源
  • 寫(xiě)文章/發(fā)需求
立即登錄

作者黃工,從事嵌入式軟件開(kāi)發(fā)工作8年有余,高級(jí)嵌入式軟件工程師,業(yè)余維護(hù)公眾號(hào)『strongerHuang』,分享嵌入式軟硬件、單片機(jī)、物聯(lián)網(wǎng)等內(nèi)容。