大学
《无线传感网技术》课程报告
名
称
无 线 传 感 器 网 络 操 作 系 统
专业年级
学生姓名
学
号
指导教师
日
期
目录
1 主要内容介绍.................................................................................................... 1
2 无线传感器网络介绍........................................................................................ 1
3 无线传感器网络中常用的操作系统............................................................... 1
3.1TinyOS 操作系统.....................................................................................2
3.2 SOS 操作系统.........................................................................................4
3.3 Mantis OS 操作系统............................................................................... 5
3.4 Contiki 操作系统.................................................................................... 7
3.5 Magnet OS 操作系统..............................................................................8
3.6 无线传感网操作系统总结..................................................................... 9
4 课程总结.......................................................................................................... 10
5 参考文献......................................................................................................... 11
1
1 主要内容介绍
本文主要介绍了在无线传感器网络中常用的几种操作系统,包括其产生、特
点、主要机制等。并对这些操作系统进行了对比。
2 无线传感器网络介绍
无线传感器网络(wireless sensor network, WSN)就是由部署在监测区域内大
量的廉价微型传感器节点组成,通过无线通信的方式形成的一个多跳的、自组织
的网络,其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息,并
发送给观察者。传感器、感知对象和观察者构成了传感器网络的三个要素。如果
说 Internet 构成了逻辑上的信息世界,改变了人与人之间的沟通方式,那么,无
线传感器网络就是逻辑上的信息世界与客观上的物理世界融合在一起,改变人类
与自然界的交互方式。人们可以通过传感器网络直接感知客观世界,从而极大扩
展现有网络的功能和人类认识世界的能力[1]。
早在上世纪 70 年代,就出现了将传统传感器采用点对点传输,连接传感控
制器而构成传感器网络的雏形,这种传感网络只具备简单的信息获取能力,且应
用也只限于军方,难以推广和发展,我们把它归之为第一代传感器网络。随着相
关学科的不断发展和进步,传感器网络同时还具有了获取多种信息信号的综合处
理能力,并通过与传感控制器的相连,组成了有信息综合和处理能力的传感器网
络,这是第二代传感器网络,大量多功能传感器被运用,并使用无线技术连接,
无线传感器网络逐渐形成[2]。
3 无线传感器网络中常用的操作系统
无线传感器网络是目前国内外研究的热点领域,而无线传感器网络操作系统
是无线传感器网络应用的重要支撑技术。许多国内外的知名大学和研究机构纷纷
开发出了自己的无线传感器网络操作系统,比较著名的有 TinyOS、SOS、Magnet
OS、Contiki 等。
1
WSN 是一种典型的嵌入式系统,和一般的实时系统相比,有其显著的特点:
(1)传感器节点的存储容量小、运算能力弱;
(2)节点尺寸小、功耗低、支持并发密集型操作;
(3)多样化的设计和使用、操作的健壮性、节点的自主自治能力等。
这些特点要求 WSN 节点有一个灵活紧凑的体系结构,一个高效、可靠、节
能的网络协议栈;同时也要求有一个精心设计的系统软件,来很好地管理各硬件
资源,以最大限度地降低运算功耗和通讯功耗[3]。
3.1TinyOS 操作系统
TinyOS 操作系统是由加州大学伯克利分校开发的开源微型操作系统,专为
无线传感网络设计,目前在无线传感器网络操作系统领域上占据了主导地位。
TinyOS 是一个事件驱动的系统。它只有一个共享的堆栈,没有内核和用户
空间之分,在编译应用程序时,内核会被一起编译进去。这种模型提供了一个可
重用的组件集合。应用程序使用配件把组件连接到一起,而组件之间通过接口实
现交互。TinyOS 把底层硬件封装成组件,并向用户提供了硬件无关的组件。
TinyOS 还把系统服务分成许多独立的可被重用的组件。使得应用程序根据任务
的需要只包含那些必须的组件,并且易于实现移植和维护。
图 3-1 TinyOS 架构[3]
TinyOS 实现了任务和事件的两级调度。TinyOS 对任务的调度遵循 FIFO 模
型。任务之间不能互相抢占,任务可以 post 自身,也可以 signal 事件。由中断触
发底层的事件,事件能抢占任务,而且事件之间也呢过互相抢占,事件可以 signal
事件,调用命令和抛出任务。TinyOS 中 post 操作大约要花费 80 个时钟周期。如
果用户需要的话,用户应用程序也可以取代系统的调度器[4]。
2
TinyOS 使用了静态分配和管理内存的机制。TinyOS 中的组件在编译时分配
他所需要的内存,并且不鼓励在组件之间传递指针。TinyOS 可以通过下面的方
法实现动态内存管理:一个组件静态的分配了一块内存,这时组件本身就可以动
态的管理它分配的内存块。
TinyOS 定义了两种不同的能量管理模型:显式能量管理模型和隐式能量管
理模型。前者被高层组件用来显式控制设备的状态。当高层组件使用这种方式通
知设备打开和关闭时,设备会立即执行。而后者提供了一种用于允许设备自身来
控制状态的方法,遵循这种模型的设备不能够被外部组件显式地打开或者关闭。
TinyOS 的调度器在任务队列中没有可执行的任务时,会使处理器进入低功耗模
式以节省能量。
TinyOS 把系统资源分为三种不同的抽象:独享资源抽象、虚拟资源抽象、
共享资源抽象,这样就可以使用不同的管理策略来进行管理。如果某种资源在任
何时候必须是排他性的使用,那么它属于独享资源抽象。虚拟资源抽象使用了软
件虚拟化技术使得独享资源虚拟为了共享资源。TinyOS 还使用了资源接口来实
现对共享资源的访问,组件使用这个接口来请求并获得资源共享和判优程序。判
优的功能就是用来决定那一刻哪一个用户访问资源。对于一些设备抽象,判优程
序也提供能量管理策略。
TinyOS 使用 TOSSIM 作为模拟器。它支持两种编程接口:Pythoon 和 C++,
而且这两种代码之间的转换非常简单。目前,TOSSIM 唯一支持的平台是 mica2,
不支持能量检测。
3
图 3-3 TinyOS 仿真的图形界面[4]
TinyOS 支持的硬件平台有:eyesIFXv2,intelmote2,mica2,mica2dot,micaZ,
telosb,tinynode,btnode3。
3.2 SOS 操作系统
SOS 是由加州大学洛杉矶分校网络和嵌入式实验室(NESL)为无线传感器
网络节点开发的操作系统。
SOS 是一个事件驱动的系统。它由可以动态装载的模块和静态内核构成。SOS
的静态内核包括了硬件抽象层、设备驱动和内核服务。内核服务提供了灵活的非
抢占式的优先级消息调度器、动态内存分配以及其他一些服务。模块则实现了系
统大多数的功能,包括驱动程序、协议、应用程序等[5]。
图 3-3 SOS 架构图[5]
4
SOS 使用非抢占式的优先级队列调度。优先级队列有两种:高优先级和低优
先级。高优先级用于实时性要求比较高的事件,包括硬件中断和敏感定时器等。
低优先级队列用于调度大多数普通的事件。优先级队列的使用时的对时间有重要
要求的消息可以得到优先调度,从而可以较好的改善系统的中断响应服务性能。
内核和应用程序模块都使用了动态内存机制。SOS 采用了最佳适应固定分区
内存分配算法,它定义了三种固定大小的内存分区。空闲的内存按照块的大小组
成空闲链表,这种组织方式提供了常数时间的内存分配和回收开销。动态内存块
带有少量注释的数据,这些数据用于检测内存溢出。
SOS 没有提供标准的能量管理机制。在 SOS 中,只有一些外设自身实现了
开启或关闭的功能。SOS 的调度器在消息队列空闲时使处理器进入节能模式。
SOS 操作系统没有提供用于控制访问共享资源的机制。他要求所有的外设管
理都在应用程序层被处理,它没有显式的支持任何类型的交互操作。
SOS 模拟框架提供了简单的方式用来支持 SOS 应用程序开发,它无需安装
交叉编译器。由于 SOS 是直接基于 AVR 微处理器开发的,所以 Avorora 也支持
SOS 应用程序的模拟。
SOS 支持的硬件平台有:mica2,micaz,XYZmote。
3.3 Mantis OS 操作系统
简称为 MOS,是由美国科罗拉多大学 MANTIS 项目组为无线传感器网络而
开发的源代码公开的多线程操作系统。
MOS 采用了经典的分层多线程设计模式,应用线程独立于系统 API。MOS
通过维护不同平台的 API 实现了对多个平台的支持。MOS 系统是由一个轻量级
的、节能的调度器,用户级网络协议栈和其他的组件构成。
5
图 3-4 MOS 架构[6]
MOS 内核提供了基于优先级的多线程调度和在同一优先级中进行轮转调度
的服务,并且其时间片刻配置。它也支持互斥信号量和计数信号量。现成的状态
有五种。系统给线程设置了 5 个优先级。系统中缺省的最大线程数为 6。内核为
每个优先级水平维护一个含有头指针和尾指针的就绪列表。
MOS 只在很少的地方使用了动态内存管理,例如线程,网络堆栈等,其他
都是按照静态内存分配策略管理的。MOS 的 RAM 空间被分成了两部分:一部
分是编译时分配的全局占用的空间;另一部分以堆的形式管理。当线程被创建了,
内核从堆中为线程分配栈空间。当线程退出后,它所占用的内存空间归还。
MOS 提供了标准的接口用来控制外设的能量使用状态。在 MOS 中可以通过
dev_mode()函数来修改底层设备的能量状态。MOS 中的微处理器能量管理与线
程调度是紧密结合的,并且它支持 2 个级别的节能。
MOS 的设备驱动层提供了相应的用于设备管理的机制。它使用了如下四个
不同的系统调用实现对外设的管理:dev_read(),dev_write(),dev_mode(),
dev_iotc()。前两个用于读写设备数据,第三个用于管理设备的能量状态,第四个
用于配置设备的具体参数。
MANTIS 的原型环境为不同应用程序的原型设计提供了一个框架,使得这些
应用程序在因特网和配置好的传感器网络间建立连接。MANTIS 的原型设计环境
6