TinyOS的构件包括网络协议、分布式服务器、传感器驱动及数据识别工具。其良好的电源管理源于事件驱动执行模型,该模型也允许时序安排具有灵活性。TinyOS已被应用于多个平台和感应板中。
◆TinyOS操作系统、库和程序服务程序是用nesC写的
◆nesC是一种开发组件式结构程序的语言
◆nesC是一种C语法风格的语言,但是支持TinyOS的并发模型,以及组织、命名和连接组件成为健壮的嵌入式网络系统的机制
◇nesC应用程序是由有良好定义的双向接口的组件构建的
◇nesC定义了一个基于任务和硬件事件处理的并发模型,并能在编译时检测数据流组件
◇nesC应用程序由一个或多个组件连接而成
◇一个组件可以提供或使用接口
●组件中command接口由组件本身实现
●组件中event接口由调用者实现
●接口是双向的,调用command接口必须实现其event接口
◇modules
●包含应用程序代码,实现接口
◇configurations
●装配模块,连接模块使用的接口到其提供者 tinyos
●每个nesC应用程序都有一个顶级configuration连接内部模块
◆TinyOS只能运行单个由所需的系统模块和自定义模块构成的应用程序
◆两个线程
◇任务
●一次运行完成,非抢占式
◇硬件事件处理
●处理硬件中断
●一次运行完成,抢占式
●用于硬件中断处理的command和event必须用async关键字声明
Componented-Based Architecture
TinyOS提供一系列可重用的组件,一个应用程序可以通过连接配置文件(A Wiring Specification)将各种组件连接起来,以完成它所需要的功能。
Event-Driven Architecture
TinyOS的应用程序都是基于事件驱动模式的,采用事件触发去唤醒传感器工作。
Tasks And Events Concurrency Model
tasks一般用在对于时间要求不是很高的应用中,且tasks之间是平等的,即在执行时是按顺序先后来得,而不能互相占先执行,一般为了减少tasks的运行时间,要求每一个task都很短小,能够使系统的负担较轻;
events一般用在对于时间的要求很严格的应用中,而且它可以占先优于tasks和其他events执行,它可以被一个操作的完成或是来自外部环境的事件触发,在TinyOS中一般由硬件中断处理来驱动事件。
Split-Phase Operations
在TinyOS中由于tasks 之间不能互相占先执行,所以TinyOS没有提供任何阻塞操作,为了让一个耗时较长的操作尽快完成,一般来说都是将对这个操作的需求和这个操作的完成分开来实现,以便获得较高的执行效率。
词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0