您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页无线传感器网络操作系统TinyOS的研究

无线传感器网络操作系统TinyOS的研究

来源:意榕旅游网
 2008年第1期

文章编号:100622475(2008)0120067204

计算机与现代化

JISUANJIYUXIANDAIHUA

总第149期

无线传感器网络操作系统TinyOS的研究

王 斌

(桂林电子科技大学,广西桂林541004)

摘要:无线传感器网络(WirelessSensorNetwork,简称WSN)综合了传感器技术、嵌入式计算技术、现代网络、无线通信技术及分布式信息处理技术。本文介绍了无线传感器网络及无线传感器网络操作系统的特点,分析了具有代表性的无线传感器网络操作系统TinyOS,最后指出TinyOS调度策略的不足,提出一点改进的意见。关键词:无线传感器网络;TinyOS;事件驱动;调度策略中图分类号:TN915.9    文献标识码:A

StudyonWirelessSensorNetworkOperatingSystemTinyOS

WANGBin(GuilinUniversityofElectronicTechnology,Guilin541004,China)

Abstract:Wirelesssensornetwork(WSN)isanintegrationofsensortechnology,embeddedcomputingtechnique,modernnet2work,wirelesscommunicationtechnologyanddistributedinformationprocessingtechnology.Thisarticleintroducesthecharacter2isticsofwirelesssensornetworkandwirelesssensornetworkoperatingsystem,analyzesTinyOS,arepresentativewirelesssensornetworkoperatingsystem,pointesouttheinsufficiencyofTinyOSschedulingstrategy,putsforwardproposalsforimprovement.Keywords:wirelesssensornetworks;TinyOS;event2driven;schedulingstrategy

0 引 言

随着微机电技术、传感器技术、嵌入式计算技术

和无线通信技术的飞速发展和相互融合,具有感知、

[1,14]

计算和通信能力的微型传感器节点开始出现。由这些节点构成的无线传感器网络,是集信息采集、信息处理、信息传输于一体的综合智能信息系统,这些传感器节点和传统的实时嵌入式系统相比,有其显著的特点,如传感器网络节点的存储容量小、运算能力弱、节点尺寸小功耗低、支持并发密集型操作和节点的自主自治能力等。这些特点要求节点具有一个高效、可靠、节能的系统软件来很好地管理各硬件资

[10]

源以最大限度地降低运算功耗和通讯功耗。无线传感器网络的操作系统是一个典型的实时多任务嵌入式操作系统,其主要职责就是确保传感器网络节点中各项任务的调度和顺利完成。

1 传感器网络的特点

无线传感器网络具有动态性、适应性和分布处理能力,它由以通讯为中心的、大量的、小型和微型数据采集设备构成。它是一种特殊的Ad-hoc网络,相对于传统无线网络,其特点为网络节点密度高、数据传输具有突发性和间断性、网络节点间可自组织通信、拓扑变化频繁、具备容错能力等。

传感器网络结构如图1所示,传感器网络系统通常包括传感器节点、汇聚节点和管理节点。大量传感器节点随机部署在监测区域内部或附近,能够通过自组织方式构成网络。每个节点既要进行数据的采集,又要将采集后的数据通过多跳传递的方式传输给汇聚节点,然后通过互联网或卫星传到任务管理节点。用户通过任务管理节点对传感器网络进行配置和管理,发布监测任务以及收集监测数据。

无线传感器网络虽然与无线自组网Ad-hoc有

收稿日期:2006212229

作者简介:王斌(19712),男,广西桂林人,桂林电子科技大学讲师,研究方向:现代检测技术及其自动化。

 68计 算 机 与 现 代 化2008年第1期

相似之处,但同时也存在很大的差别。具有很多自己

[2,8]

的特点:

(6)WSNOS是一个分布式操作系统,没有中心

服务器。

3 TinyOS操作系统的研究与分析

TinyOS操作系统是基于构件方式组成。TinyOS

主要由主控构件(包括调度器)、应用构件、系统服务

构件和硬件抽象构件组成。硬件抽象构件实现对无线传感器硬件平台的抽象,系统服务构件包括通信服务、传感服务和能耗管理三部分。应用构件实现具体

[11]

