- UID
- 1029342
- 性别
- 男
|
4.2 编程模型
早起版本的TinyOS不支持多线程,应用开发都是严格的遵照事件驱动编程模型。TinyOS 2.1版本听增加了对多线程的支持。这些TinyOS线程被称作 TOS 线程。原作者之处问题的关键是:节点拥有受限的资源,事件驱动更适合。然后抢占式线程提供了更加直观的编程模型。 TOS线程包使得多线程编程模型在事件驱动模型上有效的工作。TOS线程是先后兼容的,
4.3 调度
早起版本的TinyOS支持非抢占的先来先服务调度算法,所以那写版本的TinyOS不支持实时应用,TinyOS执行模型的核心是任务在FIFO的模式下完成。任务对于任务是完整的,但是中断,命令和它所调用的时间却不是原子的。缺点是:等待时间过长,而且对短任务不公平。
TinyOS的原作者宣传已经支持了EDF算法,去解决实时调度任务。EDF调度算法不会产生稳定的调度当资源不能满足的时候,所以TinyOS不能提供硬实时调度算法,如果不同的线程需要共同的资源。
4.4内存管理和保护
4.5 通信协议支持
早期版本的TinyOS提供了两把多跳协议:分发和TYMO。分发协议可靠的讲数据分发到网络上的每个节点。这个协议运行管理员重新配置和改变网络,分发协议提供两个接口:Dissemination 和 disseminationUpdate,生产者调用disseminationUpadta,每次生产者想要分发消息都会调用disseminationUpdate.change()命令。另一方面,dissemination value 接口是为消费者准备的。事件DisseminationValue.changed()会在分发数据改变时signaled.TYMO协议时分发协议的补充,是一个为移动自组网的路由协议。
lin 已经研发出了新的DIP,一种新的为传感网络设计的分发协议。DIP是数据发现和分发协议,其规模可以达到数百。TinyOS version2.1.1now also provides supportfor 6lowpan。
在MAC层,TinyOS提供了下列补充协议:一个单跳TDMA协议,aTDMA/CSMA 混合协议实现最大化的Z-MAC B-MAC,还有一个可实现的IEEE802.15.4 MAC协议
4.6 资源共享
TinyOS 用了两种机制来管理共享资源:虚拟化和 completion events(完成事件?)虚拟化资源出现在每个独立的实例中,应用程序单独使用它。资源不能够被虚拟化的将会通过或completion events 来处理,TinyOS中的GenericComm 通信协议 可以被不同的线索共享,这是不能被虚拟化的。GenericComm每次只能发送一个数据包,在这个时间段里其他的发送操作都会失败,这样的共享资源会通过completion events来处理,它来通知等待的线程什么时候一个特定的线程完成。
4.7 支持实时应用
4.8 新增特性
文件系统:TinyOs提供了一个单层的文件系统,这个文件系统的原理是它假设只有一个应用跑在一个给定的节点上在特定时间。由于节点内存是受限的,有个单层的文件系统还是很有效的。
数据库支持:传感器节点的目的是感知 ,执行计算机指令,存储和发送数据。说以TinyOS提供了以TinyDBR为格式的数据库支持。
安全支持:在无线广播媒介中,通信安全是必须的。
模拟支持:
语言支持:TinyOS是用NesC 做出来的,NesC 是C的一种扩展语言
支持平台:Mica,mica2 micaz telos tmote
文档支持:TinyOS有丰富的文档资源,可以在www.tinyos.net上找到
5 contiki
contiki是一种轻量级的开源OS,C编写。contiki是一种高可移植性的os,是基于事件驱动的内核。contiki提供了可抢占多任务可以用到individua process level ,一个典型的contiki配置需要2k的RAm和 40K的rom,一个完整版的contiki安装包括:多任务内核,可抢占线程,原始级线程,TCP/IP网络,IPv6,一个图形界面窗口,一个web浏览器,一个私人web服务器,一个简单的telnet客户端,一个屏保程序,和虚拟网络计算。
5.1 体系结构
contiki OS 遵循的是模块化体系结构。在内核层他遵循时间驱动模型,但是它提供线程对于特殊的应用过程。contiki包含了一个轻量级的时间调度器,他可以分发事件到正在运行的进程。进程的执行是由内核分发的时间激发的或者被轮询的。轮询机制是用来防止竞争机制的,任何调度的事件都会运行完成,然而,事件处理程序可以使用内部机制来抢占。
contikiOs提供两种事件EW:同步事件和异步事件。不同点在于同步事件理解分发给目标进程并且导致调度。异步事件是有点像先调用入队操作,稍后再发生给目标进程。
contiki中用到的轮询机制就像高优先级的事件,它可以在每个同步事件之间调用,当一个poll被调度,all processes that implement a poll handler are called in order of their priority.
所有的OS 工具如:传感数据处理,通信,设备发送 都是以服务的形式提供的,每个服务都有他的接口和实现,应用层使用某个特定服务时,必须知道服务的接口,应用并不关系一个服务的具体实现, |
|