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