TinyOS任务调度机制与实时调度构件设计收稿日期:2007-05-09;修回日期:2007-07-18。基金项目:国家863计划项目(2005AA1Z2120)。作者简介:刘奎安(11012-),男,四川自贡人,硕士研究生,主要研究方向:无线传感器网络;郭文生(1976-),男,辽宁铁岭人,讲师,博士研究生,主要研究方向:无线传感器网络、实时网络技术;桑楠(1964-),男,四川营山人,教授,主要研究方向:嵌入式实时系统。:1011-9081(2007)11-2740-03TinyOS任务调度机制与实时调度构件设计刘奎安,郭文生,桑楠(电子科技大学计算机科学与工程学院,成都610154)(lka102711012@sina)摘要:TinyOS是一个开源的构件化操作系统,它采用构件化描述语言nesC进行开发,主要针对资源非常有限的无线传感器网络节点而设计。分析了TinyOS22.x的任务调度机制,针对其在实时应用领域的调度缺陷,设计并实现了一种软实时任务调度构件。根据构件在TOSSIM仿真器中的验证分析,能有效增强TinyOS的实时性能。关键词:无线传感器;TinyOS;实时;构件设计;TOSSIM:TP316;TP311文献标识码:ASchedulemechanismofTinyOSanditsreal2chedulecomponentdesignLIUKui2an,GUOWen2sheng,SANGNan(SchoolofComputerScienceandEngineering,UniversityofElectronicScienceandTechnologyofChina,ChengduS---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---ichuan610154,China)Abstract:TinyOSisanopen2sourcecomponentoperatingsystemforsensornetworksnodesthathasverylimitedresources.TinyOSwasimplementedincomponent2developinglanguagenesC.ThroughanalyzingtheschedulemechanismofTinyOS22.x,asoftreal2chedulercomponentwasdesignedandimplementedforreal2timeapplications.SimulationresultsinTOSSIMdemonstratethatthesoftreal2timecomponentimprovesthereal2timeperformanceofTinyOS.Keywords:wirelesssensornetworks;TinyOS;real2time;componentdesign;TOSSIM0引言无线传感器网络(WirelessSensorNetworks,WSN)是由大量体积较小、能源受限,具有一定计算、存储和无线通信能力的传感器节点组成的无结构网络[1,2]。它综合了传感器、嵌入式、无线网络、分布式信息处理等技术。由于WSN自身具备的特征,已广泛应用于国防军事、环境监测、交通管理、医疗卫生等领域。无线传感器网络作为一个新兴的研究领域,其中存在大量挑战性的研究课题,节点上的操作系统(WirelessSensorNetworksOperationSystem,WSNOS)设计与实现就是其中之一。目前,国外许多大学、研究机构着手于WSNOS的研究,开发出了TinyOS[3]、Magnet、MANTIS、SenOS等具有典型特征的WSNOS。其中,由UCBerkeley依靠Smartdust(智能尘埃)项目开发出的TinyOS得到了广泛关注和应用。TinyOS是全新面向WSN的源码级构件化操作系统,由构件开发语言nesC[4]开发,其内核只需要400字节的内存空间即可运行起来,---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---是一个轻量级操作系统。但在实时应用中,TinyOS简单的FIFO调度算法就显得不再适用,在任务数较多时重要任务的响应时间无法得到保证。因此,针对实时应用的实时性需求,本文深入分析了TinyOS22.x调度机制和调度相关的构件,提出了具有软实时性能的任务调度机制,开发了相应的系统调度构件,通过在TOSSIM[5]仿真器中进行仿真分析,此实时系统调度构件能提高TinyOS的实时性能。1TinyOS22.x的调度机制1.1TinyOS的任务事件驱动的并发模型TinyOS采用任务和事件驱动[6]相结合的两级并发模型(如图1)。图1TinyOS任务事件驱动并发模型示意图任务机制任务由用户应用程序定义,可以由应用程序或事件处理程序创建。任务由task关键字定义,具体定义语法为:taskvoidmyTask(){…}。任务由post关键字创建,具体语法为:postmyTask()。创建任务时,TinyOS的调度器将任务加入任务队列的队尾。核心调度策略中的任务调度器把此任务加入任务队列后就立即返回,任务则延迟执行。在等待执行的任务队列中,各个任务之间采用FIFO原则进行调第27卷第11期2007年11月计算机应用ComputerApplicationsVol.27No.11Nov.2007收稿日期:2007-05-09;修回日期:2007-07-18。基金项目:...