張金榜 李志軍
摘 要 TinyOS是一個開源微型嵌入式操作系統(tǒng),具有代碼量小,資源消耗低,沒有虛擬內(nèi)存的管理,沒有進(jìn)程或線程的管理,沒有過于復(fù)雜的IO子系統(tǒng)以及地址空間分配等優(yōu)勢,可以提高CPU利用率,降低能耗;提高了程序的可重用性,縮短了開發(fā)周期。
關(guān)鍵詞 TinyOS 嵌入式操作系統(tǒng)
中圖分類號:TP316 文獻(xiàn)標(biāo)識碼:A
1 TinyOS結(jié)構(gòu)簡介
1.1 TinyOS的目錄結(jié)構(gòu)
在C:Cygwin\opt\tinyos目錄下瀏覽所有文件,其下分為apps、doc、tos、tools和support 5個文件夾,apps文件夾下是操作系統(tǒng)自帶的例程;doc文件夾下存放應(yīng)用程序編譯后的組件調(diào)用圖;tools文件夾下是開發(fā)工具和程序源碼;support文件夾下是make和sdk工具包,是nesC編譯系統(tǒng)和TinyOS工具,tinyOS-2.x目錄結(jié)構(gòu)如如圖1所示。
1.2 TinyOS的層次架構(gòu)模型
TinyOS的層次化設(shè)計思想是把組成應(yīng)用程序的所有組件按照某種標(biāo)準(zhǔn)劃分層次,以分層的形式來實現(xiàn)特定應(yīng)用。一般分為以下五層:Main組件、系統(tǒng)組件、應(yīng)用組件、硬件抽象層和節(jié)點硬件層。節(jié)點物理硬件層位于TinyOS框架的最底層,負(fù)責(zé)完成所有硬件功能。硬件抽象組件是底層硬件的封裝,屏蔽了硬件功能的實現(xiàn)細(xì)節(jié)。系統(tǒng)組件用來執(zhí)行提供給應(yīng)用層組件的服務(wù)。應(yīng)用組件實現(xiàn)滿足具體應(yīng)用需求的功能。Main組件實現(xiàn)輕量級線程技術(shù)和基于FIFO的任務(wù)隊列調(diào)度方法,以及對其他組件的初始化、啟動和停止功能。
1.3 TinyOS應(yīng)用程序框架
應(yīng)用程序的總體框架有一個頂層配置組件、一個核心邏輯功能組件、及與資源和硬件相關(guān)的組件組成。頂層配置組件組裝應(yīng)用所需要的組件以及組件之間接口的連接關(guān)系。核心處理組件完成具體應(yīng)用邏輯功能。其他組件如時鐘組件、主動消息組件等通過接口為核心處理組件服務(wù)。
2 TinyOS與其它嵌入式操作系統(tǒng)比較
常見的無線傳感器網(wǎng)絡(luò)操作系統(tǒng)有[2-4]: PEEROS、MagnetOS、Contiki以及SOS。從開發(fā)語言、編程機(jī)制、任務(wù)調(diào)度及支持的硬件平臺等方面對上述操作系統(tǒng)做簡單比較。TinyOS操作系統(tǒng)具有如下特點:
(1)事件驅(qū)動機(jī)制。TinyOS是因事件驅(qū)動而運行的,如果沒有事件發(fā)生,則系統(tǒng)進(jìn)入休眠狀態(tài),從而達(dá)到節(jié)能的目的。
(2)輕量級線程技術(shù)及兩層調(diào)度方式。TinyOS提供任務(wù)和硬件事件處理兩級調(diào)度體系。TinyOS中的任務(wù)比一般的線程更為簡單,通過一個先進(jìn)先出FIFO的隊列來實現(xiàn)。硬件處理線程在TinyOS中,中斷處理線程可以打斷用戶的輕量級線程和低優(yōu)先級的中斷處理線程,對硬件中斷快速響應(yīng)。
(3)主動消息通信機(jī)制。主動消息通信是一種基于事件驅(qū)動的高性能并行通信方式。每個消息都維護(hù)一個應(yīng)用層的處理函數(shù),消息中包含消息地址、處理函數(shù)及所屬群。當(dāng)目標(biāo)節(jié)點收到這個消息后,就會把消息中的數(shù)據(jù)作為參數(shù),并傳遞給處理函數(shù)處理。主動消息通信模式提高了CPU的使用效率,減少了節(jié)點的能耗。
(4)組件化編程。組件模型允許開發(fā)人員方便快捷地將獨立組件組合到各層配置文件中,并在面向應(yīng)用程序的頂層配置文件中完成應(yīng)用的整體裝配。TinyOS應(yīng)用程序采用模塊化設(shè)計,只包含必要組件,提高了操作系統(tǒng)的緊湊性和開發(fā)效率,程序的內(nèi)核代碼和數(shù)據(jù)大概在400B左右,能突破傳感器存儲資源少的限制。
3結(jié)束語
TinyOS操作系統(tǒng)非常適合運行在硬件節(jié)點資源有限的傳感器節(jié)點上,可以提高CPU利用率,降低能耗;提高了程序的可重用性,縮短了開發(fā)周期。
參考文獻(xiàn)
[1] 李晶, 王福豹. 無線傳感器網(wǎng)絡(luò)中TinyOS研究[J]. 計算機(jī)測量與控制, 2006, 14(6):838-840.
[2] H.Abrach, S.Bhatti, J.Carlson, H.Dai, J.Rose, A.Sheth, B.Shucker, J.Deng, R.Han, “MANTIS: System Support for Multimond A1 Networks fo in-situ Sensors”, 2nd ACM International Workshop on Wireless Sensor Networksand pplications(WSNA)2003, 50-59.
[3] Barr R, et. al. On the Need for System-Level Support for Ad hoc and Sensor Networks[J]. Operating System Review, ACM, 2002, 36(2): 1-5.
[4] Mudder J, Dulman S, et, al. PEEROS-System Software for Wireless Sensor Networks[J]. Microsoft Research Limited, Cambridge, UK, August 2003: 175-182.