无线传感器网络传感器小节点操作系统及其实现方法

文档序号:6339022阅读:180来源:国知局
专利名称:无线传感器网络传感器小节点操作系统及其实现方法
技术领域
本发明涉及一种支持微程的无线传感器网络传感器小节点操作系统,属于计算机技术领域。
背景技术
在普适计算的大背景下,无线传感器网络极大地拉近了人与物理世界的距离,可以随时随地收集物理世界的信息,并施以适当的控制。同时,无线传感器网络的产生和发展对于推动普适计算具有极其重要的意义。经过几十年的发展,无线传感器网络技术及应用已经开始逐渐普及,并在很多领域中发挥了非常重要的作用。但由于目前高度的应用相关性问题,大多数无线传感器系统是无操作系统、无软件平台的。虽然应用系统为这一领域积累了一定的经验,但由于缺乏工程化和规范化技术支撑,限制着该领域软件技术的高速发展。操作系统技术无疑是无线传感器网络的重要支撑技术之一。由于无线传感器网络应用在功能和性能方面的特殊性,要求操作系统能够高效地组织和管理硬件资源。对于传感器网络中单个传感器小节点而言,具有硬件资源有限、节点的计算能力和存储能力都很小的特点,通常一个传感器小节点可能只有几K字节的内存。另外,无线传感器网络应用也有其特点,一是它的并发性很密集,即可能存在多个需要同时执行的逻辑控制,需要操作系统能够有效的完成这种频繁发生、并发程度高、执行过程比较短的逻辑控制事务;二是无线传感器网络应用的相关性很强,不同的应用对实时性等性能参数要求也不同,操作系统本身需要提供不同的机制来满足这些需求。调度方法是操作系统的核心机制,它代表操作系统向上层应用程序提供什么样的调度和执行机制,在很大程度上决定了操作系统的特性。无线传感器网络常常需要处理一些频繁发生的、执行过程比较短的事务。但是当前主流操作系统的事件例程都采用了 "run-to-completion"的执行方式,无法保证系统的实时性。无线传感器网络的应用又是多样性的,对那些没有实时性要求的应用或任务也需要提供很好的支持。而目前在一般的嵌入式系统中采用的进程、线程并发模型,对于极端受限的微小节点也是代价过大。总之, 对于无线传感器网络传感器小节点操作系统来讲,并发模型的设计是一个核心和困难的问题。

发明内容
本发明的目的在于提供一种无线传感器网络传感器小节点操作系统。按该系统实现的操作系统满足无线传感器网络的特殊需求。任务调度是操作系统的核心问题,是解决任务并发性、同步互斥及任务间通信的关键。称做任务外,现有支持事件的系统一般要求任务是一个连续执行不能阻塞的程序段,这样在应用设计阶段就增加了任务设计划分的难度,增加了传感应用程序设计的难度。实际的任务一般是执行一段时间后需要等待某个事件,等该事件发生后接着执行,此时就只能将一个完整任务分解为若干个任务才能符合这种实时系统的要求。在本发明中,考虑到传感器系统的资源受限问题和并发性的特点,提出了“微程” 并发模型。微程是任务的一种,是一个或一系列开放的程序段的执行过程,是本操作系统的基本调度单位之一。微程在程序段内必须连续执行,不允许进入阻塞状态,但是程序段之间可以阻塞。这样,微程就提供了并发执行的单位。通过配置支持不同级别的任务,可以有效地适应不同类型的资源受限传感器硬件。操作系统每次调度任务的一个程序段。调度的结果是任务完成或任务进入阻塞状态。微程有自己的状态转换图,如下说明。就绪态微程处于就绪态的表示此微程已经释放,随时可以执行;只是由于目前微处理器正在执行优先级更高的微程而暂时无法得到执行。所有就绪的微程按照截止时间排在一个就绪队列中,截止时间最早的微程排在队列最前面。执行态表示该微程当前正在执行。处于执行态的微程来源于就绪态或者被抢占态的微程。如果有更早截止时间微程就绪,当前执行的微程会被抢占而转到被抢占态;如果当前执行的微程由于请求资源而得不到满足,则会转入到阻塞态,调度程序会重新调度就绪或者被抢占的微程;如果当前执行的微程执行完毕,则进入到完成态,退出调度。被抢占态表示该状态表示微程已经开始执行,但是由于在执行过程中遇到了更紧急的微程而暂时被搁置。当前执行的微程执行完毕或者被阻塞时,调度程序会选择处于被抢占态和就绪态中截止时间最早微程进入执行态。阻塞态执行中的微程由于请求资源而得不到满足会进入到阻塞态;当请求的资源可用时,会从阻塞态进入到就绪态。完成态表示该微程目前已经执行完毕。一个逻辑上统一的微程在系统中的实现也是一个微程,有一个统一的截止时间, 并不会分成多个微程。如果微程中有资源访问等阻塞操作,则将微程分段(Section)。也就是说,每个微程可以由多个程序段(Section)组成,每个程序段必须连续运行不会阻塞,但是程序段之间可以阻塞。与一般实时任务不同的是,本发明考虑了相邻段之间阻塞的时间。只要分析计算出段与段之间的最大阻塞时间值,以及每一段程序的执行时间,便可以确定每个程序段的截止时间。每个段的截止时间是与整个微程的截止时间相关联的,根据每个段的截止时间, 每次调度微程的一个程序段。这种将微程分成多个程序段,而不是分成多个微程方案,不但减少了代码量,同时也保证了系统会根据逻辑上统一的事务的实际截止时间来调度。解决了一般实时系统中将一个逻辑任务分为多个运行任务的截止时间问题。对于资源相对多一些的节点,线程也是可以采用的并发模型。线程是一个循环运行的程序,在运行过程中可能因等待某些事件而进入阻塞状态。在传感器中采用固定优先级调度策略,每一个线程一个优先级。每一个线程要有独立的堆栈。后台事务是在没有任务和线程可以运行的情况下被执行的一些事物,一般用于判断一些不使用中断的设备的工作情况。操作系统在没有任务和线程可以调度时,反复从头到尾遍历后台任务队列,执行队列中的每一个后台事务。提出微程并发模型后,解决了进程和线程占用资源相对较多的问题。作为适应不同资源状况的传感节点,本发明的系统提供综合的任务调度,即任务调度优先的微程任务与线程的混合调度策略,包括微程调度、线程调度和后台事务调度。微程调度优先级最高, 其次是线程调度,后台事务调度优先级最低。本发明适用于无线传感器网络传感器节点操作系统,能够满足完成频繁的并发性任务这项重要需求,也能满足应用的多样性需求,对那些没有实时性要求的应用或任务提供很好的支持。


