TinyOS

✍ dations ◷ 2025-09-14 05:38:26 #TinyOS

TinyOS是一款自由和开源的基于组件的(component-based)嵌入式操作系统,主要针对无线传感器网络(WSN, wireless sensor network)开发。TinyOS使用nesC语言编写,经由一系列合作项目得以完善。TinyOS最初是加州伯克利分校和英特尔研究院为嵌入智能微尘而开发的合作项目,之后逐渐演变成一个国际合作项目,即TinyOS联盟。

TinyOS中的程序使用nesC编写,这种语言是C语言的一个分支,针对无线传感器网络的内存限制进行过特别的优化。相关的辅助工具则主要是由Java和Shell脚本编写的前端。其他相关的库和工具,例如NesC编译器和Atmel AVR二进制工具链则大部分用C编写。

TinyOS程序由基于组件的软件工程建构,它们中一些表现了硬件的抽象概念, 组件用接口互相连接。TinyOS为普通的抽象描述(abstractions)提供了接口和组件,例如数据包通信(packet communication),路由,感知(sensing),行为(actuation)和储存。

TinyOS 2.x版本后引入了完全的非阻塞式行为:它配备了一个单独的堆栈。因此所有的持续超过几百微秒I/O操作都以异步进行并且带有回叫功能(callback)。为了使本地的编译器更加出色地优化交叉调用边界(optimize across call boundaries),TinyOS用nesC的特性,通过事件的方式去连接这些调用。非阻塞式系统可以让TinyOS在单一存储器下保持高度的协同性(concurrency)。它强迫程序将很多个小的事件处理例程合并成一个复合逻辑。为了支持更高的计算量,TinyOS提供了任务(tasks),其比推迟的过程调用和中断处理例程的下半部小。

一个TinyOS组件可以发布一个任务,操作系统可以把它排入列表以待之后执行。任务是没有优先权的并且按照FIFO运行。这个简单的协同模型满足了以I/O为中心的应用,但对于CPU负荷重的应用程序来说是不太好的,因为它会导致向OS多次提出线程间协同处理的请求。这个问题已经导致了几个试图将线程合并进OS内核里的提案。

TinyOS代码与程序代码进行静态连接,然后用GNU工具链生成系统的一整个二进制映像。

相关

  • I急性风湿热(I00-I09)高血压病(I10-I15)缺血性心脏病(I20-I25)肺原性心脏病和肺循环疾病(I26-I28)其他类型的心脏病(I30-I52)脑血管病(I60-I69)动脉、小动脉和毛细血管疾病(I70-I79)静脉、
  • 北欧北欧是地理上对欧洲北部的简称,一般分为狭义及广义两种定义: 气候:地处高纬,气温偏低,因北大西洋暖流经过,使其比同纬度地区暖湿 地形:1.以斯堪的纳维亚半岛为主体,斯堪的纳维亚山
  • 兖州.mw-parser-output ruby.zy{text-align:justify;text-justify:none}.mw-parser-output ruby.zy>rp{user-select:none}.mw-parser-output ruby.zy>rt{font-feature-settings:
  • PdO氧化钯,化学式为PdO,加热至900℃以上时,氧化还原为金属钯,氧化钯的用途不多。氧化钯非常稳定,不溶于酸,微溶于王水。把硝酸钯在空气中加热就即得氧化钯。氧化钯用作催化剂。
  • 创伤后应激障碍创伤后压力综合征(Post-traumatic stress disorder,简称PTSD,又称创伤后遗症)是指人在经历过情感、战争、交通事故等创伤事件后产生的精神疾病。其症状包括会出现不愉快的想法、
  • 帕维尔·彼得罗维奇·波斯特舍夫帕维尔·彼得罗维奇·波斯特舍夫(俄语:Па́вел Петро́вич По́стышев,1887年9月6日(18日)-1939年2月26日)是苏共中央政治局候补委员。他在“大清洗”中被定
  • 蒙特卡洛蒙特卡洛(法语:Monte-Carlo .mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium","Ge
  • Google轰炸Google轰炸(英语:Googlebomb, Googlebombing,或译Google炸弹)是一种试图影响特定站点在Google中查询结果排序的做法。借由Google的特定算法,一个被很多相同关键字链接到的网站将
  • 苻晖苻晖(?-385年),中国五胡十六国时代人物,前秦天王苻坚的儿子。357年,前秦天王苻坚封弟弟苻融为阳平公,苻双为河南公,儿子苻丕为长乐公,苻晖为平原公,苻熙为广平公,苻睿为钜鹿公。380年,苻
  • 北汉山国立公园北汉山国立公园(朝鲜语:북한산국립공원/北漢山國立公園  */?)是位于韩国首尔特别市江北区、道峰区、恩平区、城北区、钟路区以及京畿道高阳市、杨州市、议政府市的山岳型国立公园。1983年4月2日指定,是韩国第15座国立公园,总面积80平方公里。