簡易檢索 / 詳目顯示

研究生: 陳右庭
Chen, Yu-Ting
論文名稱: Enix: A Lightweight Dynamic Operating System for Tightly Constrained Wireless Sensor Platforms
指導教授: 周百祥
Chou, Pai H.
口試委員:
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Computer Science
論文出版年: 2009
畢業學年度: 97
語文別: 英文
論文頁數: 75
中文關鍵詞: 作業系統檔案系統動態載入虛擬記憶體無線感測網路
外文關鍵詞: WSN, operating system, file system, dynamic loading, remote reprogramming
相關次數: 點閱:2下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 摘要
    本論文提出了Enix,一個專為無線感測網路(WSN)所設計之輕量化且動態的作業系統。Enix提供合作式執行緒(cooperative threading model),適用基於事件觸發的WSN應用程式,並且只有極低的執行時期負擔。藉由編譯器的幫助,虛擬記憶體也被實做出來,以允許無線感測平台執行大於實體記憶體的應用程式。為了賦予已發佈之無線感測節點(wireless sensor node)更新韌體的能力,Enix也提供執行期間遠端上傳的功能。我們將WSN應用程式的主程式邏輯架構以及函式庫呼叫分開來,每一個無線感測節點都會有一份動態載入函式庫儲存於micro-SD卡內,因此當韌體更新時僅需無線遠端傳輸主程式邏輯架構。Enix同時也包含了一個輕量且有效率之檔案系統EcoFS。全功能的Enix包含EcoFS僅需8KB的程式記憶體以及512 bytes的資料記憶體,是所有WSN作業系統中最輕量的。


    Abstract
    In this thesis, we propose Enix, a lightweight dynamic operating system for tightly constrained platform for wireless sensor networks (WSN). Enix provides cooperative threading model, which is applicable to event-based WSN applications with little run-time overhead. Virtual memory is also supported with the assistance of the compiler, so that the sensor platforms can execute code larger than the physical code memory they have. To enable firmware update for deployed sensor nodes, remote reprogramming ability is available in Enix. The commonly used library and the main logical structure are separated; each sensor device has a copy of the dynamic loading library in the Micro-SD card, and therefore only the main function and user-defined subroutines should be updated through RF. A lightweight, efficient file system named EcoFS is also included in Enix. The code size and data size of Enix with full-function including EcoFS are 8 KB and 512 bytes, respectively, making Enix the smallest one compared to other WSN OSs.

    Contents 1 1 Introduction 2 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 Lightweight and Portability . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.2 Appropriate Programming Model . . . . . . . . . . . . . . . . . . . . 7 1.2.3 Virtual Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.4 Remote reprogramming . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.5 File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2 Related Work 12 2.1 Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 Runtime OS support for WSN . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3 Virtual Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4 File Systems for WSN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3 Enix Overview 20 3.1 System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 Design Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.1 Cooperative Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.2 Dual-Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.3 ELIB Design Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.4 EcoFS Design Concepts . . . . . . . . . . . . . . . . . . . . . . . . . 25 4 Runtime Components in Enix 28 4.1 Cooperative Threads and Scheduler . . . . . . . . . . . . . . . . . . . . . . . 28 4.1.1 Multi-points Setjmp/Longjmp . . . . . . . . . . . . . . . . . . . . . . 28 4.1.2 Priority Based and Round-Robin Scheduler . . . . . . . . . . . . . . . 30 4.2 Compiler-Assisted Virtual Memory . . . . . . . . . . . . . . . . . . . . . . . 32 4.2.1 Demand Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2.2 Memory Compaction and Garbage Collection . . . . . . . . . . . . . 34 4.3 Dynamic Loading and Run-time Reprogramming . . . . . . . . . . . . . . . 35 4.3.1 Run-time Position-Independent Code . . . . . . . . . . . . . . . . . . 36 4.3.2 Source Code Renement . . . . . . . . . . . . . . . . . . . . . . . . . 37 5 EcoFS : The File System 41 5.1 Storage Medium in WSN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.2 Implementation Details of EcoFS . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2.1 Code Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.2.2 Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.2.3 Sensed Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2.4 Network Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6 Evaluation and Results 50 6.1 Experimental Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.1.1 Sensor Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.1.2 Software Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 6.2 Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.2.1 Context Switch Overhead Applied to Di erent Scheduler Implementa- tions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6.2.2 Eciency of EcoFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.2.3 Eciency of Enix Code Update Scheme . . . . . . . . . . . . . . . . 63 7 Conclusions and Future Work 66 7.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.2.1 Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.2.2 Dynamic Memory Allocator . . . . . . . . . . . . . . . . . . . . . . . 68 7.2.3 Portable EcoFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    Bibliography
    [1] FreeRTOS. http://www.freertos.org/.
    [2] MicaZ. http://www.xbow.com/Products/productdetails.aspx?sid=164.
    [3] Portable Formats Speci_cation, Version 1.1.
    [4] Adya, A., Howell, J., Theimer, M., Bolosky, W. J., and Douceur, J. R. Cooperative task management without manual stack management. In ATEC '02: Pro-ceedings of the General Track of the annual conference on USENIX Annual Technical Conference (Berkeley, CA, USA, 2002), USENIX Association, pp. 289-302.
    [5] Bai, L. S., Yang, L., and Dick, R. P. Automated compile-time and run-time techniques to increase usable memory in MMU-less embedded systems. In CASES '06: Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems (New York, NY, USA, 2006), ACM, pp. 125-135.
    [6] Bai, L. S., Yang, L., and Dick, R. P. MEMMU: Memory expansion for MMU-less embedded systems. ACM Trans. Embed. Comput. Syst. 8, 3 (2009), 1-33.
    [7] Barr, R., Bicket, J. C., Dantas, D. S., Du, B., Kim, T. W. D., Zhou, B., and Sirer, E. G. On the need for system-level support for ad hoc and sensor networks. SIGOPS Oper. Syst. Rev. 36, 2 (2002), 1-5.
    [8] Bhatti, S., Carlson, J., Dai, H., Deng, J., Rose, J., Sheth, A., Shucker, B., Gruenwald, C., Torgerson, A., and Han, R. MANTIS OS: an embedded multithreaded operating system for wireless micro sensor platforms. Mob. Netw. Appl. 10, 4 (2005), 563-579.
    [9] Cao, Q., Abdelzaher, T., Stankovic, J., and He, T. The LiteOS operating system: Towards Unix-Like abstractions for wireless sensor networks. In IPSN '08: Proceedings of the 7th international conference on Information processing in sensor networks (Washington, DC, USA, 2008), IEEE Computer Society, pp. 233-244.
    [10] Cha, H., Choi, S., Jung, I., Kim, H., Shin, H., Yoo, J., and Yoon, C. RETOS: resilient, expandable, and threaded operating system for wireless sensor networks. In IPSN '07: Proceedings of the 6th international conference on Information processing in sensor networks (New York, NY, USA, 2007), ACM, pp. 148-157.
    [11] CHOUDHURI, S., and GIVARGIS, T. Software virtual memory management for MMU-less embedded systems. Tech. rep., Center for Embedded Computer Systems, University of California, Irvine, NOV 2005.
    [12] Dai, H., Neufeld, M., and Han, R. ELF: an efficient log-structured flash file system for micro sensor nodes. In SenSys '04: Proceedings of the 2nd international conference on Embedded networked sensor systems (New York, NY, USA, 2004), ACM, pp. 176-187.
    [13] Dunkels, A., Finne, N., Eriksson, J., and Voigt, T. Run-time dynamic linking for reprogramming wireless sensor networks. In SenSys '06: Proceedings of the 4th international conference on Embedded networked sensor systems (New York, NY, USA, 2006), ACM, pp. 15-28.
    [14] Dunkels, A., Gronvall, B., and Voigt, T. Contiki - a lightweight and exible operating system for tiny networked sensors. In LCN '04: Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks (Washington, DC, USA, 2004), IEEE Computer Society, pp. 455-462.
    [15] Dunkels, A., Schmidt, O., Voigt, T., and Ali, M. Protothreads: simplifying event-driven programming of memory-constrained embedded systems. In SenSys '06: Proceedings of the 4th international conference on Embedded networked sensor systems (New York, NY, USA, 2006), ACM, pp. 29-42.
    [16] Eswaran, A., Rowe, A., and Rajkumar, R. Nano-RK: An energy-aware resource-centric RTOS for sensor networks. In RTSS '05: Proceedings of the 26th IEEE Interna-tional Real-Time Systems Symposium (Washington, DC, USA, 2005), IEEE Computer Society, pp. 256-265.
    [17] Gay, D. Design of Matchbox, the simple _ling system for motes. www.tinyos.net.
    [18] Gay, D., Levis, P., von Behren, R., Welsh, M., Brewer, E., and Culler, D. The nesC language: A holistic approach to networked embedded systems. SIGPLAN Not. 38, 5 (2003), 1-11.
    [19] Gu, L., and Stankovic, J. A. t-kernel: providing reliable os support to wireless sensor networks. In SenSys '06: Proceedings of the 4th international conference on Embedded networked sensor systems (New York, NY, USA, 2006), ACM, pp. 1-14.
    [20] Gustafsson, A. Threads without the pain. Queue 3, 9 (2005), 34-41.
    [21] Han, C.-C., Kumar, R., Shea, R., Kohler, E., and Srivastava, M. A dynamic operating system for sensor nodes. In MobiSys '05: Proceedings of the 3rd international conference on Mobile systems, applications, and services (New York, NY, USA, 2005), ACM, pp. 163-176.
    [22] Hill, J., and Culler, D. Mica: a wireless platform for deeply embedded networks. vol. 22, pp. 12-24.
    [23] Knuth, D. Fundamental Algorithms, Third Edition. Addison-Wesley, 1997, ch. Section 1.4.2: Coroutines, pp. 193-200.
    [24] Koshy, J., and Pandey, R. VMSTAR: synthesizing scalable runtime environments for sensor networks. In SenSys '05: Proceedings of the 3rd international conference on Embedded networked sensor systems (New York, NY, USA, 2005), ACM, pp. 243-254.
    [25] Labrosse, J. J. MicroC/OS-II, The Real-Time Kernel 2ND EDITION. CMP Books, 2002.
    [26] Levis, P., and Culler, D. Mat_e: a tiny virtual machine for sensor networks. In ASPLOS-X: Proceedings of the 10th international conference on Architectural support for programming languages and operating systems (New York, NY, USA, 2002), ACM, pp. 85-95.
    [27] Levis, P., Madden, S., Polastre, J., Szewczyk, R., Whitehouse, K., Woo, A., Gay, D., Hill, J., Welsh, M., Brewer, E., and Culler, D. TinyOS: An operating system for sensor networks. Ambient Intelligence (2005), 115-148.
    [28] Madden, S. R., Franklin, M. J., Hellerstein, J. M., and Hong, W. TinyDB: an acquisitional query processing system for sensor networks. ACM Trans. Database Syst. 30, 1 (2005), 122-173.
    [29] Mathur, G., Desnoyers, P., Ganesan, D., and Shenoy, P. Capsule: an energy-optimized object storage system for memory-constrained sensor devices. In SenSys '06: Proceedings of the 4th international conference on Embedded networked sensor systems (New York, NY, USA, 2006), ACM, pp. 195-208.
    [30] Muller, R., Alonso, G., and Kossmann, D. A virtual machine for sensor net-works. In EuroSys '07: Proceedings of the 2nd ACM SIGOPS/EuroSys European Con-ference on Computer Systems 2007 (New York, NY, USA, 2007), ACM, pp. 145-158.
    [31] Nath, S., and Kansal, A. FlashDB: dynamic self-tuning database for NAND ash. In IPSN '07: Proceedings of the 6th international conference on Information processing in sensor networks (New York, NY, USA, 2007), ACM, pp. 410-419.
    [32] Park, C., Lim, J., Kwon, K., Lee, J., and Min, S. L. Compiler-assisted demand paging for embedded systems with ash memory. In EMSOFT '04: Proceedings of the 4th ACM international conference on Embedded software (New York, NY, USA, 2004), ACM, pp. 114-124.
    [33] Park, C., Liu, J., and Chou, P. H. Eco: an ultra-compact low-power wireless sensor node for real-time motion monitoring. In IPSN '05: Proceedings of the 4th international symposium on Information processing in sensor networks (Piscataway, NJ, USA, 2005), IEEE Press, p. 54.
    [34] Park, S., Kim, J. W., Shin, K., and Kim, D. A nano operating system for wireless sensor networks. In Advanced Communication Technology, 2006. ICACT 2006. The 8th International Conference (2006), vol. 1, pp. 4 pp.-348.
    [35] Tatham, S. Coroutines in c. http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html.
    [36] von Behren, R., Condit, J., and Brewer, E. Why events are a bad idea (for high-concurrency servers). In HOTOS'03: Proceedings of the 9th conference on Hot Topics in Operating Systems (Berkeley, CA, USA, 2003), USENIX Association, pp. 4-4.
    [37] Yamashita, S., Shimura, T., Aiki, K., Ara, K., Ogata, Y., Shimokawa, I.,
    Tanaka, T., Kuriyama, H., Shimada, K., and Yano, K. A 15 x 15 mm, 1 uA, reliable sensor-net module: enabling application-speci_c nodes. In IPSN '06: Proceed-ings of the 5th international conference on Information processing in sensor networks (New York, NY, USA, 2006), ACM, pp. 383-390.
    [38] Zeinalipour-Yazti, D., Lin, S., Kalogeraki, V., Gunopulos, D., and Naj- jar, W. A. Microhash: an e_cient index structure for fash-based sensor devices. In FAST'05: Proceedings of the 4th conference on USENIX Conference on File and Storage Technologies (Berkeley, CA, USA, 2005), USENIX Association, pp. 3-3.

    無法下載圖示 全文公開日期 本全文未授權公開 (校內網路)
    全文公開日期 本全文未授權公開 (校外網路)

    QR CODE