应用相关的功能和策略。主控构件实现整个操作系统的控制流程,主要是进行整个无线传感器的初始化以及系统运行状态的维护。TinyOS的组件由四个相互关联的部分组成,它们分别是:一组命令处理程序句柄,一组事件处理程序句柄,一个经过封装的私有数据帧,一组简单的任务。任务、命令、和事件处理程序在帧的上下文中执行并切换帧的状态。为了易于实现模块化,每个组件还声明了自己使用的接口及其要用信号通知的事件。这些声明将用于组件的相互连接。

TinyOS采用轻量级线程(lightingthread)技术、主动消息(activemessage)通信技术、事件驱动(event-driven)模式、组件化编程(component-basedpro2gramming)。TinyOS是事件驱动的操作系统。相比于传统的嵌入式实时操作系统,完全事件驱动的操作系统TinyOS的实时性主要体现在任务对实时事务的处理。操作系统负责接收来自操作系统的事件,处理相应的事务。TinyOS提供任务加事件的两级调度。任务一般用于对时间要求不高的应用中,它实际上是一种延迟计算机制。任务之间互相平等,没有优先级之分,所以任务的调度中有专门的事件管理子系统来完成对事件管理。这个子系统由事件派发器以及与事件有关的系统调用和库函数组成。其功能是对事件进行识别、翻译、转换、传递以及发送。用户任务用简单的FIFO。任务间互不抢占,而事件(大多数情况下是中断)可抢占。即任务一旦运行,就必须执行直至结束,当任务主动放弃CPU使用权时才能运行下一个任务,所以TinyOS实际上是一种不可剥夺型内核。内核主要负责管理各个任务,并决定何时执行哪个任务。默认情况下,TinyOS的任务列表大小为8。内核根据任务进入队列的先后顺序依次调度执行,即调度算法为简单的FIFO。

图2是任务调度示意图。内核进行任务调度,确定任务可以获得的处理时间和次序并被调度运行,同时将进入到系统中的事件流分配到各个任务,按照各

图1 传感器网络体系

(1)传感器节点资源有限:节点电源能量、通信

能力、计算和存储能力有限。

(2)节点的可靠性要求高:节点可能工作在恶劣的环境中,需要有较强的鲁棒性。

(3)自组织网络:要求传感器节点具有自组织的能力,能够自动进行配置和管理,通过拓扑控制机制和网络协议自动形成网络系统。

2 目前嵌入式操作系统[3,7]

的状况无线传感器网络节点的资源十分有限,传统的嵌入式操作系统难以正常有效地运行和工作。特别在能量和内存要求中矛盾比较突出。因此需要一种全新的嵌入式操作系统才能满足无线传感器节点的基本需求。到目前为止,已经开发出一些面向无线传感器网络的操作系统,例如由C和汇编混合编写、支持多任务、提供基于事件的编程模型的BTnodeOS,针对AtMega128设计的、非抢占多线程、支持动态堆栈分配的Nut/OS,可抢占、支持时间片轮转的MANTIS[13][14]

OS,基于事件驱动的EYESOS,目标平台为

[4,8]

MSP430的DCOS和伯克利大学的TinyOS等。在传感器网络中,自身的特点决定了适合无线传感器网络的操作系统具有如下特点:

(1)由于节点存储资源有限,WSNOS应该可以根据不同的应用系统进行裁剪和扩充。

(2)为了有效利用电能,降低功耗,大多数WS2NOS使用事件驱动模型。当没有任务需要处理时,CPU进入睡眠状态,由外部事件(通常是硬件中断)

来唤醒。

(4)WSNOS通常采用微内核结构,其核心只提供操作系统的基本功能,例如进程/线程调度与同步、中断管理、时钟管理、原子操作等。

(5)WSNOS具有可重构能力。当节点工作失常时,要求能够自我恢复和重新组织。

 2008年第1期王斌:无线传感器网络操作系统TinyOS的研究 69

强处理能力的处理机和充足的硬件资源,而这些正是

无线传感器网络节点所缺乏的地方。不过随着科学技术的发展,如今的无线传感器网络节点各个方面的性能已经取得了很大的提高。因此在适当降低实时性要求和牺牲部分通常很少使用的功能的前提下,通过改进TinyOS的内核调度机制,从而提高整个系统的实时性有了较高的可行性。几种改进的方法如下:

(1)非抢占式优先级的调度策略。根据每个任务的实时性要求程度的不同,赋予其一定的优先级,也就是说实时性要求越苛刻的任务其优先级越高。这种调度策略总是将处于就绪态的、优先级最高的任务安排在就绪队列的队首,等待当前任务自我终止或运行完成后,才能被调用。例如,可以把数据包收发和加解密任务设置成高优先级,当它们就绪时就插入到任务队列头部。当任务队列装满时,队尾低优先级的任务被丢弃。

采用优先级的调度策略后,TinyOS的简单FIFO调度策略将被打破,取而代之的是基于优先级的“FIFO”调度策略。具体实现方法是,给每一个任务都分配一个优先级,比如按照任务实时性要求的严格程度分为1-3三级,最严格的任务是3级,而一般性的任务则默认为1级。当某个任务A到来的时候,调度器从就绪队列的末尾开始,将它的优先级依次和队列中任务的进行比较,直至出现更高优先级或者相同优先级的任务为止,假设其为任务B,此时调度器将任务A插入到任务B之后,而队列中原来排在任务B后面的其他任务依次向后移一位,如果队列在插入前已经满了,队尾的最后一个任务将被放弃。优先级越高的任务,将在队列中排得越靠前。另外,优先级的设置可以根据需要进行扩充和调整,比如分级为4级甚至更多。上述这种基于优先级的“FIFO”策略和简单的FIFO策略有明显的不同,但是调度器在给任务分配处理器的时候还是只分配给就绪队列队首的第一个任务,而且任务一旦运行起来就不能被其他任务所打断,这些和简单的FIFO策略是一致的。

(2)基于时钟中断的抢占式优先级的调度策略。同非抢占式优先级的调度策略相比,抢占式的最大不同在于它不用等待当前的任务自我终止或者运行完成以后,再将就绪队列的队首任务投入运行,这样可以大大提高系统的实时性。但是,从上述讨论可知,这种调度策略对硬件设备的性能要求很高,传感器网络节点现有的资源配置很难做到立即抢占式的调度,而且被抢占任务的临时数据也无处存放,因为Tiny2OS中只有一个数据栈,它只分配给正在运行的任务

图2 事件流向示意图

个任务的事务调度算法对事件流所代表的事务进行事务调度。获得运行机会的任务开始响应自己的事件,处理自己的事务。

4 TinyOS的不足及改进策略尽管TinyOS被广泛使用,并且得到了相当的认可,但这并不意味着TinyOS能够适用于WSN的所有应用场景。事实上,在某些场合下,TinyOS并不能工作得很好,存在不足的地方,比如可能出现过载、导致任务丢失、通信吞吐量下降等。

分析表明,无线传感器网络节点的三个典型任务为:传感器采集、本地数据发送和作为中继节点转发数据包。当本地任务发生频率过高时,任务队列很快就满了,这时发送或接收任务可能丢失,从而导致数据包丢失;另外,如果本地任务运行时间过长,则发送或接收数据包的任务要等待较长时间才能得到处理,从而降低通信速率。因此,TinyOS的调度策略是可能导致出现问题。FIFO的调度机制可能导致一些重要的任务得不到实时的响应。

[5,9,12]

我们知道在实时系统中,硬实时任务和软实时任务都规定一个任务的截止时间。为保证系统能正常工作,实时调度必须能满足实时任务对截止时间的要求,在含有硬实时任务的系统中,广泛采用抢占机制,即当一个优先级更高的任务到达时,允许将当前低优先级的任务暂时挂起,而使高优先权的任务立即投入运行,但这种调度机制比较复杂,对资源的要求也较高。

从以上条件可以看出,高度实时性的实现需要有

 70计 算 机 与 现 代 化2008年第1期