图1用于说明微程运行的五个状态 图2用于说明微程的程序段划分;
图3用于说明调度器如何在微程调度模式下,对微程进行调度;以及图4说明本文传感器操作系统进行混合任务调度的方法示意。
具体实施例方式本发明的目的在于提供一种无线传感器网络传感器小节点操作系统。按该系统实现的操作系统满足无线传感器网络的特殊需求如有限的硬件资源,其硬件资源的充分性程度从极度微小到我们普通的嵌入式设备的一般性资源,总体上需要充分发挥有限资源利用率的最大化,还要保证系统响应的实时性等特点,同时也能满足应用的多样性需求,对那些没有实时性要求的应用或任务提供很好的支持。这样的要求无论是事件驱动并发模型还是一般嵌入式设备的进程、线程并发模型都不能满足要求。任务调度是操作系统的核心问题,是解决任务并发性、同步互斥及任务间通信的关键。除了有的传感器操作系统将线程称做任务外,现有支持事件的系统一般要求任务是一个连续执行不能阻塞的程序段,这样在应用设计阶段就增加了任务设计划分的难度,增加了传感器应用程序设计的难度。实际的任务一般是执行一段时间后需要等待某个事件, 等该事件发生后接着执行,此时就只能将一个完整任务分解为若干个任务才能符合这种实时系统的要求。在本发明中,考虑到传感器系统的资源受限问题和并发性的特点,提出了“微程” 并发模型。微程是任务的一种,是一个或一系列开放的程序段的执行过程,是本操作系统的基本调度单位之一。微程在程序段内必须连续执行,不允许进入阻塞状态,但是程序段之间可以阻塞。这样微程提供了并发执行的单位。配置支持不同级别的任务,可以有效的适应不同类型的资源受限传感器硬件。一个逻辑上统一的微程在系统中的实现也是一个微程,有一个统一的截止时间, 并不会分成多个微程。如果微程中有资源访问等阻塞操作,则将微程分段(Section)。也就是说,每个微程可以由多个程序段(Section)组成,每个程序段必须连续运行不会阻塞,但是程序段之间可以阻塞。与一般实时任务不同的是,我们考虑了相邻段之间阻塞的时间。只要分析计算出段与段之间的最大阻塞时间值,以及每一段程序的执行时间,我们便可以确定每个程序段的截止时间。很明显,每个段的截止时间是与整个微程的截止时间相关联的。本操作系统便可以根据每个段的截止时间,每次调度微程的一个程序段。如果该程序段的返回值非0, 表示该微程完成,如果该程序段的返回值为0,表示微程进入了阻塞状态。这种将微程分成多个程序段,而不是分成多个微程方案,不但减少了代码量,同时也保证了系统会根据逻辑上统一的事务的实际截止时间来调度。解决了一般实时系统中将一个逻辑任务分为多个运行任务的截止时间问题。对于资源相对多一些的节点,线程也是可以采用的并发模型。线程是一个循环运行的程序,在运行过程中可能因等待某些事件而进入阻塞状态。在传感器中采用固定优先级调度策略,每一个线程一个优先级。每一个线程要有独立的堆栈。一个线程的堆栈长度由该线程执行过程中调用子程序的深度以及每一个子程序的局部变量的个数决定。为节约内存,该数值必须经过精确的计算得到。后台事务是在没有任务和线程可以运行的情况下被执行的一些事物,一般用于判断一些不使用中断的设备的工作情况。最典型的如判断Flash的编程操作是否成功。系统中有一个环型的后台事物队列记录所有被创建的后台事务。操作系统在没有任务和线程可以调度时,反复从头到尾遍历后台任务队列,执行队列中的每一个后台事务。提出微程并发模型后,解决了进程和线程占用资源相对较多的问题。为适应不同资源状况的传感节点,本发明的系统提供综合的任务调度,即任务调度优先的微程任务与线程的混合调度策略,包括微程调度、线程调度和后台事务调度。调度的优先级如下
(1)如果有微程任务可以执行则执行微程任务。(2)如果有线程可以运行则运行线程。(3)按轮转方式执行后台事务。下面结合相应的

