00.RTOS工作原理--從0學(xué)RTOS
1、什么是RTOS


實(shí)時(shí)操作系統(tǒng)(RTOS)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時(shí),能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時(shí)間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)做出快速響應(yīng),調(diào)度一切可利用的資源完成實(shí)時(shí)任務(wù),并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致運(yùn)行的操作系統(tǒng)。提供及時(shí)響應(yīng)和高可靠性是其主要特點(diǎn)。
2、RTOS的特點(diǎn)
- 在規(guī)定時(shí)間內(nèi)對(duì)事件進(jìn)行響應(yīng)
- 實(shí)時(shí)并不意味著快
- 一種系統(tǒng)軟件
- 提供任務(wù)管理和協(xié)調(diào)的控制功能
- 運(yùn)行于特定的嵌入式硬件
- 功能可裁剪、代碼可移植
RTOS是一種通用的任務(wù)管理框架,用于控制任務(wù)的運(yùn)行和任務(wù)之間的交互,保證事件得到實(shí)時(shí)處理。
RTOS提供多個(gè)執(zhí)行流:雖然實(shí)際只有一個(gè)CPU,但是通過"虛擬化",每個(gè)任務(wù)就好像獨(dú)占CPU。
用一個(gè)形象的圖表RTOS的工作原理:


每個(gè)任務(wù)都用一個(gè)函數(shù)實(shí)現(xiàn),函數(shù)中用死循環(huán)實(shí)現(xiàn),但是每個(gè)任務(wù)都可以獨(dú)立運(yùn)行。
void task1Entry(void* param)
{
for(;;)
{
//任務(wù)代碼
}
}
RTOS獨(dú)占并不是真正的獨(dú)占,而是因?yàn)槊總€(gè)任務(wù)占用cpu時(shí)間很短,并且不斷的切換執(zhí)行任務(wù),所以宏觀上看,任務(wù)在獨(dú)立運(yùn)行。

這樣可以提高CPU的利用率,避免延時(shí)等待造成的CPU空轉(zhuǎn),不得不空轉(zhuǎn)時(shí),也可以讓CPU進(jìn)入低功耗模式,減少能量消耗。
通過RTOS控制任務(wù)的運(yùn)行機(jī)制,事件處理的實(shí)時(shí)性可以得到有效保證。

浙公網(wǎng)安備 33010602011771號(hào)