ساده سازی برنامهنویسی در سیستم عامل TinyOS مورد استفاده در شبکه حسگر بیسیم
الموضوعات :سیدمیثم خضری 1 , مهدی آقاصرام 2 , فضلاله اديبنيا 3
1 - دانشگاه یزد
2 - دانشگاه یزد
3 - دانشگاه یزد
الکلمات المفتاحية: برنامهنویسی چندریسهای برنامهنویسی مبتنی بر رویداد سیستم عامل گره حسگر بیسیم TinyOS,
ملخص المقالة :
سيستم عامل TinyOS بهعنوان پرکاربردترين سيستم عامل گره حسگر بيسيم، داراي مدل برنامهنويسي مبتني بر رويداد است. برنامهنویسی مبتنی بر رویداد مستلزم استفاده از ماشین حالات است که برنامهنویس را ملزم به مدیریت دستی پشته برنامه میکند. بههمین دلیل پيادهسازي پردازشهاي طولاني در سيستمهاي مبتني بر رويداد مانند TinyOS دشوار میباشد. در این مقاله سعی کردهایم با ايجاد تغييراتي در زمانبند TinyOS، انتزاع برنامهنویسی جدیدی برای این سیستم عامل ارائه کنیم که پيادهسازي پردازشهاي طولاني را در آن سادهتر ميکند و به توسعهدهنده برنامه کاربردی امکان کدنویسی رویهای و چندریسهای را میدهد. تغییرات در زمانبند TinyOS بهنحوی انجام شده که با برنامههای کاربردی قبلی نیز سازگاری داشته باشد. نتایج ارزیابی در یک کاربرد نمونه نشان میدهد که از نظر توان مصرفی مدل پیشنهادی تفاوت چندانی با مدل قبلی ندارد، هرچند سربار حافظه مصرفی و سربار پردازشی آن نسبت به مدل قبلی بیشتر است.
[1] J. Hill, R. Szewczyk, A. Woo, S. Hollar, D. Culler, and K. Pister, "System architecture directions for networked sensors," SIGOPS Oper. Syst. Rev., vol. 34, no. 5, pp. 93-104, Dec. 2000.
[2] G. Werner - Allen, K. Lorincz, J. Johnson, J. Lees, and M. Welsh, "Fidelity and yield in a volcano monitoring sensor network," in Proc of OSDI, vol. 6, pp. 381-396, Nov. 2006.
[3] J. Hicks, J. Paek, S. Coe, R. Govindan, and D. Estrin, "An easily deployable wireless imaging system," in Proc of ImageSense 08, vol. 6, pp. 20-25, Nov. 2008.
[4] C. Sadler and M. Martonosi, "Data compression algorithms for energy constrained devices in delay tolerant networks," in Proc of SenSys 06, vol. 18, pp. 265-278, Nov. 2006.
[5] A. Dunkels, B. Gronvall, and T. Voigt, "Contiki - a lightweight and flexible operating system for tiny networked sensors," in Proc. 29th Annual IEEE Int. Conf. on Local Computer Networks, LCN'04, vol. 10, pp. 455-462, Nov. 2004.
[6] Micrium.uc/os-ii, The Realtime Kernel, Available at http://www.micrium.com/page/products/rtos/os-ii/.
[7] FreeRTOS, A FREE Open Source RTOS for Small Embedded Realtime Systems, Available at http://www.freertos.org.
[8] H. Abrach, S. Bhatti, J. Carlson, H. Dai, J. Rose, A. Sheth, B. Shucker, and R. Han, "MANTIS: system support for multimodal networks of in - situ sensors," in Proc. 2nd ACM Int. Workshop on Wireless Sensor Networks and Applications, vol. 2, pp. 50-59, Sep. 2003.
[9] H. Cha, S. Choi, I. Jung, H. Kim, H. Shin, J. Yoo, and C. Yoon, "RETOS: resilient, expandable, and threaded operating system for wireless sensor networks," in Proc of IPSN 07, vol. 6, pp. 148-157, Apr. 2007.
[10] D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler, "The NesC language: a holistic approach to networked embedded systems," in Proc. Conf. on Programming Language Design and Implementation, ACM Press, vol. 3, pp. 1-11, New York, USA, Jun. 2003.
[11] E. Trumpler and R. Han, "A systematic framework for evolving TinyOS," IEEE Workshop on Embedded Networked Sensors, EmNets2006, vol. 3, pp. 61-65, May 2006.
[12] W. P. McCartney and N. Sridhar, "Abstractions for safe concurrent programming in networked embedded systems," in Proc. of the 4th Int. Conf. on Embedded Networked Sensor System, vol. 4, pp. 167-180, Oct. 2006.
[13] C. Duffy, U. Roedig, J. Herbert, and C. J. Sreenan, "Adding preemption to TinyOS," in Proc. of the Fourth Workshop on Embedded Networked Sensors, EmNets2007, vol. 4, pp. 88-92, Cork, Ireland. ACM Press, Jun. 2007.
[14] A. Dunkels, O. Schmidt, and T. Voigt, "Using protothreads for sensor node programming," in Proc. of the Workshop on Real - World Wireless Sensor Networks, vol. 1, pp. 47-51, Stockholm, Sweden, Jun. 2005.
[15] B. L. Titzer, D. K. Lee, and J. Palsberg, "Avrora: scalable sensor network simulation with precise timing," Information Processing in Sensor Networks, vol. 4, no. 1, pp. 477-482, Apr. 2005.
[16] TinyOS 2.x Index of Contributed Code, Available at http://docs.tinyos.net/index.php/TinyOS_2.x_index_of_contributed_code