TinyOS任务调度机制与实时调度构件设计
嵌入式操作系统内核原理和开发(改进型优先级调度)
嵌入式操作系统内核原理和开发(改进型优先级调度)上面的一篇博客说到了优先级调度,但是那个优先级调度算法比较极端。
打个比方说,现在王先生有三个小孩,分别是老大、老二、老三。
假设现在到了饭点,王先生需要给三个小孩喂饭。
此时如果是时间片轮转的话,那么就是绝对公平,王先生每人一口不停地进行喂饭。
如果是优先级调度,那么王先生首先自己有一个优先级考量,比如说三个小孩按照年龄顺序优先级是逐渐提高的,毕竟小孩需要更多的照顾嘛。
这个时候如果需要进行喂饭的话,那么王先生需要首先伺候好最小的那个小孩老三,才会有时间照顾老二,至于老大什么时候才能得到照顾那就看造化了。
现在,我们打算重新换一种方法。
假设三个小孩的优先级分别是1、2、3,其中年龄越小优先级越高,3代表高优先级。
接着,我们按照优先级给三个小孩安排时间片,分别是1、2、3。
同时,这个时间片不光代表了当前可用的剩余时间,还代表了小孩此时的临时优先级。
(1)首先王先生给老三喂饭,时间片降低1,即临时优先级为2;(2)接着王先生判断当前优先级最高的仍为老三,毕竟老二的优先级也没有超过老三,所以老三的时间片降1,临时优先级为1;(3)王先生获知当前优先级最高的为老二,老二获得时间片;(4)此时王先生发现三个孩子的临时优先级都一样,那么就会按照固定优先级的大小依次对老三、老二、老大进行喂饭。
我们发现,这中间受益最大的就是老二。
当然,我们可以做进一步推论,如果老王的孩子越多,那么优先级处于中间的孩子在时间片的分配上将更加均匀,响应也会更加及时,交互性也会变得很好。
根据以上的想法,我们重新改写了优先级调度算法,修改为改进型优先级调度算法,1int find_next_thread()2{3int index;4int choice = THREAD_MAX_NUMBER -1;5int value = gAllTask[choice].time_slice;67for(index = choice -1; index >= 0; index --)8 {9if(value < gAllTask[index].time_slice)10 {11 choice = index;12 value = gAllTask[index].time_slice;13 }14 }1516if(0 == value)17 choice = -1;1819return choice;20}21#define TIME_ROUND_SCHEDULE 022#define HARD_PRIORITY_SCHEDULE 023#define SOFT_PRIORITY_SCHEDULE 1这些代码都是可以在系统中共存的。
TinyOS任务调度的研究与改进
TinyOS任务调度的研究与改进李明,丁恩杰中国矿业大学信电学院,江苏徐州(221008)E-mail:lmsiee@摘要:本文介绍了TinyOS任务调度机制,指出TinyOS调度策略的特点及不足。
采用一种改进式NPEDF算法对TinyOS的调度器进行实时性改造,并详细描述了具体改进方案。
实验测试的结果证明了这种改进策略的有效性。
关键词:TinyOS,任务调度,实时性,NPEDF中图分类号:TP316.891.引言传感器技术、嵌入式计算技术、微电子技术、无线通信技术以及半导体与微机电系统制造技术的飞速发展和相互融合使得具有感知、计算和通信能力的低功耗多功能无线传感器网络得以实现。
近年来,无线传感器网络(WSN-Wireless Sensor Networks)被广泛应用于国防军事、国家安全、环境科学、交通管理、医疗卫生、反恐、灾害监测等领域[1]。
无线传感器网络操作系统(WSNOS)是无线传感器网络的支撑技术之一。
它是WSN 应用程序的基本软件环境,核心是任务调度。
目前面向无线传感器网络的操作系统主要有TinyOS、MANTIS OS[2]、SOS、SenOS[3]、PEEROS[4]等,其中最为流行的是加州大学伯克利分校开发的TinyOS[5]。
它采用基于组件的架构方式,在传感器网络天生就严格限制内存的条件下,可以用最小代码快速来创新和实现各种应用。
目前,它已经被成功的应用到多种硬件平台上,具有很高的应用价值和研究意义。
本文主要研究了TinyOS现有的任务调度策略,在分析出应用TinyOS可能存在的问题的基础上,结合嵌入式实时操作系统的相关理论,提出了一种改进式NPEDF算法,并用这种算法对TinyOS调度器进行实时性改造。
最后,通过实验对改进前后的TinyOS进行测试,以此来验证本文采用的调度算法对无线传感器网络通信性能的影响。
2.TinyOS 2.0任务调度策略TinyOS 2.0采用任务和事件驱动相结合的两级并发模型,任务调度策略采用简单的先进先出(FIFO)算法。
TinyOS调度机制研究与改进
维普资讯
4 3 96
科
学
技
术
与
工
程
7卷
被迅 速处 理 。 当这 个 事 件 和 所 有 任 务 被 处 理 完 成
2 1 算 法可调 度性分 析 . 在时 间离 散 的 假设 前 提 以及 任 务 截 止 期 等 于
后 , 被 使 用 的 C U循 环 被 置 于 睡 眠状 态 , 未 P 而不 是 积极寻 找 下 一 个 活 跃 的 事 件 , 至其 它 事 件 将 它 直
20 0 7年返 回
事件返回、工 曼堡墼
第一作者简介 : 罗
杰 (9 8 ) 男 , 17 一 , 湖南湘潭人 , 硕士研究生
没有任务挂起
研究方向 : 无线传感器网络。Em i yyap @2 c .o — a : a l 1n cn。 la pe
图 1 任务事件 的调度 过程
维普资讯
第 7卷
第l 9期
20 0 7年 l 0月
科
学
技
术
与
工
程
Vo _ No 1 l7 .9
Oc.2 0 t 07
17 —8 9 20 ) 94 3 —4 6 1 11 ( 0 7 1 —95 0
S in e T c n lg n gn e i g ce c e h oo y a d En i e rn
唤醒 。
其 周 期 的情 况下 , 针对 周 期 性 实时 任务 ,ee 出 Jfy提
了不 可 抢 占 式 E F算 法 可 调 度 性 判 定 的 充 要 条 D
总 的来 说 , iy S的 调 度 机 制 具 有 如 下 几 个 Tn O
特点 :
调度
任务切换过程
处理器的SP=任 务块中保存的SP
恢复待运行任务 的运行环境 处理器的PC=任 务堆栈中的断点 地址
如何获得待运行 任务的任务控制 块?
获得待运行任务 的任务控制块
任务在没有被配备 任务控制块或被剥 夺了任务控制块时 的状态叫做任务的 睡眠状态
正在运行的任务,需要 等待一段时间或需要等 待一个事件发生再运行 时,该任务就会把CPU 的使用权让给别的任务 而使任务进入等待状态
OSRdyGrp | =OSMapTbl[prio>>3]; OSRdyGrp D7 D6 D5 D4 D3 D2
在程序中,可以用类似下面的代码把优先 1 1 级别为prio的任务置为就绪状态: 把prio为29的任务置为就绪状态
OSRdyGrp | =OSMapTbl[prio>>3]; OSRdyTbl[prio>>3] | = OSMapTbl[prio&0x07];
μC/OS-II实时操作系统
任务设计、调度及应用实例
主要内容
一. 基本概念 二.任务的要素 三. μC/OS-II的任务调度 四. 结合实例
uC/OS-II任务结构
从任务存储结构来看,由三部分构成:任务程序 代码、任务堆栈和任务控制块。任务控制块用来 保存任务属性,任务堆栈用来保存任务工作环境, 任务程序代码是任务的执行部分。
任务的优先权 及优先级别
在应用程序中定义任务堆栈的栈区非常简单, 即定义一个 OS_STK 类型的一个数组并在创建 保存CPU寄存器中的内容及存 一个任务时把这个数组的地址赋给该任务就 储任务私有数据的需要,每个 可以了。 任务都应该配有自己的堆栈, 例如:
任 务 堆 栈 任务堆栈是任务的重要的组成
Tinyos系统调度器与任务
Tinyos调度器和任务介绍1、介绍TinyOS有二个基本的计算抽象:异步事件和任务。
Tinyos早些版本提供单一的类型任务,没有参数且只能FIFO调度。
将任务调度表现成TINYOS组件更容易制定,将任务表现成TINYOS接口可扩展任务类型。
TINYOS2.0采用这二种方法,这份文本记录了其是如何以简单的机制来提高系统可靠性。
2、TinyOS1.x任务调度TinyOS中的任务是可延迟的调用过程DPC,可以使某程序延迟计算或操作。
TOS任务一次运行完毕,任务间不可抢占。
这二个约束条件意味着任务代码是同步的。
也就是说,任务是原子性的。
在tinyos1.x中,nesC语言通过二种机制支持任务,任务声明和任务发布表达post task void computeTask(){//Code here}result_t rval=post computeTask();TinyOS1.x提供单一的任务类型,无参数函数及单一FIFO的调度策略。
Post语句可返回FAIL,表明TinyOS发布任务失败。
可发布任务多次。
例如,如果某一任务连续发布了二次,第一次成功但第二次失败,此任务将会被运行一次。
因为这样,虽然一次发布失败,但任务仍可能运行。
Tinyos1.x调度器由sched.c文件中的C函数集实现的。
若要修改调度器则需替代或修改此文件。
另外,因为任务仅通过nesC中的task关键字声明和post关键字支持,假设是无参数函数,不能修改语句或任务功能。
Tinyos1.x的任务队列是由固定大小的函数指针类型的循环缓冲实现。
发布任务就是将此任务的函数指针放入下个空缓冲区中。
如果没有空的缓冲区,发布任务将返回失败。
这类模型有几个问题:1)某些组件针对发布任务失败没有合适的响应2)某给出的任务能发布多次,这将占用多个缓冲区3)所有组件的所有任务共享单一资源:某个有问题的组件可能导致其他组件发布任务失败。
从根本上来,为了使组件A在发布任务失败后重新发布任务,另外一个组件B必须调用A的函数(命令或事件)??。
无线传感器网络操作系统TinyOS综述
计算机与现代化2011年第2期JISUANJI YU XIANDAIHUA总第186期文章编号:1006-2475(2011)02-0103-03收稿日期:2010-10-19作者简介:吴小娜(1987-),女,江西崇仁人,东华大学计算机科学与技术学院硕士研究生,研究方向:无线传感器网络操作系统;王漫(1967-),男,上海市计算技术研究所高级工程师,研究方向:无线传感器网络,普适计算,协同计算。
无线传感器网络操作系统TinyOS 综述吴小娜1,王漫2(1.东华大学计算机科学与技术学院,上海200051;2.上海市计算技术研究所,上海200040)摘要:TinyOS 是无线传感器网络专用的操作系统。
本文首先分析TinyOS 操作系统的关键技术———组件化结构、调度机制、通讯模型及能量管理方式,然后将TinyOS 与另外两个操作系统μCOS-II 、μT-Kernel 在内核大小、时间可确定性、低功耗等方面进行简要对比,最后总结TinyOS 操作系统的缺点和存在的问题,为学习使用TinyOS 提供指导。
关键词:无线传感器网络;TinyOS ;综述中图分类号:TP316文献标识码:Adoi :10.3969/j.issn.1006-2475.2011.02.028Review of TinyOS for Wireless Sensor Networks Operating SystemWU Xiao-na 1,WANG Man 2(1.School of Computer Science and Technology ,Donghua University ,Shanghai 200051,China ;2.Shanghai Institute of Computing Technology ,Shanghai 200040,China )Abstract :TinyOS is the specific operating system for wireless sensor networks.First ,this paper introduces the key techniques of TinyOS ,such as component-based model ,scheduling mechanism ,communication model and energy management.Then it brieflycompares with the other two operating system μCOS-II ,μT-Kernel about RAM /ROM ,realtime performance ,low power etc.Fi-nally ,TinyOS shortcomings and exist problems are summarized.Key words :wireless sensor networks ;TinyOS ;review0引言无线传感器网络(WSN )[1-4]是多个具有感知、通信和计算能力的小型无线传感器网络节点自组织而成的新型网络,能够协作实时监测、感知和采集网络分布区域内的各种环境或监测对象信息,并对这些信息进行传输处理以获得所需信息。
任务调度机制
任务调度机制
任务调度机制是指一种自动化执行任务的方法,它可以将任务按照预定的时间或条件自动触发执行,从而提高工作效率和准确性。
任务调度机制通常包括以下几个方面:
1. 定时任务调度:根据设定的时间节点自动触发任务执行,例如每天凌晨执行数据备份任务。
2. 事件驱动任务调度:根据特定的事件触发任务执行,例如用户登录后触发欢迎消息发送任务。
3. 条件触发任务调度:根据特定的条件触发任务执行,例如当系统负载高于设定阈值时触发自动扩容任务。
任务调度机制可以应用于各种场景,例如数据处理、资源管理、自动化运维等。
通过合理的任务调度机制,可以实现系统自动化、高效化,从而提高企业的生产效率和竞争力。
- 1 -。
TinyOS操作系统开发技术及实践(西电版)第1章 TinyOS概述_OK
2021/6/30
10
10
第1章 TinyOS概述
版本 0.4.3 0.6.x 1.0 1.1.x
2.0 Beta
2.0.1 2.0.2 2.1.0 2.1.1 2.1.2 2021/6/30
时间 2000 年
2001 2002 年 9 月 2003 年 8 月
2006 年 2 月
2007 年 4 月 2007 年 7 月 2008 年 8 月 2010 年 4 月 2012 年 8 月
表 1-2 TinyOS 的版本变化
说明 通过 向公众开放 支持 mica 平台,期间 UBC 发布了支持 1000mica 平台的 TinyOS 项目, 2002 年 4 月 UCB 与 Intel 研究进行 nesC 语言开发合作 使用 nesC 语言重新编写并改进了 TinyOS nesC 增加部分新功能(如支持并发模型);TinyOS 增加新的 UART 通 信协议等 2.0 Beta1 发布,2.0 与 1.x 不再兼容,后者编写的代码将无法在 2.0 上编译通过;2.0 硬件抽象遵循 3 级结构;改进了任务调度策略;2.0 提 供了比 1.x 更丰富的定时器接口 增加 CC2420 低功耗协议栈;改进组件和接口的资源管理;增加 lib/printf 库;增加 lib/net/lqi 库;修复部分 BUG 重新实现了 CC2420 低功耗协议栈;修复部分 BUG 增加对 IRIS 和 shimmer 平台的支持;增加对 802.15.4 T-Frames 帧的 支持;增加低功耗应用开发指导 增加对 shimmer2、mulle、epic 平台的支持;增加 6LoWPAN/IP 协议 栈;改进 python SDK 增加 RPL 协议栈;增加对 ucmini、ATMega128RFA1、Zolertia Z1 平 台的支持;增加 CoAP 协议栈
liteos原理
liteos原理
LiteOS是一种轻量级的操作系统,主要用于物联网设备和嵌入式系统。
它的设计理念是高效、简洁和可裁剪,以满足物联网设备对资源有限的要求。
以下是LiteOS的一些原理:
1. 微内核架构:LiteOS采用了微内核设计,将操作系统内核拆分为多个独立的组件,每个组件负责一个特定的功能,通过消息传递进行通信。
这样可以提高系统的可靠性、可扩展性和可维护性。
2. 事件驱动机制:LiteOS使用事件驱动机制来处理任务和中断。
每个任务都是一个事件处理程序,通过等待和触发事件来执行相应的操作。
这种机制可以有效地利用系统资源,并提供响应快速的实时性能。
3. 轻量级调度器:LiteOS具有轻量级的任务调度器,可以根据任务的优先级和调度策略来分配CPU时间片。
它支持多任务并发执行,可以在不同的任务之间进行快速切换,从而实现任务的及时响应和高效运行。
4. 资源管理:LiteOS提供了简单而灵活的资源管理机制,包括内存管理、设备驱动和文件系统等。
它可以根据需求进行资源的动态分配和释放,以最大程度地减少内存占用和资源冲突。
5. 低功耗优化:LiteOS专注于物联网设备的低功耗需求。
它采用了一些省电策略,如睡眠模式、功率管理和时钟控制等,以降低能耗并延长设备的电池寿命。
总体来说,LiteOS通过精简设计和优化算法,使得其具有高效、可靠、可裁剪和低功耗的特性,非常适合于轻量级物联网设备和嵌入式系统的应用。
无线传感器网络节点操作系统TinyOS综述
无线传感器网络(Wireless Sensor Networks,WSN)是现代传感技术和无 线通信技术的结合体。在WSN中,大量的低功耗、低成本、紧凑型传感器节点以 自组织和多跳的方式进行通信,收集和处理环境信息,以实现各种应用,如环境 监测、军事侦察、智能家居等。为了有效管理和协调这些节点,需要一个相应的 操作系统。TinyOS就是一种专为WSN设计的开源、分布式、事件驱动的操作系统。
通信机方面,TinyOS支持多种无线通信协议,如ZigBee、IEEE 802.15.4 等。它采用了轻量级的通信协议栈,实现了高效、可靠的无线通信,并降低了功 耗。
TinyOS应用程序开发
使用TinyOS开发应用程序需要对TinyOS的编程模型有一定的了解。TinyOS 应用程序的基本结构包括硬件配置、任务定义、事件处理和通信协议等几个部分。
TinyOS内核分析
TinyOS的内核主要包括任务管理、内存分配和通信机制等几个部分。
任务管理方面,TinyOS采用了基于任务的调度模式,每个任务都有自己的优 先级和调度参数。系统根据任务的优先级和调度参数动态地调度任务执行,同时 通过任务间的同步和通信机制来实现协同工作。
内存分配方面,TinyOS采用了静态内存分配方式,每个任务都有自己的内存 空间,避免了对全局内存的竞争访问,提高了系统的效率和可靠性。
3、AI集成:人工智能技术在无线传感器网络中的应用前景广阔。未来 TinyOS可以集成AI算法和模型,实现对传感器数据的智能分析和处理,提高无线 传感器网络的智能化水平。
4、低功耗优化:低功耗一直是无线传感器网络追求的重要指标之一。未来 TinyOS可以通过进一步优化事件驱动机制、节能策略等方面来降低节点功耗,延 长网络寿命。
TinyOS操作系统的实现机制
TinyOS任务调度机制与实时调度构件设计
(c o oCm u r cne n ni en,U imt oEer iSi c adT ho g Ci , Sh lf o p ̄ ic adEg e i o Se n rg ne i l tn cn e nl yo h a v yf co c e e n c o f n
C eg uS h a 10 4 hn ) hnd i u n60 5 ,C ia c
rs u ̄ 8 T n OS Wa mp e n e n c mp n n — e e o ig ln u g e C.T ru h a ay i g t e s h ue me h n s o e o i e . i y S i lme td i o o e t v lp n a g a e n s d h o g l zn h c e l c a i n d m f
中存在 大量挑 战性 的研究课题 , 点上 的操 作 系统 ( r es 节 Wi ls e Sno e o s prt nS s m, N S 设计 与实现就是其 esr t r e i yt WS O ) N w k O ao e
中之 一 。
目前 , 国外许 多 大学、 究 机构 着 手于 WS O 研 N S的研 究 , 开发 出了 Tn O 、 ge、 N I 、eO iy S lMantMA TS Sn S等具有典 型特征 的 WS O 。其 中, U ekl NS 由 C B re y依靠 S atut 智能尘埃 ) e m r s( d
Sc e l e ha s fTi OS a t e ltm e s h d e c m p ne td sg h du e m c nim o ny nd is r a -i c e ul o o n e in
第09章-TinyOS操作系统
TinyOS的内存管理采用完全静态分配内存的策略。虽然nesC语言 也支持指针操作,但TinyOS不采用动态分配内存策略。 首先,动态内存分配影响系统的稳定性,而完全的静态分配内存策 略增强了TinyOS系统的稳定性。 其次,静态分配内存简化了TinyOS管理内存的难度,提高了程序 运行的效率。
第三,静态分配内存提高了TinyOS对内存的使用率。动态内存分 配策略会因为内存碎片而使内存使用率降低。
1、协作式与抢占式OS
在操作系统的发展过程中,先后有2种形式的多 任务管理机制,即协作式与抢占式。 协作式:如果任务切换的时机完全取决于正在运 行的任务,那么这样的操作系统就是协作式多任务操 作系统。即任务执行时的权利比操作系统还大,只有 等正在运行的任务完成后,才会将控制权交给操作系 统,此时才能执行下一个任务。一旦某个任务运行出 错,则导致整个系统挂起(Pending)。 抢占式:如果任务优先运行的决定权取决于操作 系统,而且即使有一个任务死掉,而系统仍能正常工 作,那么这样的操作系统就是抢占式多任务操作系统 。
(4)任务和事件并发模式(Tasks And Events ConcurrencyModel)。任务之 间是平等的,即在执行时是按顺序先后来的,而不能相互抢占。事件用在对 于时间的要求很严格的应用中,而且它可以优先于任务执行。 (5)分段执行(Split-Phase Operations)。在TinyOS中由于任务之间不能互 相抢占执行,所以TinyOS没有提供任何阻塞操作,为了让一个耗时较长的操 作尽快完成,一般来说都是将对这个操作的需求和这个操作的完成分开来实 现,以便获得较高的执行效率。 (6)主动消息模式(active message)。每一个消息都维护一个应用层和处理 器,当目标节点收到这个消息后,就会把消息中的数据作为参数,传递给应 用层的处理器进行处理。应用层处理器一般完成消息数据的解包、计算处理 或发送响应消息等工作。 (7)基于可重用组件的体系结构,单一任务栈,内核非常简单,甚至在 严格意义上说,称不上内核,没有进程管理和虚拟存储。 这些特点使得TinyOS非常适合WSN的需求,所以它得到了广泛应用。
TinyOS体系结构
-9-
3.2 硬件抽象层
➢ 以mytinyOS平台为例,此平台的HPL组件大都存在于与 CC2530芯片相关的文件中
- 10 -
3.2 硬件抽象层
➢ 以“tos/chips/cc2530/”目录下的HplCC2530GeneralIOC.nc文 件为例,HplCC2530GeneralIOC.nc文件是针对CC2530的I/O 的实现
➢ HPL的接口组件一般具有以下两个特点 :
除了自动操作常用的命令外,HPL层没有提供任何实质性的硬件抽 象。它隐藏了最依赖于同一类别的不同HPL硬件模块。增强更高层 抽象资源的独立型。
用户只需简单地重新绑定HPL组件,而不必重新编写代码就可以在 不同的USART模块之间进行切换。
- 13 -
3.2 硬件抽象层
-8-
Hale Waihona Puke 3.2 硬件抽象层➢ HPL组件都应该具备以下几个功能 :
为了实现更有效的电源管理,必须有硬件模块的初始化、开始和停 止命令;
为控制硬件操作的寄存器提供“get”和“set”命令; 为常用的标识位设定和测试操作提供单独的命令; 开启和禁用中断的命令; 硬件中断的服务程序,HPL组件的中断服务程序只负责临界操作,
打断长事件运行的任务。 基于事件的调度策略,只需要少量空间就可获得并发性,与事件相
关的任务可以很快被处理,不允许阻塞,具有高度并发性。 任务之间相互平等,没有优先级的概念。
-5-
3.2 硬件抽象组件
➢ 功能
主要负责物理硬件的控制
➢ 优点
提高代码的可重用性和可移植性; 实现效率和性能的优化。
-6-
3.2 硬件抽象层
三层
基于TinyOS的无线传感器网络任务调度的研究与改进的开题报告
基于TinyOS的无线传感器网络任务调度的研究与改进的开题报告一、选题背景随着物联网技术的不断发展,无线传感器网络(Wireless Sensor Network,WSN)已成为物联网的重要组成部分。
WSN在军事作战、环境监测、智能化制造等领域有着广泛的应用前景。
WSN由大量分布式节点组成,在网络运行中需要进行任务调度,以保证网络的高效稳定运行。
因此,如何设计和实现优秀的任务调度算法和体系架构成为WSN领域内的研究热点。
本课题将专注于基于TinyOS操作系统的WSN任务调度研究和改进,在实现基本任务调度功能的基础上,提出一种新的调度策略,改进现有的调度机制,提高WSN的性能和实用性。
二、研究目标和意义本课题的研究目标是:基于TinyOS操作系统,研究和改进WSN任务调度算法和框架,提高WSN的运行效率和性能。
本课题的研究意义主要体现在以下几个方面:1.优化调度策略,提高WSN的传输效率和能耗效率;2.提高网络节点的计算和通信能力,增强WSN的稳定性和可靠性;3.实现节点多任务调度和动态资源分配等高级功能,为WSN的应用提供更加灵活高效的解决方案;4.为国内相关项目的研究提供一定的支撑和参考。
三、研究内容和方法1. 研究并分析TinyOS操作系统的任务调度原理和机制;2. 探究WSN中的任务调度问题,明确研究对象;3. 提出新的任务调度策略,改进现有的调度算法和框架;4. 利用仿真实验进行验证评估,评估改进后的任务调度算法的性能和效果;5. 对研究成果进行总结和归纳,撰写学位论文。
四、论文结构和进度安排1. 绪论研究背景和意义、研究现状和进展、研究内容和方法、论文结构等。
2. 基本原理介绍TinyOS操作系统的基本原理、WSN的基本结构和工作原理、任务调度的基本理论和方法等。
3. 研究内容包括任务调度机制的分析、调度策略的提出、调度算法的设计和改进、资源分配等一系列研究内容。
4. 实验设计与结果分析介绍实验设计和数据分析的方法,详细说明实验流程、数据收集和结果分析等。
TinyOS任务调度机制与实时调度构件设计
收稿日期:2007-05-09;修回日期:2007-07-18。
基金项目:国家863计划项目(2005AA1Z2120)。
作者简介:刘奎安(1982-),男,四川自贡人,硕士研究生,主要研究方向:无线传感器网络; 郭文生(1976-),男,辽宁铁岭人,讲师,博士研究生,主要研究方向:无线传感器网络、实时网络技术; 桑楠(1964-),男,四川营山人,教授,主要研究方向:嵌入式实时系统。
文章编号:1001-9081(2007)11-2740-03Tiny OS 任务调度机制与实时调度构件设计刘奎安,郭文生,桑 楠(电子科技大学计算机科学与工程学院,成都610054)(lka10271982@sina .com )摘 要:Tiny OS 是一个开源的构件化操作系统,它采用构件化描述语言nes C 进行开发,主要针对资源非常有限的无线传感器网络节点而设计。
分析了Tiny OS 22.x 的任务调度机制,针对其在实时应用领域的调度缺陷,设计并实现了一种软实时任务调度构件。
根据构件在T OSSI M 仿真器中的验证分析,能有效增强Tiny OS 的实时性能。
关键词:无线传感器;Tiny OS;实时;构件设计;T OSSI M 中图分类号:TP316;TP311 文献标识码:ASchedule m echan is m of T i n yO S and its rea l 2ti m e schedule co m ponen t desi gnL I U Kui 2an,G UO W en 2sheng,S ANG Nan(School of Co m puter Science and Engineering,U niversity of Electronic Science and Technology of China,Chengdu S ichuan 610054,China )Abstract:Tiny OS is an open 2s ource component operating syste m for sens or net w orks nodes that has very li m ited res ources .Tiny OS was i m p le mented in component 2devel op ing language nes C .Thr ough analyzing the schedule mechanis m of Tiny OS 22.x,a s oft real 2ti m e scheduler componentwas designed and i m p le mented for real 2ti m e app licati ons .Si m ulati on results in T OSSI M demonstrate that the s oft real 2ti m e component i m p r oves the real 2ti m e perfor mance of Tiny OS .Key words:wireless sens or net w orks;Tiny OS;real 2ti m e;component design;T OSSI M0 引言无线传感器网络(W ireless Sens or Net w orks,W S N )是由大量体积较小、能源受限,具有一定计算、存储和无线通信能力的传感器节点组成的无结构网络[1,2]。
tinyos中EDF调度策略的嵌入式实现
有更高的优先级的任务, 进行抢 占。 提高处理器的响 应速度,改善无线传感器网络 的 通信性能。 在无线传感器网络中节点较多的 情况下,节点能耗虽略有增加,但保
证 节 点的高 实时性和 高可靠 性 。
最后,本文通过实测和仿真对修改前和修改后的 T y S进行了 iO n 测试和分析 , 分析结果说明了本文采用的 E F D 调度策略的有效性和合理性。 关键词: 抢占;E F D 调度策略;实时任务;T y S 无线传感器网 iO ; n 络
测 、医 疗监护 、空 间探索 、城市交通 管理 、仓储管理 等。
1 . 2课题的提出
传统的实时嵌入式操作系统包括 V W r , C , m 和 Q X等, x o s Wn E Pl O k i a S N 一般 提供了类似于传统桌面系统的 运行环境, 主要适用于 P A和机顶盒等嵌入式 P D C系 统,而不能满足无线传感器系统在存储空间、能耗和实时性等方面的需求 。 一些微 型实时内核,如 Ce , SK和 Ai 等,主要用于发动 rm p E e O rl e 机控制器或微波炉等深 度嵌入式系统, 有严格定义的 运行和存储模式,并且以 实现硬件资源的访问控制为
的 全 部 或部 分 内容 编入 有 关 数据 库 进行 检 索 、交 流 口
( 作者和 导师 同意 网上 交流 ,请在下方 签名 ;否则视 为不 同意 。 如 )
学论作签: 位文者名 }款
签 字 日期 :
导师 签 签字 日
东 北大学硕 士学 位论文
第一章 绪论
第一章 绪 论
1 . 1课题的背景
更小、 更廉价的低功耗计算设备代表的 “ P 后 C时代” 冲破了传统台式计 算机 和高性能服务器的设计模式;普遍的网络化带来的计算处理能力是难以估量的;微 机电 系统(io l t -ehnm sm, MS的 mc -er m cai s t M r e co s ye E ) 迅速发展奠定了设计和实现片
TinyOS体系结构
3.2 硬件抽象层
➢ 以LedsC.nc文件为例
- 21 -
3.2 硬件抽象层
➢ LedsC.nc组件代码如下:
configuration LedsC {
provides interface Leds; } implementation {
components LedsP, PlatformLedsC; Leds = LedsP; LedsP.Init <- PlatformLedsC.Init; LedsP.Led0 -> PlatformLedsC.Led0; LedsP.Led1 -> PlatformLedsC.Led1; LedsP.Led2 -> PlatformLedsC.Led2; LedsP.Led3 -> PlatformLedsC.Led3; }
➢ HPL的接口组件一般具有以下两个特点 :
除了自动操作常用的命令外,HPL层没有提供任何实质性的硬件抽 象。它隐藏了最依赖于同一类别的不同HPL硬件模块。增强更高层 抽象资源的独立型。
用户只需简单地重新绑定HPL组件,而不必重新编写代码就可以在 不同的USART模块之间进行切换。
- 13 -
3.2 硬件抽象层
-7-
3.2 硬件抽象层
➢硬件表示层(Hardware Presentation Layer,简称HPL)由一 系列组件组成,该层组件直接位于硬件与软件的接口之间。 该层组件访问硬件的一般方法是通过内存或I/O映射,并且硬 件可以通过中断信号来请求服务。 ➢HPL组件提供的接口完全由平台的硬件模块本身功能决定 。
Tiny第OS体3 系章结构
本章目标
掌握TinyOS体系结构的各部分组成 掌握硬件抽象组件的作用 掌握硬件抽象组件的架构 掌握硬件表示层、适配层、接口层的作用 掌握综合硬件组件的组成 熟悉TinyOS任务的调度 理解跨平台的应用
TinyOS中基于优先级的软实时任务调度
TinyOS中基于优先级的软实时任务调度
孙社文
【期刊名称】《微计算机信息》
【年(卷),期】2010(026)008
【摘要】TinyOS是一个开源的构件化操作系统,它采用构件化描述语言NesC进行开发,主要针对资源非常有限的无线传感器网络节点而设计.本文分析了具有代表性的无线传感器网络操作系统TinvOS的调度机制并指出其不足.在此基础上提出了改进方案并实现了基于优先级的调度策略.针对其在实时应用领域的调度缺陷,设计了一种软实时任务调度构件.从实际系统GAINS节点中应用的结果可知,该改进方法能很好地改善无线传感器网络通信性能.
【总页数】3页(P9-10,32)
【作者】孙社文
【作者单位】100036,北京,中国矿业大学机电与信息工程学院
【正文语种】中文
【中图分类】TP393
【相关文献】
1.实时嵌入式异构环境下多优先级混合任务调度动态策略 [J], 马晨;肖智斌;张晶;范洪博;车国霖
2.一种动态优先级实时任务调度算法 [J], 夏家莉;陈辉;杨兵
3.基于动态优先级策略的最优软非周期任务调度算法 [J], 涂刚;阳富民;卢炎生
4.TinyOS任务调度机制与实时调度构件设计 [J], 刘奎安;郭文生;桑楠
5.一种基于动态优先级的实时混合任务调度算法 [J], 徐文清;杨红雨
因版权原因,仅展示原文概要,查看原文内容请购买。
TinyOS 2.x消息通信机制_物联网关键技术_[共4页]
101 事件处理任务填满。
此时网络组件的新任务就不能成功入队,从而无法处理SendMsg.sendDone ()发送包完成事件,程序将不能确定包是否发送出去,结果造成网络通信不正常。
2.TinyOS 2.x 调度机制TinyOS 2.x 的内核模型发生了一些改变,在1.x 版本的基础上更进了一步。
在任务上的前后的语义也有所不同,这样的改变是基于运行时的经验并为解决 1.x 模型中的限制。
在TinyOS 2.x 上,任务队列不会再出现多个同样的任务同时执行的情形,每个任务都遵循“一个萝卜一个坑”的模式。
只有在一个“坑”里面已经有任务,并且没有开始执行的时候,这个任务投递才会返回错误信息,这是2.x 在任务调度方面与1.x 的一个最明显的区别。
2.x 分配了一个表示任务ID 的字节,即系统中最多可有255个任务。
任务的ID 越大,表示越受到关注,但与实际的重要程度并无关联。
TinyOS 2.x 任务调度模型如图2-25所示。
一个任务若需要执行多次,可在任务结束的代码处添加将再次投递入队的代码即可。
这样的定义解决了由于任务队列已满而无法通知组件事件结束的问题,从而实现一个任务只占任务队列的一个位置,不会像1.x 那样每投递成功一次就多占一个位置,这是2.x 版本的一大改进之处。
具体实现方法如下:图2-25 TinyOS 2.x 任务调度模型post processTask ();...task void processTask () {// do workif (moreToProcess ) {post processTask ();}}2.6.6 TinyOS 2.x 消息通信机制1.TinyOS 2.x 主动消息通信机制TinyOS 2.x 中每一个主动消息有一个16bit 的目的地址和一个8bit 的消息类型。
在TinyOS1.x 中,消息结构是TOS _Msg 。
在TinyOS2.x 中,消息结构是message _t ,并且这个结构对于来自任何一个节点的通信接口都足够大,足以存储一个数据分组。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2007-05-09;修回日期:2007-07-18。
基金项目:国家863计划项目(2005AA1Z2120)。
作者简介:刘奎安(1982-),男,四川自贡人,硕士研究生,主要研究方向:无线传感器网络; 郭文生(1976-),男,辽宁铁岭人,讲师,博士研究生,主要研究方向:无线传感器网络、实时网络技术; 桑楠(1964-),男,四川营山人,教授,主要研究方向:嵌入式实时系统。
文章编号:1001-9081(2007)11-2740-03Tiny OS 任务调度机制与实时调度构件设计刘奎安,郭文生,桑 楠(电子科技大学计算机科学与工程学院,成都610054)(lka10271982@sina .com )摘 要:Tiny OS 是一个开源的构件化操作系统,它采用构件化描述语言nes C 进行开发,主要针对资源非常有限的无线传感器网络节点而设计。
分析了Tiny OS 22.x 的任务调度机制,针对其在实时应用领域的调度缺陷,设计并实现了一种软实时任务调度构件。
根据构件在T OSSI M 仿真器中的验证分析,能有效增强Tiny OS 的实时性能。
关键词:无线传感器;Tiny OS;实时;构件设计;T OSSI M 中图分类号:TP316;TP311 文献标识码:ASchedule m echan is m of T i n yO S and its rea l 2ti m e schedule co m ponen t desi gnL I U Kui 2an,G UO W en 2sheng,S ANG Nan(School of Co m puter Science and Engineering,U niversity of Electronic Science and Technology of China,Chengdu S ichuan 610054,China )Abstract:Tiny OS is an open 2s ource component operating syste m for sens or net w orks nodes that has very li m ited res ources .Tiny OS was i m p le mented in component 2devel op ing language nes C .Thr ough analyzing the schedule mechanis m of Tiny OS 22.x,a s oft real 2ti m e scheduler componentwas designed and i m p le mented for real 2ti m e app licati ons .Si m ulati on results in T OSSI M demonstrate that the s oft real 2ti m e component i m p r oves the real 2ti m e perfor mance of Tiny OS .Key words:wireless sens or net w orks;Tiny OS;real 2ti m e;component design;T OSSI M0 引言无线传感器网络(W ireless Sens or Net w orks,W S N )是由大量体积较小、能源受限,具有一定计算、存储和无线通信能力的传感器节点组成的无结构网络[1,2]。
它综合了传感器、嵌入式、无线网络、分布式信息处理等技术。
由于W S N 自身具备的特征,已广泛应用于国防军事、环境监测、交通管理、医疗卫生等领域。
无线传感器网络作为一个新兴的研究领域,其中存在大量挑战性的研究课题,节点上的操作系统(W irelessSens or Net w orks Operati on Syste m,W S NOS )设计与实现就是其中之一。
目前,国外许多大学、研究机构着手于W S NOS 的研究,开发出了Tiny OS [3]、Magnet 、MANTI S 、Sen OS 等具有典型特征的W S NOS 。
其中,由UC Berkeley 依靠S martdust (智能尘埃)项目开发出的Tiny OS 得到了广泛关注和应用。
Tiny OS 是全新面向W S N 的源码级构件化操作系统,由构件开发语言nes C [4]开发,其内核只需要400字节的内存空间即可运行起来,是一个轻量级操作系统。
但在实时应用中,Tiny OS 简单的F I F O 调度算法就显得不再适用,在任务数较多时重要任务的响应时间无法得到保证。
因此,针对实时应用的实时性需求,本文深入分析了Tiny OS 22.x 调度机制和调度相关的构件,提出了具有软实时性能的任务调度机制,开发了相应的系统调度构件,通过在T OSSI M [5]仿真器中进行仿真分析,此实时系统调度构件能提高Tiny OS 的实时性能。
1 Tiny OS 22.x 的调度机制1.1 Tiny OS 的任务事件驱动的并发模型Tiny OS 采用任务和事件驱动[6]相结合的两级并发模型(如图1)。
图1 Tiny OS 任务事件驱动并发模型示意图任务机制 任务由用户应用程序定义,可以由应用程序或事件处理程序创建。
任务由task 关键字定义,具体定义语法为:task void myTask (){…}。
任务由post 关键字创建,具体语法为:post myTask ()。
创建任务时,Tiny OS 的调度器将任务加入任务队列的队尾。
核心调度策略中的任务调度器把此任务加入任务队列后就立即返回,任务则延迟执行。
在等待执行的任务队列中,各个任务之间采用F I F O 原则进行调第27卷第11期2007年11月计算机应用Computer App licati onsVol .27No .11Nov .2007度,任务间不能相互抢占。
任务机制没有实时调度能力,适用于非抢占、时间要求不严格的应用。
事件驱动机制 事件直接或间接地由硬件中断产生,Tiny OS 接收到事件后,立即执行此事件对应的事件处理函数。
事件处理可以抢占当前运行的任务,应用于时间要求严格的应用中,但是产生事件的中断源极其有限,无法满足多任务的实时应用。
1.2 Tiny OS 22.x 任务调度实现的具体分析Tiny OS 22.x 源码中,任务调度器是由配置构件[7]TinyScheduler C 及其相关模块构件[7]构成。
配置构件TinyScheduler C 的作用是实例化调度器所用到的各个系统模块构件,并通过配线规范[6]将实例化的各个模块构件通过接口[6]组装起来,形成最终系统调度器。
图2 TinyScheduler C 构件模型TinyScheduler C 构件的实现体中与配线相关的语句有:Scheduler =Sched,说明TinyScheduler C 构件提供的Scheduler接口是由Sched 构件提供的;Task Basic =Sched,说明TinyScheduler C 构件提供的Task Basic 接口是由Sched 构件提供的;Sched .McuSleep ->Sleep,说明Sched 中使用到的McuSleep 接口是由Sleep 构件提供的。
在系统调度器中,负责调度功能的模块构件是Sched,该构件中包含了Tiny OS 的任务等待队列的数据结构和队列的操作函数。
描述任务等待队列的数据结构是在其实现体中声明的3个由volatile 修饰的uint8_t (8位无符号整型)的全局变量,分别是m _head 、m _tail 和m _next[NUM _T ASKS ]。
m _head 保存队首任务的任务号,用于调度器取队首任务执行;m _tail 保存队尾任务的任务号,用于调度器向任务队列中加入一个新任务;m_next[i ]数组(i 取值空间为0~NUM _T ASKS -1)用于保存任务i 的下一个任务的任务号。
其中8位无符号整型用于保存任务的任务号,说明Tiny OS 22.x 的系统中能够最大容纳任务数为255个(其中一个值为255作为空任务NO_T ASK 标识被占用),相比Tiny OS 21.x 的最大能容纳7个任务的循环队列得到了改进。
Tiny OS 在静态编译时计算出系统中定义的任务数NUM _T ASKS,并为每个任务分配各自的任务号(任务id,是个8位无符号整型),这样不仅能确定出m_next[NUM _T ASKS ]长度,节省了保存任务队列的内存空间,而且每个任务由系统统一分配不同确定的任务号id,方便了任务的管理。
1.3 Tiny OS 22.x 调度机制的特点从以上分析归纳出Tiny OS 的调度特点:1)任务之间不能相互抢占,所有任务共享一个执行空间,节约了系统运行时的内存开销;2)任务由系统中的一个单向任务队列进行管理,任务调度遵循F I F O 方式,避免了可抢占调度的复杂设计和死锁等问题;3)当任务队列为空且无事件产生时,处理器自动处于睡眠状态,并由随后硬件中断产生的事件唤醒,有利于系统节能;4)事件处理用来响应底层硬件的中断,如MCU 的外部中断、定时器中断等,其触发的事件处理抢占任务的执行,是一种异步、时间响应快的执行方式。
2 Tiny OS 22.x 的实时调度构件的设计与实现2.1 实时改造可行性Tiny OS 是基于构件的操作系统。
具体应用由不同的系统构件和用户应用构件通过接口组装而成。
所以,可以开发出实时调度的系统构件。
当应用需要实时调度时,采用实时调度构件替换Tiny OS 自带的队列调度构件来形成系统的任务调度器。
图3 Tiny OS 开发示意图存在着成熟而优秀的嵌入式实时操作系统提供实时调度算法和实时调度的实现可供改造时参考借鉴,如内核开源的μC /OS 。
无线传感器网络主要针对于具体的应用,在一定程度上简化了实时构件的设计,可以针对具体应用设计不同实时性能的系统构件。
2.2 实时调度构件具体设计与实现根据无线传感器网络的特性,确定实时性能改造原则:低开销原则 由于要考虑任务实时化的系统开销,一定要考虑节点的硬件情况。
兼容性原则 实时调度实现的调度器一定要满足构件化的nes C 编程规范,以便与系统组装构成应用系统。
可靠性原则 因为传感器网络节点上的MCU 多不提供地址保护。
应用在设计时一定要注意不能访问实时任务管理的地址空间,否则会造成系统崩溃。
实用性原则 实时构件设计不需要考虑得太复杂,可以针对具体的应用进行设计。