系统实现方法的关键点。图1说明微程运行在以下五个状态之一
就绪态微程处于就绪态的表示此微程已经释放,随时可以执行;只是由于目前微处理器正在执行优先级更高的微程而暂时无法得到执行。所有就绪的微程按照截止时间排在一个就绪队列中,截止时间最早的微程排在队列最前面。执行态表示该微程当前正在执行。处于执行态的微程来源于就绪态或者被抢占态的微程。如果有更早截止时间微程就绪,当前执行的微程会被抢占而转到被抢占态;如果当前执行的微程由于请求资源而得不到满足,则会转入到阻塞态,调度程序会重新调度就绪或者被抢占的微程;如果当前执行的微程执行完毕,则进入到完成态,退出调度。被抢占态表示该状态表示微程已经开始执行,但是由于在执行过程中遇到了更紧急的微程而暂时被搁置。当前执行的微程执行完毕或者被阻塞时,调度程序会选择处于被抢占态和就绪态中截止时间最早微程进入执行态。阻塞态执行中的微程由于请求资源而得不到满足会进入到阻塞态;当请求的资源可用时,会从阻塞态进入到就绪态。完成态表示该微程目前已经执行完毕。图2说明微程的程序段划分。(请进行简单的说明)
图3说明调度器如何在微程调度模式下,对微程进行调度的。使用两个队列和一个运行时栈来管理提交的微程,等待队列(wait queue),存放等待释放的微程,当一个微程放弃处理器使用或者到达截止时间时,会被放入这个队列;当等待队列中的某个微程被释放后, 会进入下一个队列,也即就绪队列(release queue),就绪队列中存放那些已经被释放但是还没有开始执行的微程。就绪队列中的微程以截止时间进行排序,符合最早截止时间优先 (EDFI)算法。运行时栈存放已经开始执行的微程;最顶端的微程是当前正在执行的微程, 其他微程是被抢占的微程,每个微程都是被在栈中紧邻在它们上面的微程所抢占。图4说明本文传感器操作系统进行混合任务调度的方法示意。系统中可以有若干个线程和一个后台事务,而微程是在线程的上下文环境中运行的,一般整个系统只有一个线程的上下文中运行微程。根据节点规模的大小,可以有0或多个其它非微程模式的线程, 可以包含0个或多个后台事务。工业应用性
本发明可用于无线传感器网络传感器小节点操作系统。按该系统实现的操作系统满足无线传感器网络的特殊需求。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种无线传感器网络传感器小节点操作系统,其特征在于,其支持并发微程,所述微程是任务的一种,是一个或一系列开放的程序段的执行过程,是该操作系统的基本调度单位。
2.如权利要求1所述的无线传感器网络传感器小节点操作系统,其中,所述微程包括五个状态就绪态、执行态、被抢占态、阻塞态和完成态,并且在这些状态转换按规则进行转换。
3.如权利要求2所述的无线传感器网络传感器小节点操作系统,其中所述微程在程序段内必须连续执行,不允许进入阻塞状态,但是程序段之间可以阻塞。
4.如权利要求2所述的无线传感器网络传感器小节点操作系统,其中,就绪态表示为微程处于就绪态的表示此微程已经释放,随时可以执行;只是由于目前微处理器正在执行优先级更高的微程而暂时无法得到执行;所有就绪的微程按照截止时间排在一个就绪队列中,截止时间最早的微程排在队列最前面,执行态表示为该微程当前正在执行,处于执行态的微程来源于就绪态或者被抢占态的微程,如果有更早截止时间微程就绪,则当前执行的微程会被抢占而转到被抢占态;如果当前执行的微程由于请求资源而得不到满足,则会转入到阻塞态,调度程序会重新调度就绪或者被抢占的微程;如果当前执行的微程执行完毕,则进入到完成态,退出调度,被抢占态表示为该状态表示微程已经开始执行,但是由于在执行过程中遇到了更紧急的微程而暂时被搁置,当前执行的微程执行完毕或者被阻塞时,调度程序会选择处于被抢占态和就绪态中截止时间最早微程进入执行态,阻塞态表示为执行中的微程由于请求资源而得不到满足会进入到阻塞态;当请求的资源可用时,会从阻塞态进入到就绪态,以及完成态表示为该微程目前已经执行完毕。
5.如权利要求1所述的无线传感器网络传感器小节点操作系统,其中在本所述操作系统中,采用微程、线程和后台事务混合调度的方法。
6.一种无线传感器网络传感器小节点操作系统的实现方法,其特征在于,其支持并发微程,所述微程是任务的一种,是一个或一系列开放的程序段的执行过程,是该操作系统的基本调度单位。
7.如权利要求6所述的无线传感器网络传感器小节点操作系统的实现方法,其中,所述微程包括五个状态就绪态、执行态、被抢占态、阻塞态和完成态,并且在这些状态转换按规则进行转换。
8.如权利要求7所述的无线传感器网络传感器小节点操作系统的实现方法,其中所述微程在程序段内必须连续执行,不允许进入阻塞状态,但是程序段之间可以阻塞。
9.如权利要求7所述的无线传感器网络传感器小节点操作系统的实现方法,其中,就绪态表示为微程处于就绪态的表示此微程已经释放,随时可以执行;只是由于目前微处理器正在执行优先级更高的微程而暂时无法得到执行;所有就绪的微程按照截止时间排在一个就绪队列中,截止时间最早的微程排在队列最前面,执行态表示为该微程当前正在执行,处于执行态的微程来源于就绪态或者被抢占态的微程,如果有更早截止时间微程就绪,则当前执行的微程会被抢占而转到被抢占态;如果当前执行的微程由于请求资源而得不到满足,则会转入到阻塞态,调度程序会重新调度就绪或者被抢占的微程;如果当前执行的微程执行完毕,则进入到完成态,退出调度,被抢占态表示为该状态表示微程已经开始执行,但是由于在执行过程中遇到了更紧急的微程而暂时被搁置,当前执行的微程执行完毕或者被阻塞时,调度程序会选择处于被抢占态和就绪态中截止时间最早微程进入执行态,阻塞态表示为执行中的微程由于请求资源而得不到满足会进入到阻塞态;当请求的资源可用时,会从阻塞态进入到就绪态,以及完成态表示为该微程目前已经执行完毕。
10.如权利要求6所述的无线传感器网络传感器小节点操作系统的实现方法,其中在本所述操作系统中,采用微程、线程和后台事务混合调度的方法。
全文摘要
本发明针对无线传感器网络传感器小节点的操作系统的特殊需求,提出一个新的并发模型微程并发模型,并通过实现基于微程并发模型的调度,解决任务并发性、同步互斥及任务间通信的关键机制。考虑到传感系统的资源受限问题和并发性的特点,微程是任务的一种,是一个或一系列开放的程序段的执行过程,是本操作系统的基本调度单位之一。微程在程序段内必须连续执行,不允许进入阻塞状态,但是程序段之间可以阻塞。通过配置支持不同级别的任务,可以有效地适应不同类型的资源受限传感器硬件。
文档编号G06F9/48GK102163163SQ20101059342
公开日2011年8月24日 申请日期2010年12月17日 优先权日2010年12月17日
发明者奉旭辉, 王新社, 顾玉良 申请人:北京凯思昊鹏软件工程技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1