230 likes | 431 Views
AN EVOLVABLE OPERATING SYSTEM FOR WIRELESS SENSOR NETWORKS. 无线传感器网络的一种可扩展操作系统. 摘要. 根据低功耗,代码小体积,可扩展性等设计原则,我们为传感器网络应用设计了一种可扩展的操作系统 evolvable operating system(EOS) 。这种 EOS 系统提供存储器空间有效的线程管理,协作线程间通讯模块和网络堆栈。同时还支持微控制器和无线收发器的能量管理,网络广时间同步功能。最重要的是,这种系统的可扩展概念使得其可以很容易进行配置和升级。.
E N D
AN EVOLVABLE OPERATING SYSTEM FOR WIRELESS SENSOR NETWORKS 无线传感器网络的一种可扩展操作系统
摘要 • 根据低功耗,代码小体积,可扩展性等设计原则,我们为传感器网络应用设计了一种可扩展的操作系统evolvable operating system(EOS)。这种EOS系统提供存储器空间有效的线程管理,协作线程间通讯模块和网络堆栈。同时还支持微控制器和无线收发器的能量管理,网络广时间同步功能。最重要的是,这种系统的可扩展概念使得其可以很容易进行配置和升级。
Keywords:Wireless sensor network;operating system;on the fly upgradeability • 关键词:无线传感器网络;操作系统;无线升级。
1.Introduction • 无线传感器网络是无所不在的信息处理技术的关键,有着非常广泛的应用,已经深入到我们的生活中。因为由传感器节点组成的传感器网络在资源方面有很大的约束和限制,所以必须克服许多的研究障碍,譬如网络堆栈,安全机制,定位,操作系统等。近年,有许多在操作系统方面的研究,其中值得注意的就是Berkeley’s的TinyOS和Colorado’s的Mantis操作系统(MOS)。
MOS是一种带有网络堆栈层的分层多线程操作系统。本文中我们提出一种EOS操作系统,这种系统继承了MOS的多线程体系结构。我们的这种操作系统提供更有效的微线程和类线程管理。也简化了熟悉多线程和C语言编程的程序员进行编程。EOS还包括一个软性的硬件抽象层Hardware Abstraction Layer(HAL),这使得可以将EOS移植到任意硬件平台。高效的多线程体系结构和微线程与类线程共存的机制。信息处理引擎可以高效无缝的处理现场和远程的通信。易用的标准编程语言和丰富的应用程序接口用于建立各种传感器网络应用。
实现了另一个传感器网络可扩展性能的关键问题,同时还有自动配置,容错机制和可靠的,透明的和可升级等特点实现了另一个传感器网络可扩展性能的关键问题,同时还有自动配置,容错机制和可靠的,透明的和可升级等特点 • 本文组织:第2节描述EOS体系结构。第3节简要提及可扩展的概念。第4节总结一些应用和性能表现。第5节进行总结并展望未来研究工作。
2.EOS Architecture • 图1是EOS操作系统的体系结构,它包括六个主要的组件
-硬件:EOS运行于各种不同的传感器硬件平台,大多只有有限的资源(比如:带有128KBFlash存储和4KBRAM 的8-bit的uc微处理器)。 • -硬件抽象层:对各种不同的硬件进行抽象表述,以实现EOS的可移植性。 • -内核:是操作系统的核心,它包括八个功能块:配置管理器,资源管理器,能量管理器,信息处理,网络堆栈,任务管理器,时间管理器和同步机制。 • -设备驱动:提供了传感器节点的所有设备的驱动,如ADC模数转换器,Serial port串口,eeprom等。 • -调试/监测接口:提供了一个命令集,用户可以用于进行调试和监测传感器节点的运行状态。 • -操作系统接口:为诸多的EOS应用提供了API接口。
2.1 Task Management 任务管理器 • 我们提出的这种任务管理器命名为Hybrid Task management混合任务管理器。所有的任务可以归结为两类:带有自己的独立堆栈的一般的线程generic threads和组内共享一个堆栈的微线程。该方法使用一个单一的协议栈在该系统和固定优先调度与抢占阈值的机制,已被使用。控制水平抢占优先级,我们使用的概念,非优先级组,这是一个收集任务是不得抢占对方在同一组。由于这个概念是适用于微线程,每个线程可以有两种不同的优先次序。
优先是用来对一个线程进行队列排队,在就绪队列。调度优先分配给一个线程,当它成为一个运行的线程。这个优先的关键是在系统中控制堆栈的使用水平。由于通用线程有自己的堆栈,线程的优先也可视为优先的水平。因此,通用线程只的基础上优先考虑。与建议任务管理机制, EOS可以提供更多的灵活性,在设计传感器网络申请。此外,它保证了高并发和高效率的记忆体使用量。
2.2Message handling 信息处理 • 信息处理引擎的整体架构和详细的信息队列结构如图2所示。信息发送/分派模块MessabeSend/Dispatch Modoule(MSDM)从用户线程中接收请求报文。如果请求报文是交互线程间通信,信号就被传送到ITC信息队列;否则,数据就通过网络堆栈打包后,发送到目的地。
Inter-Thread Communication(ITC)交互线程间通信 • EOS操作系统中线程间通信的一个基本概念就是使用消息队列来存储数据和进行任务间的交换。消息队列在环形的缓冲器中执行。信息插入消息队列后被检索是依赖于所采用的策略的。一个信息队列由在消息队列控制块中设定的参数确定。消息队列的结构如图2所示。
Remote-Thread Communication(RTC) 偏远进程间通信 • 对于RTC,我们采用三胩通信模式:基站通信Base station Centered Communication(BCC):基站(BS)可以对所有的传感器节点进行洪泛发信息或者将信息发送给任意一个网络中的节点。同样的传感器节点可以发送信息给基站。Publish/Subscribe Communication(PSC):BS或者任意一个节点既可以作为信息的发布者也可以作为接收者。Collaboration/Group Connunication(CGC):一组的传感器节点可以通过使用通信模块来进行合作。
2.3 Network Stack 网络堆栈 • 网络堆栈作为一个可插入的模块执行,它可以很容易的进行升级或者修改。同时还支持前面讲述的三种通信模块。近来,一种建于IEEE 802.15.4 PHY/MAC的树形的拓扑结构应用于路由算法。对于BCC,基站可以对所有的节点进行广播。对网络中任一节点发送信息,基站发送的信息带有到达目的地的中间节点列表。从传感器节点返回到基站,每个节点都可以使用亲代节点来到达基站。对于PSC,节点发送公告和预约信息给基站。然后基站对合适的预约进行公布。对于GCC,节点间的通信通过基站来执行。首先发送节点发送一个信号给基站。基站把这个信号传送给相应的接收节点。
2.4 Time synchronization 时间同步 • 时间同步模块通过使用“发送-接收”的方法来实现。同步进程由基站进行初始化。我们使用RF模块在发送数据包给CC2420RF芯片之间记录时间信息来获得更精确的时间信息。在基站初始化一个同步进程后,在下一层的子节点与基站交换两个时间标志信息的数据包。然后子节点就可以计算自己的偏移量,并修本地时钟来达到同步的目的。同时下一层的子节点可以监听到自己的亲代节点的无线收发活动。要检测到父代节点的同步活动后,子节点也启动并和自己的亲代节点交换时间标志信息的数据包。
2.5 Power management 能源管理 • 为了延长传感器节点的寿命,EOS的能源管理模块监视线程和内核各部分的活动状态,并决定能量模式的转变是否是必要的。具体的,当一个传感器节点上的所有进程都停止运行时,就启动能源管理模块来将此节点转换到休眠模式。一旦调用能源管理模块,就收集唤醒的资源,这样线程就可以从休眠状态唤醒,比如时间截止或者网络堆栈满栈了。最后,传感器节点进入选择性休眠模式。并保持在这个模式直到预期的中断到达。
3.EOS Advanced Features EOS的高级特性 • 可扩展性是EOS的一个特异的概念。我们也在探讨如何对传感器网络WSN的可扩展性进行一个全面的定义。此前第一节中,我们提出的可扩展性使该操作系统获得一些特性,如可缩放裁减性,高度模块化和无线的升级功能。 • 无线升级的基本概念使用一个特殊的模块Configuration Manager(CM)。这个模块可以管理并支持载入和卸载热插拔模块。CM的结构如图3所示。
为了装载/卸载热插拔的模块,CM使用动态的目标模块连接/解连接技术,这是由模块控制函数来完成的。热插拔的模块的信息(符号串和字符表,正文段,数据段,堆栈段等)由模块图提供。存储器分配控制器保证模块的装载和卸载操作的安全,并避免不同的存储段间的冲突。为了装载/卸载热插拔的模块,CM使用动态的目标模块连接/解连接技术,这是由模块控制函数来完成的。热插拔的模块的信息(符号串和字符表,正文段,数据段,堆栈段等)由模块图提供。存储器分配控制器保证模块的装载和卸载操作的安全,并避免不同的存储段间的冲突。
4.EOS ImplementationEOS的执行 • 我们在带有8位ATMEGA128CPU,4KBRAM,128KB片内闪存,4Mb扩展存储和ZigBeeCC2420无线收发器的ANTS-H2硬件平台上运行EOS操作系统。此硬件平台上有光,加速度,磁力计,燃气,IR等传感器。如图4所示。
我们在开发EOS后做的诸多实验中,选择一个进行描述。升级任务管理器模块的方案如下:系统首先运行一个简单的FIFO任务调试算法。然后它要求升级成为一个混合的任务管理Hybrid Task management方案。最重要的一点就是决定什么时候有新的目标模块连接到内核数据。对于任务管理模块,在任务队列表为空时完成。
5. Conclusions 总结 • 在本文中,我们为传感器网络提出一种可扩展的操作系统。结构中的每个组件在设计其功能时都从能耗,资源有限和可扩展性待方面考虑。对于未来的工作,我们会考虑诸如安全性,实时性约束等因素。