APP下载

一类可信传感网络节点嵌入式操作系统的改进设计

2019-08-29覃琪谭松鹤何传波

科技视界 2019年20期
关键词:可信性操作系统任务调度

覃琪 谭松鹤 何传波

【摘 要】当前WSNOS是一个弱硬实时操作系统,对实时性的支持有所欠缺,从而导致系统的可信性降低。因此我们着重讨论如何满足实时任务时限要求,将其作为节点调度机制的第一目标。由于TinyOS是专为无线传感网络设计的轻量级、低功耗的嵌入式操作系统,在多种硬件平台上得到应用,具有极高的应用价值和研究意义,本文重点围绕TinyOS的任务调度机制进行WSNOS可信性研究讨论。

【关键词】可信性;传感网络;操作系统;任务调度;优先级;抢占

中图分类号: TP316;TN929.5 文献标识码: A 文章编号: 2095-2457(2019)20-0093-002

DOI:10.19694/j.cnki.issn2095-2457.2019.20.043

0 引言

当前无线传感网络的研究35%的研究针对通信协议,16%针对能耗管理,这个方面又主要集中在定位算法、可靠性及体系结构设计上的研究。作为高效管理和使用传感网络的手段之一的无线传感器网络操作系统,特别是结合节点嵌入式操作系统的可信性研究相对较少。但其实构建传感网络的基本软件环境时,WSNOS(Wireless Senior Net Operating System)是支撑其他应用软件的基础,其性能的灵活、并发、高效及实时性,对传感网络有着决定性的影响,因此,WSN节点嵌入式操作系统可信性的研究与应用,是个具有广阔空间的研究发展热点[1]。

1 节点嵌入式操作系统

表1 几种操作系统特点比较

WSNOS相对简易的结构对开发人员而言难度降低了许多,但由于节点能量续航及存储空间有限的问题,不能直接将现有的嵌入式操作系统用于WSN,必须有专用的操作系统。表1简单地比较了一下几种常见的WSNOS。

其中,美国加州大学伯克利分校开发的TinyOS,是一种开源的无线传感器网络节点专用操作系统。它采用事件驱动机制处理复杂网络环境下节点多且频繁并发操作的任务,共享堆栈存储空间及轻量级线程技术使得切换更为快速,在节点资源受限时能有效避免网络拥堵[2]。

TinyOS结构非常简单,由调度器和一些组件构成,调度器分事件(Interrupt Hander Event)和任务(task)两级调度,第一层处理命令和事件,在硬件中断时标记和反馈组件状态;第二层负责各种计算任务,任务在第一层工作完成后才可进一步调度。任务实际上是种延迟计算机制,一般用在时间限制不强的环境[3]。程序调度过程如图1所示。

TinyOS从下到上包括硬件抽象、系统和应用三层组件。硬件抽象组件负责为上层进行WSN硬件平台抽象化,屏蔽一切底层硬件实现细节;系统组件中,通信模块包括传输层协议、路由协议、MAC 层协议和应用层协议等各类数据传输协议,设备驱动模块则由硬件通用化接口组成,传感模块主要负责收集数据和控制传感设备。应用组件是用户自定义的需求功能模块。

本文主要基于TinyOS来讨论如何提高节点嵌入式操作系统可信性。

2 改进任务调度机制的TinyOS

虽然TinyOS得到广泛认可并使用,但并非适用于所有场景,当节点分布过密通信任务过多、节点发送数据过于频繁时,甚至出现任务过载,从而信息丢包,传输吞吐量下降等等问题。另外,当节点中断也频繁发生时,CPU就会忙于处理中断而无暇执行任何其它任务,导致CPU空忙而过载,并且由于任务发生和处理的速率不匹配,或者同时进行多通道采集,会增加大量本地任务,在任务队列极为有限的情况下,丢失任务也就成为常态[4]。TinyOS仅设置一个任务队列且采用非抢占式的调度策略,无法确定何时完成任务处理,对新到达的硬实时任务完全无法响应,势必影响了系统的可信性。

针对上述问题,可以对TinyOS的内核调度机制作出一些修改,核心思想主要是将不可抢占的调度机制改为采用优先级调度策略,以下为行之有效的几种改进设计。

2.1 设计新三级优先层次调度器

基于组件的新优先级调度器以用户应用程序需求为目标,通过嵌入应用程序来更好控制任务的首次调度执行。新调度器设置三种调度优先级:(P1)可搶占高优先级(P2)非可抢占高优先级(P3)标准优先级。

在每级优先层次中仍按原来的FCFS进行任务调度。所有的标准TinyOS任务都默认放在P3标准优先级层次队列中,但在相邻的优先级层次按P1及P2调度优先级对应设置了两个队列,进入这三层队列的任务必须按所在队列优先级进行调度,但当前正在执行的任务不会被抢夺执行。高优先级可抢占任务队列是用来调度抢占一般任务的。任何低任务层次中正在运行的任务都可能被一个高优先级可抢占队列里的任务抢占执行。并且这些层次中的任何任务可以优先于任何一个优先级低于自身的任务而先得到响应。但高优先级的任务并非需要立即执行,而是只要在完成截止时间之前能调度完成,那么就不需要抢占执行[5]。

