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