ساده سازی برنامهنویسی در سیستم عامل TinyOS مورد استفاده در شبکه حسگر بیسیم
محورهای موضوعی : مهندسی برق و کامپیوترسیدمیثم خضری 1 * , مهدی آقاصرام 2 , فضلاله اديبنيا 3
1 - دانشگاه یزد
2 - دانشگاه یزد
3 - دانشگاه یزد
کلید واژه: برنامهنویسی چندریسهای برنامهنویسی مبتنی بر رویداد سیستم عامل گره حسگر بیسیم TinyOS,
چکیده مقاله :
سيستم عامل TinyOS بهعنوان پرکاربردترين سيستم عامل گره حسگر بيسيم، داراي مدل برنامهنويسي مبتني بر رويداد است. برنامهنویسی مبتنی بر رویداد مستلزم استفاده از ماشین حالات است که برنامهنویس را ملزم به مدیریت دستی پشته برنامه میکند. بههمین دلیل پيادهسازي پردازشهاي طولاني در سيستمهاي مبتني بر رويداد مانند TinyOS دشوار میباشد. در این مقاله سعی کردهایم با ايجاد تغييراتي در زمانبند TinyOS، انتزاع برنامهنویسی جدیدی برای این سیستم عامل ارائه کنیم که پيادهسازي پردازشهاي طولاني را در آن سادهتر ميکند و به توسعهدهنده برنامه کاربردی امکان کدنویسی رویهای و چندریسهای را میدهد. تغییرات در زمانبند TinyOS بهنحوی انجام شده که با برنامههای کاربردی قبلی نیز سازگاری داشته باشد. نتایج ارزیابی در یک کاربرد نمونه نشان میدهد که از نظر توان مصرفی مدل پیشنهادی تفاوت چندانی با مدل قبلی ندارد، هرچند سربار حافظه مصرفی و سربار پردازشی آن نسبت به مدل قبلی بیشتر است.
Sensor node operating system provides a limited number of common services for developers to construct applications for wireless sensor networks. The sensor network community selected TinyOS as the de facto standard with most existing applications, libraries and device drivers available for TinyOS. The programming model of TinyOS is event-based and is not easy to use. In this paper, we present a new task scheduler for TinyOS that includes a new computation concept, named Job. Jobs are a collaborative and non-preemptive way of multitasking. On the next step, we propose a programming model which combines the asynchronous basis of event-driven systems with a more classical programming interface for the developer. As a result, developer that uses such an interface in his application will be provided with the sequential view we wanted. This programming model is suitable for applications that have long running computations and there is a data flow dependency between different tasks.
[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