另外,为了同时解决优先级反转及死锁问题,还对资源访问控制给出优先级置顶协议(Priority Ceiling Protocol)。设该协议中每个系统资源都预置一个静态置顶优先级为P,需要访问某资源的任务的优先级为Po,不访问此资源的任务的优先级为Pb,则必须有Pb≥P≥Po。若某任务请求的资源没有被占用,则将其Po置为P,若任务将资源释放则恢复优先级为Po。为预防死锁产生,禁止任务在保持某个资源的同时去申请另外的资源。PCP协议被广泛应用于实时系统中,但如果任务的时限要求不能被任务调度满足时,还要进一步将降低上下文切换的频率考虑进去。

2.2 采用抢占阀值调度策略

进一步可以使用更高级的抢占阀值调度策略。基于抢占阈值的任务调度方法[6]是一种新型实时系统任务调度技术,只要在开始截止时限前任务得到执行,就能大幅提升处理器响应速度,改善WSN的可信性表现。

抢占阀值调度中,优先级采用静态赋值的办法,并且每个任务设置抢占阀值和任务专属优先级,任务优先级不能大于阀值。操作系统分配处理器启动任务运行时查看任务优先级,任务运行后则使用抢占阀值,则可使高优先级任务抢占低优先级任务的机会减少,上下文切换频度降低,使处理器尽量不在此类事务上消耗。整个任务集合为能更充分被调度,划分为组内任务互不抢占的非抢占组(Non-Preemptive Group),这些任务能共享一个栈空间,降低任务对内存的占用。抢占阀值调度能充分利用抢占式和非抢占式的特点,当集合中所有任务的抢占阀值等于集合的最高优先级时,抢占阀值调度变为非抢占式调度;当每个任务的抢占阀值等于其优先级时,抢占阀值调度又变成抢占式调度。

2.3 动态递增优先级机制

每个任务在改进后的调度机制中联系一个优先级,当前任务执行完成后操作系统从任务队列调度最高优先级的任务执行,若优先级相同则按FCFS调度。优先级值取决于两个因素:(1)任务重要程度:负责数据采集、处理及发送的本地任务是周期性发生的,特别是做监测数据采集时被监测的环境通常不会发生太大变化,本地采集任务若被推迟执行或偶然丢失,造成的影响相对较小,则赋优先级时可相对调低。但负责发送和接受节点路由帧、转发数据帧的网络通信任务,若发生丢失或阻塞会造成网络断联,无法发送及转发数据,导致WSN可信性降低,那么就需要调高此类任务的优先级。(2)任务未调度前在队列中被“插队”的次数。低优先级的任务如果一直保持优先级值不变,容易屡次被高优先级任务插队,导致等待时间过长一直无法执行。动态递增优先级调度机制设计中,任务每次被插队后,系统给其加1,则其优先级会在数次被“插队”以后可以达到最高,总会得到机会调度执行。

3 结语

作为操作系统的核心,WSNOS任务调度机制通过合理调度任务集合,满足每个任务对时间和性能的要求,可以提升系统响应速度和系统的可信性。本文从TinyOS任务调度机制的角度讨论了提高无线传感网络操作系统可信性的几种思想,具有切实可行的意义和价值,但限于篇幅,未能深入讨论改进的任务管理机制在能耗上的局限,将在后续的论文中进一步研究。

【参考文献】

[1]王漫,何宁,裴俊,冯改玲,刘海涛.面向无线传感网络应用的嵌入式操作系统综述[J].计算机应用与软件,2007,24(6):44-48.

[2]孙其博,刘杰.物联网:概念、架构与关键技术研究综述[J].北京邮电大学学报,2010,33(3):1-9.

[3]陳希军.一类无线传感器网络嵌入式操作系统及其节点定位的关键技术研究[D].中国科技大学硕士论文,2009.

[4]Luis R G,Pilar B,Jose I R,et al.Testing ZigBee Motes for Monitoring Refrigerated Vegetable Transportation under Real Conditions.Sensors, 2010,10(5):4968-4982.

[5]Luis M O,Joel J R.Wireless Sensor Networks:a Survey on Environmental Monitoring.Journal of Communications,2011,6(2):143-151.

[6]贺小川,贾焰.FPTS:一种任务间存在共享资源时的抢占阈值调度算法[J].计算机研究与发展,2009,46(2):302-309.

猜你喜欢

可信性操作系统任务调度
可变情报板发布内容可信性检测系统探究
基于可信性的锅炉安全质量综合评价研究
在区间上取值的模糊变量的可信性分布
基于改进NSGA-Ⅱ算法的协同制造任务调度研究
基于时间负载均衡蚁群算法的云任务调度优化
Five golden rules for meeting management
云计算环境中任务调度策略
云计算中基于进化算法的任务调度策略