提到操作系統(tǒng),除了我們熟悉的桌面操作系統(tǒng)、服務(wù)器操作系統(tǒng)和嵌入式操作系統(tǒng),還有一個非常重要的分支,就是“實時操作系統(tǒng)”,在對系統(tǒng)穩(wěn)定性和實時性要求高的領(lǐng)域,比如軍事、工業(yè)、汽車等,發(fā)揮著核心作用。
因為是工業(yè)、軍工等領(lǐng)域,所以對于普通用戶距離有點兒遠。之前我們工業(yè)相關(guān)領(lǐng)域,甚至軍工行業(yè),用的實時操作系統(tǒng)主要是國外產(chǎn)品,以風(fēng)河公司的VxWorks為代表。
注:2022年,汽車Tier1巨頭安波福(Aptiv)以43億美元收購風(fēng)河公司(Wind River),在“軟件定義一切”的大背景下,引起了業(yè)界廣泛關(guān)注。
有實時操作系統(tǒng),就有非實時操作系統(tǒng)。
兩類操作系統(tǒng)的主要區(qū)別在于任務(wù)調(diào)度處理方式不同,非實時操作系統(tǒng)采用的是基于時間片的任務(wù)調(diào)度方式,而實時操作系統(tǒng)采用的是基于任務(wù)優(yōu)先級的任務(wù)調(diào)度方式。
優(yōu)先級的意義在于,必須保證重要的任務(wù)優(yōu)先被執(zhí)行。這和辦公和娛樂應(yīng)用中,各種應(yīng)用任務(wù)平等對待的理念并不相同。
當(dāng)然優(yōu)先級這個事情也不是絕對的,目前非實時操作系統(tǒng)對于進程的調(diào)度,也會融入優(yōu)先級的算法,差異只是徹底性的問題。
實時操作系統(tǒng)是徹底基于優(yōu)先級,一旦有優(yōu)先級高的任務(wù)出現(xiàn),可以無條件的,搶占任何正在執(zhí)行的,低優(yōu)先級的進程。而基于基于時間片的調(diào)度方式的非實時操作系統(tǒng),就沒有這么徹底了,即便有優(yōu)先級,也得讓正在執(zhí)行的任務(wù)完成當(dāng)前時間片,再優(yōu)先分配高優(yōu)先級進程。
所以實時操作系統(tǒng)和非實時操作系統(tǒng)的差異,并非系統(tǒng)裁剪、輕量化那么簡單,整個系統(tǒng)的核心——任務(wù)調(diào)度算法都不同。
我們平時一般都會把實時操作系統(tǒng)和嵌入式操作系統(tǒng)關(guān)聯(lián)——嵌入式實時操作系統(tǒng),當(dāng)然,“實時”和“嵌入式”屬于兩個不同的分類維度,之所以這么關(guān)聯(lián),主要還是因為對實時性要求較高的系統(tǒng),并非針對于桌面系統(tǒng)和服務(wù)器系統(tǒng),主要還是各種嵌入式設(shè)備,汽車、工業(yè)設(shè)備、軍工裝備等等。也就是說,大部分實時操作系統(tǒng)都是嵌入式操作系統(tǒng),但嵌入式操作系統(tǒng)并非都是實時的,是需要視整個裝備系統(tǒng)的需求情況而定。
我們篩選了國內(nèi)目前用的比較多的三個典型場景下的實時操作系統(tǒng),供大家參考: