宋 然
◆ 概述
嵌入式實(shí)時(shí)操作系統(Real Time Embedded Operating System)是一種實(shí)時(shí)的、支持嵌入式系統應用的操作系統軟件,它是嵌入式系統(包括硬、軟件系統)極為重要的組成部分,通常包括與硬件相關(guān)的底層驅動(dòng)軟件、系統內核、設備驅動(dòng)接口、通信協(xié)議、圖形界面、標準化瀏覽器Browser等。目前,嵌入式操作系統的品種較多,其中較為流行的有:VxWorks、Windows CE、Palm OS、Real Time Linux、pSOS、PowerTV以及Microware公司的
OS-9。與通用操作系統相比較,它在系統實(shí)時(shí)高效性、硬件的相關(guān)依賴(lài)性、軟件固態(tài)化以及應用的專(zhuān)用性等方面具有較為突出的特點(diǎn)。
◆ 嵌入式操作系統的發(fā)展
(1) 無(wú)操作系統的嵌入算法階段:這一階段的嵌入式系統是以可編程控制器的形式、以單芯片為核心的系統,同時(shí)具有與一些監測、伺服、指示設備相配合的功能。這種系統大部分應用于一些專(zhuān)業(yè)性極強的工業(yè)控制系統中,通過(guò)匯編語(yǔ)言編程對系統進(jìn)行直接控制,運行結束后清除內存。這一階段系統的主要特點(diǎn)是系統結構和功能都相對單一,針對性強,但無(wú)操作系統支持,幾乎沒(méi)有用戶(hù)接口。
(2) 簡(jiǎn)單監控式的實(shí)時(shí)操作系統階段:這一階段的嵌入式系統主要以嵌入式處理器為基礎,以簡(jiǎn)單監控式操作系統為核心。系統的特點(diǎn)是處理器種類(lèi)繁多,通用性比較弱;系統開(kāi)銷(xiāo)小,效率高;一般配備系統仿真器,具有一定的兼容性和擴展性;操作系統的用戶(hù)界面不夠友好,其主要用來(lái)控制系統負載以及監控應用程序運行。
(3) 通用的嵌入式實(shí)時(shí)操作系統階段:以通用型嵌入式實(shí)時(shí)操作系統為標志的嵌入式系統。如VxWorks、pSOS、OS-9、Windows CE就是這一階段的典型代表。這一階段系統的特點(diǎn)是能運行在各種不同類(lèi)型強大的微處理器上;具有強大的通用型操作系統的功能,如具備了文件和目錄管理、多任務(wù)、設備支持、網(wǎng)絡(luò )支持、圖形窗口以及用戶(hù)界面等功能;具有豐富的應用程序接口(API)和嵌入式應用軟件。
◆ 實(shí)時(shí)多任務(wù)操作系統與分時(shí)多任務(wù)操作系統
實(shí)時(shí)多任務(wù)操作系統是根據操作系統的工作特性而言的。實(shí)時(shí)是指物理進(jìn)程的真實(shí)時(shí)間,實(shí)時(shí)操作系統是指具有實(shí)時(shí)性能支持實(shí)時(shí)控制系統工作的操作系統。對于分時(shí)操作系統,軟件的執行在時(shí)間上的要求并不嚴格,時(shí)間上的錯誤一般不會(huì )造成災難性的后果。而對于實(shí)時(shí)操作系統,主要任務(wù)是對事件進(jìn)行實(shí)時(shí)的處理,雖然事件可能在無(wú)法預知的時(shí)刻到達,但是軟件上必須在事件發(fā)生時(shí)能夠在嚴格的時(shí)限內作出響應。實(shí)時(shí)操作系統具有如下功能:① 任務(wù)管理多任務(wù)和基于優(yōu)先級的任務(wù)調度;② 任務(wù)間同步和通信信號量信郵箱等;③ 存儲器優(yōu)化管理含ROM的管理;④ 實(shí)時(shí)時(shí)鐘服務(wù);⑤ 中斷管理服務(wù)。
◆ VxWorks及其開(kāi)發(fā)工具Tornado
(1) VxWorks操作系統概述
VxWorks由美國WindRiver系統公司出品,在嵌入式操作系統領(lǐng)域中頗具優(yōu)勢。目前該操作系統的版本為VxWorks 5.4,其核心功能主要有微內核wind,任務(wù)間的通信機制,高級的網(wǎng)絡(luò )支持,功能強大的文件系統(VxWorks支持4種文件系統:dosFs、rt11Fs、rawFs、tapeFs)和I/O管理,POSIX標準實(shí)時(shí)擴展,C++和其他標準支持等核心功能。這些核心功能可以與WindRiver系統的其他附件和超過(guò)400個(gè)Tornado合作伙伴的產(chǎn)品很好的結合在一起。它是專(zhuān)門(mén)為嵌入式微處理器設計的高模塊化、高性能的實(shí)時(shí)操作系統,廣泛應用于高科技產(chǎn)品中,包括消費電子設備、工業(yè)自動(dòng)化、無(wú)線(xiàn)通信產(chǎn)品、醫療儀器、數字電視與多媒體設備等,具有很好的安全性、容錯性以及系統靈活性。VxWorks操作系統的在國外的主要商業(yè)用戶(hù)有Cisco Systems、Bay Networks、3Com、 Fore Systems、HP、Lucent、NASA、Qualcomm,主要應用有火星探測車(chē),愛(ài)國者導彈等。
(2) VxWorks系統結構
VxWorks是現在所有獨立于處理器的實(shí)時(shí)系統中最具特色的操作系統。主要表現在:① VxWork系統運行環(huán)境支持的CPU包括PowerPC、68K、SPARC、i960、x86等,同時(shí)支持RISC、DSP技術(shù)。② 它的微內核Wind是一個(gè)具有較高性能的標準的嵌入式實(shí)時(shí)操作系統內核,其主要特點(diǎn)包括快速多任務(wù)切換、搶占式任務(wù)調度、任務(wù)間通信手段多樣化等。③ 該系統具有較好的可剪裁能力,可剪裁的組件超過(guò)80個(gè)。用戶(hù)可以根據自己系統的目標功能,通過(guò)交叉開(kāi)發(fā)環(huán)境方便地進(jìn)行配置。④ 支持應用程序的動(dòng)態(tài)連接和動(dòng)態(tài)下載。⑤ 具有較好的兼容性。
VxWorks是帶有一個(gè)相當小的、真正微內核的層次結構。內核僅提供多任務(wù)環(huán)境進(jìn)程間通信和同步功能這些功能模塊,足夠支持VxWorks在較高層次所提供的豐富的性能要求。多任務(wù)內核的基本功能是提供一個(gè)多任務(wù)環(huán)境,使許多程序在表面上表現為并發(fā)執行,而事實(shí)上內核是根據基本的調度算法使他們分段執行每個(gè)明顯獨立的程序。每個(gè)任務(wù)擁有自己的上下文,使該任務(wù)執行的時(shí)候能看到CPU環(huán)境和系統資源。內核維護系統中的每個(gè)任務(wù)的當前狀態(tài)遷移發(fā)生在應用程序調用內核功能服務(wù)的時(shí)候。
wind內核狀態(tài):就緒態(tài) 一個(gè)任務(wù)當前除了CPU不等待任何資源;阻塞態(tài) 一個(gè)任務(wù)由于某些資源不可獲得而被阻塞;延遲態(tài) 一個(gè)任務(wù)睡眠一段時(shí)間;掛起態(tài) 主要用于調試的一個(gè)輔助狀態(tài),掛起禁止任務(wù)的執行。任務(wù)被創(chuàng )建以后進(jìn)入掛起態(tài),需要通過(guò)特定的操作使被創(chuàng )建的任務(wù)進(jìn)入就緒態(tài),這一操作執行速度很快,從而使應用程序能夠提前創(chuàng )建任務(wù)并以一種快捷的方式激活該任務(wù)。
調度控制:多任務(wù)需要一個(gè)調度算法分配CPU給就緒的任務(wù)。VxWorks 中默認的調度算法是基于優(yōu)先級的搶占調度,調度采用搶占的方式就是指當一個(gè)優(yōu)先級高于當前任務(wù)的任務(wù)變?yōu)榫途w態(tài)時(shí),內核將立即保存當前任務(wù)的上下文并切換到高優(yōu)先級任務(wù)的上下文。外部中斷被指定優(yōu)先于任何任務(wù)的優(yōu)先級,就能夠在任何時(shí)候搶占一個(gè)任務(wù)。
任務(wù)間通信:wind內核提供了一套豐富的任務(wù)間通信與同步的機制,這些通信功能使一個(gè)應用中各個(gè)獨立的任務(wù)能夠相互地協(xié)調各自的行動(dòng)。① 共享地址空間 wind內核的任務(wù)間通信機制的基礎是通過(guò)共享地址空間,任務(wù)能夠使用共享數據結構的指針自由地通信,管道不需要映射一塊內存區到兩個(gè)互相通信任務(wù)的尋址空間。② 互斥操作 實(shí)現互斥的方法包括禁止中斷、禁止任務(wù)搶占和通過(guò)信號量進(jìn)行資源鎖定。最強的互斥方法是屏蔽中斷,這樣的鎖定保證了對CPU的互斥訪(fǎng)問(wèn),但是這種方法對于實(shí)時(shí)是不恰當的,因為它在鎖定期間阻止系統響應外部事件,長(cháng)的中斷延時(shí)對于要求有確定響應時(shí)間的應用是不可接受的;禁止搶占提供了強制性較弱的互斥方式;互斥信號量,信號量是用于鎖定共享資源訪(fǎng)問(wèn)的基本方式,信號量限制了互斥操作僅作用于相關(guān)的資源,一個(gè)信號量被創(chuàng )建來(lái)保護資源。
(3) VxWorks的開(kāi)發(fā)平臺TornadoII
TornadoII具有友好的開(kāi)發(fā)調試環(huán)境,便于操作配置和應用程序的開(kāi)發(fā)調試。它在1995年獲得了EDN雜志頒發(fā)的年度產(chǎn)品創(chuàng )新獎。它是一個(gè)集成的軟件開(kāi)發(fā)環(huán)境,提供了一種非常有效的方法來(lái)開(kāi)發(fā)實(shí)時(shí)的嵌入式應用。它由3個(gè)部分構成:① VxWorks―高性能的實(shí)時(shí)操作系統;② 應用的構建工具;③ 一個(gè)集成的開(kāi)發(fā)環(huán)境(IDE)―管理和構造工程,建立和管理主機與目標機通信,運行、調試和監視VxWorks的應用程序。IDE主要包括源碼編輯器、工程管理工具、C和C++的編譯器、資源瀏覽器、圖形增強的調試器、C語(yǔ)言命令外殼、VxWorks的目標模擬器等,這些都為實(shí)時(shí)嵌入式應用程序的編制提供了豐富的手段。它的開(kāi)發(fā)環(huán)境能夠提供上述所有特色,而與目標系統是否資源有限無(wú)關(guān),它主要運行于主機系統之上,同時(shí)共享有基于主機的動(dòng)態(tài)鏈接和遠程目標系統的符號表。Tornado開(kāi)發(fā)工具和目標機的通信要經(jīng)由目標服務(wù)器和目標代理。使用Tornado能夠使嵌入式應用的時(shí)間大為縮短。
◆ 結語(yǔ)
本文以WindRiver公司的VxWorks及其開(kāi)發(fā)工具Tornado為例,介紹了嵌入式實(shí)時(shí)操作系統及其開(kāi)發(fā)工具在嵌入式系統中占據的重要地位,國內在這方面所做的工作取得了一定的成果,如凱思集團自主研制開(kāi)發(fā)的嵌入式操作系統Hopen OS,但總體水平與國外相比仍然比較落后,隨著(zhù)嵌入式應用的迅速發(fā)展,對這方面的需求必將進(jìn)一步加大,我們應該借鑒國外的先進(jìn)經(jīng)驗來(lái)開(kāi)發(fā)完善我們自己的產(chǎn)品,力爭早日趕上世界先進(jìn)水平。