TinyOS操作系统介绍

基于组件(Component-based)的架构使得程序能快速更新,同时又减小了受传感器网络节点存储器限制的代码长度。

硬件抽象组件,合成硬件组件和高层软件组件。硬件抽象组件对物理硬件设备进行了TinyOS的组件化。在TinyOS系统平台中,每个硬件资源都被抽象成一个或多个易于操作的组件,用户程序访问这些资源时只需调用对应组件相应的功能接口,即可实现对硬件的操作。合成硬件组件所起到的作用即为将硬件抽象组件与高层软件组件进行连接。它可以利用硬件抽象组件提供的接口实现高于硬件抽象组件的功能,比如对字节的发送与接收。高层的软件组件实现了对整个系统的控制、建立路由和数据传输等。多个下层组件可以连接起来构成上一层更大的组件,而最上层的组件就是应用程序。TinyOS的层次结构如图1所示。

typescirpt版本 type os_操作系统

                                                                                                                       图1 TinyOS的层次结构

       TinyOS提供任务和事件的两级调度机制。任务一般用于对时间要求不高的应用,它实际上是一种延时计算机制。任务之间互相平等,没有优先级之分,所以任务的调度采用简单的FIFO。任务之间互不抢占,即任务一旦运行,就必须执行至结束,当任务主动放弃CPU使用权时才能运行下一个任务。硬件事件处理句柄去响应硬件中断,它可以抢占任务或者其他的硬件事件处理句柄。当事件被触发后,与该事件相关联的所有任务迅速被执行,当这个事件和任务被处理完成之后,CPU进入睡眠状态,直至其他事件将它唤醒。总的来说,TinyOS调度模型有以下特点:

(1)任务单线程运行到结束,只分配单个任务栈,这对内存受限的系统很有利。

(2)任务调度算法采用非抢占式的FIFO算法,任务之间相互平等,没有优先级之分。

(3)TinyOS的调度策略具有能量意识,当任务队列为空时,处理器进入休眠模式,直到外部事件将它唤醒,能有效的降低系统能耗。

(4)这种基于事件的调度策略,允许独立的组件共享单个执行的上下文,只需少量运行空间就能获得高度的并发性。

      TinyOS的调度过程如图2所示。

typescirpt版本 type os_调度策略_02

图2  TinyOS的调度过程