使用。为了解决上述困难,可以采用基于时钟中断的抢占式优先级调度策略。当某个优先级高于当前任务的实时任务到达后,记录下来,等到时钟中断到来时,调度程序剥夺当前任务的执行,将处理及分配给新来的高优先级任务。另外还要再设置一个中断指针和一个与原始数据栈同样大小的备用数据栈,虽然这会加大内存的负担,不过为了提高系统的实时性和随着目前节点内存的增大。中断指针用来记录被抢占的任务在中断到来时已经执行到的位置,为了保证额外的开销不至于太大,规定不允许中断套嵌。备用数据栈的作用就是用来存放被抢占任务的临时数据,等实时任务结束以后,用于还原被抢占任务的原来状态,从而继续执行下去。

并且可以解决当任务队列已满而丢失高优先级任务的情况。并对获得的实验结果进行了比较,从而验证改进方法的有效性和可行性。

参考文献:

[1] 孙利民,李建中,陈渝,朱红松.无线传感器网络[M].

北京:清华大学出版社,2005.

[2] 任丰原,黄海宁,林闯.无线传感器网络[J].软件学

报,2003,14(7).

[3] 黄光燕,李晓维.无线传感器网络操作系统[J].信息技

术快报,2005,3(3).

[4] 林喜源.基于TinyOS无线传感器网络体系结构[J].单

中机与嵌入式学验应用,2006(9).

[5] JaneWSLiu.实时系统(影印版)[M].北京:高教出版

5 测试与总结

测试平台是采用Crossbow公司生产的节点以及

编程板。TinyOS系统提供了ncc编译器,可以对使用者开发的nesC应用程序进行编译生成3.srec的二进制文件。3.srec文件可以通过电脑串口和Mica2的开发板从个人电脑下载到Mica2的flash中,也可以使用无线通信进行远程下载。选用了TinyOS下的Surge多跳路由程序进行测试。另外,也进行改进调度机制后与TinyOS的内存开销性能比较。结果如图3所示。

社,

[6] 陈喜贞,王书茂,徐勇军.无线传感器网络操作系统调度策略研究[EB/OL].http://www.paper.edu.cn/pa2

per.php?serial2number=200507266,2005207207.[7] HillJ,SzewczykR,WooA,HollarS,CullerD,Pister

K.

Systemarchitecturedirectionsfornetworkedsensors[C]//Proceedingsofthe9thInternationalConferenceonArchitecturalSupportforProgrammingLanguagesandOp2eratingSystems,2000:932104.

[8] PhilipLevis,SamMadden,etc.TheEmergenceofNet2

workingAbstractionsandTechniquesinTinyOS[C]//NS2DI’04,California,2004.

[9] LiQing,YaoCaroline.嵌入式系统的实时概念[M].王

安生译.北京:北京航天航空出版社.

[10]JasonHill.ASoftwareArchitectureSupportingNetworked

Sensors[D].Masterthesis,theDepartmentofElectricalEngineeringandComputerSciences,UniversityofCalifor2niaatBerkeley,20001

[11]VenkitaSubramonian,SeemaDatar,etc.PrioritySchedu2

linginTinyOS2ACaseStudy[D].DepartmentofComputerScience,WashingtonUniversity.2002.

[12]JohnRegehr,AlastairReid,etc.Evolvingreal2timesys2

temsusinghierarchicalschedulingandconcurrencyanalysis[C]//the24thIEEEReal2TimeSystemsSymposium.2003.

[13]ShahBhatti,JamesCarlson.MANTISOS:Anembedded

multithreadedoperatingsystemforwirelessmicrosensorplatforms[J].MobileNetworks&Applications(MONET)Journal,SpecialIssueonWirelessSensorNetworks,2005(8).

[14]DulmanS,HavingaP.OperatingSystemFundamentalsfor

theEYESDistributedSensorNetwork[C]//ProgressRe2port2002.Utrecht,theNetherlands,2002.

图3 性能比较图

试验的结果表明,改进的操作系统与TinyOS相

比性能有一定的改善,对于中断事件的响应速度,可以提高30%左右的响应时间,平均中断事件的响应速度在1.5秒左右。

本文针对TinyOS体系结构中,在实时性要求比较高的应用环境中存在的问题进行分析研究,在调度策略方面提出了一些改进方法。在调度方面,原内核采用了FIFO的简单的调度,但是这种方法并不是很理想,实时性不高,并且系统可靠性也不高。因此采用了带有优先级的调度,需要急迫解决的任务被赋予高优先级,而被先投放到任务队列中,可以优先运行,

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务