CN102354281A - 一种无线传感网络中内核装置及其实现方法 - Google Patents
一种无线传感网络中内核装置及其实现方法 Download PDFInfo
- Publication number
- CN102354281A CN102354281A CN2011101928536A CN201110192853A CN102354281A CN 102354281 A CN102354281 A CN 102354281A CN 2011101928536 A CN2011101928536 A CN 2011101928536A CN 201110192853 A CN201110192853 A CN 201110192853A CN 102354281 A CN102354281 A CN 102354281A
- Authority
- CN
- China
- Prior art keywords
- kernel
- code
- code block
- application
- implementation method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种无线传感网络中内核装置及其实现方法,其方法包括:调度器激活代码块生成器,将应用程序代码段的跳转指令转换为级联匹配下一个待执行的代码块;将多个代码块在内核空间中设置成为代码页,常驻程序内存;在程序内存中的代码块执行遇到分支语句时,跳到内核并由内核搜索跳转目的地址,以使内核和应用程序交替获得处理器的响应。本发明无线传感网络中内核装置及其实现方法由于采用上述在代码加载时进行二进制转化并将转化后的二进制码常驻内存空间,实现了内核获得处理器控制权的随时性,并且由于本内核策略使得应用程序代码具有一次加载、多次运行的特性,一定程度上提高了程序的执行速度,在整个无线传感网络中节省了能量开销。
Description
技术领域
本发明涉及一种单片机***的内核操控***及其方法,尤其涉及的是一种无线传感网络中内核实现装置及其实现方法的改进。
背景技术
现有技术中,随着计算成本的下降以及微处理器体积越来越小,已经有为数不少的无线传感器网络开始投入使用,虽然无线传感器网络的大规模商业应用由于技术等方面的制约还有待时日。目前无线传感器网络的应用主要集中在以下领域。
1.环境的监测和保护
随着人们对于环境问题的关注程度越来越高,需要采集的环境数据也越来越多,无线传感器网络的出现为随机性的研究数据获取提供了便利,并且还可以避免传统数据收集方式给环境带来的侵入式破坏。无线传感器网络可以跟踪候鸟和昆虫的迁移,研究环境变化对农作物的影响,监测海洋、大气和土壤的成分等。此外,它也可以应用在精细农业中,来监测农作物中的害虫、土壤的酸碱度和施肥状况等。
2 医疗护理
无线传感器网络在医疗研究、护理领域也可以大展身手。利用无线通信将各传感器联网可高效传递必要的信息从而方便接受护理,而且还可以减轻护理人员的负担。英特尔主管预防性健康保险研究的董事Eric Dishman称,"在开发家庭用护理技术方面,无线传感器网络是非常有前途的领域"。
3 军事领域
由于无线传感器网络具有密集型、随机分布的特点,使其非常适合应用于恶劣的战场环境中,使其非常适合应用于恶劣的战场环境中,包括侦察敌情、监控兵力、装备和物资,判断生物化学攻击等多方面用途。
4 其他用途
无线传感器网络还被应用于其他一些领域。比如一些危险的工业环境如井矿、核电厂等,工作人员可以通过它来实施安全监测。也可以用在交通领域作为车辆监控的有力工具。此外和还可以在工业自动化生产线等诸多领域。它可以大幅降低检查设备的成本,同时由于可以提前发现问题,因此将能够缩短停机时间,提高效率,并延长设备的使用时间。尽管无线传感器技术目前仍处于初步应用阶段,但已经展示出了非凡的应用价值,相信随着相关技术的发展和推进,一定会得到更大的应用。
近年来,无线传感网络虽然得到了快速发展,但由于传感器节点具有资源受限、能量小、程序运行不稳定以及难维护等特点,使得开发大规模可靠的无线传感网络应用陷入了困境。一些成熟的操作***特性如:操作***保护、虚拟内存以及基于抢占式的作业调度等策略势必会大幅度的提高无线传感网络***的可靠性,简化开发复杂应用的难度。然而,由于传感器硬件资源的限制,所采用的传感器通常都是具有很小的存储器单元以及很低计算能力的处理器芯片,使用传统的操作***设计技术很难实现优良的特性。
尤其是,无线传感网络由于所要实现的功能是实时对待感测的数据进行感测,并进行处理后发送给上层***,其传感器须要不停的执行传感工作任务,因此,在长时间执行传感功能后,可能因为程序代码冗余或程序本身故障等问题,导致内核程序一直处于执行状态中,从而形成对外部其他指令不反应的状态,比如检测和查询指令。现有技术中此种状态时一般需要技术人员必须到达传感器所在地,将传感器的电源关闭重启才能恢复接受外部指令的状态,但这种处理方式并不能实质解决问题,因此限制了无限传感网络的推广和发展。
本发明无线传感网络中内核装置及其实现方法可以应用于提升大规模传感器节点(大于1000个)应用时的网络性能,假定一个大规模的应用场景,大量的节点可使用飞行器布撒在一片广阔的无人区域中,这些节点需要随时接收响应无线控制请求,例如无线编程命令。
但现今的传感器中,操作***与应用程序共享同一内存空间,且应用程序代码与操作***具有相同的优先级。此时,如果程序出现错误,如寻址错误、内存溢出、无效的指针以及代码中遇到无限循环等,应用程序将一直持有CPU,或直接导致***崩溃,使得操作***无法响应外部的控制命令,此时传感器不能由人为控制一一重启,严重的后果是将导致整个网络瘫痪。
目前最常用的方法是增加额外的硬件来解决以上问题,由硬件时钟控制器周期的重启***,重启之后***在执行应用程序之前先侦听无线信道,可确保程序员能够对网络重新编程。但这种处理方式的负面影响是编程的时候需考虑这样的周期性,增加了网络编程的复杂度,而且对于传感器节点来说,周期性重启***很难做到精准,为防止对感测数据的无端消除,一般会考虑避免节点过于频繁的重启,并设置一个比较长的时间间隔。而这样的处理意味着操作***对CPU的控制还是没有得到实质性的保证。
除去上面解决策略,近来也有一些在传感器节点上实现的***方案。
例如,MANTIS与Contiki是最新提出的两个低能耗并支持多线程的在MICA2上实现的***,请参见H.Abrach, S.Bhatti,J.Carlson,H.Dai,J.Rose,A.Sheth,B.Shucker,J.Deng,and R.Han. MANTIS:System support for multimodal networks of in-situ sensors. Proc. of 2nd ACM Intl. Workshop on wirless sensor Networks and Applications(WSNA)(《支持多通道的网络传感器***》,发表在无线传感器网络与应用会议中),两***都不支持虚拟内存,只考虑了RAM资源的有限性,并没有操作***的保护机制,这样出错后维护还是一个很大的挑战。
请参见文献C.Han,R.Kumar,R,Shea,E.Kohler,and M.B.Srivastava. A dynamic operating system for sensor nodes. In Proc. of MobiSys’05,2005(《传感器节点中的动态操作***》,发表在2005年的MobiSys会议中)中提出的一个新操作***SOS,支持动态的加载程序模块,但现在的版本中SOS中并没有提供***保护机制。
总之,现有技术的时钟周期重启***技术一般使用外部硬件来实现,增加了额外的开销;而且,重启时间间隔较大并没有从本质上解决操作***长时间拿不到CPU的问题。同时,现有其他应用到无线传感器网络节点上的***技术都没有考虑到***保护的机制,使得网络中运行大规模的应用较为困难。
基于以上问题,在大规模的传感器应用中,迫切需要设计一种新的运行机制来保证操作***对CPU的控制,保证***的可控与安全性,这就是本发明的重点所在。
由此,现有技术还有待于改进和发展。
发明内容
本发明的目的在于提供一种无线传感网络中内核装置及其实现方法,基于以上现有技术的缺陷,设计一种操作***内核调度策略装置及其方法,此内核策略在代码加载时进行二进制转化并将转化后的二进制码常驻内存空间,经过转化,应用程序与操作***以协同合作的方式工作,内核可较为频繁的获得处理器的控制权,以实现操作***的保护特性。
本发明的技术方案包括:
一种无线传感网络中内核装置,其包括处理器单元,在外部存储器上存储的应用程序以及运行该应用程序代码的内核;其中,在内核空间中设置放置代码块的代码页,其中的每一代码块与所述应用程序物理存储的代码段对应;并设置至少一调度器和一代码块生成器,用于转换所述应用程序代码段跳转指令为级联匹配下一个待执行的代码块。
一种无线传感网络中内核装置的实现方法,其包括以下步骤:
A、调度器激活代码块生成器,将应用程序代码段的跳转指令转换为级联匹配下一个待执行的代码块;
B、将多个代码块在内核空间中设置成为代码页,常驻程序内存;
C、在程序内存中的代码块执行遇到分支语句时,跳到内核并由内核搜索跳转目的地址,以使内核和应用程序交替获得处理器的响应。
所述的实现方法,其中,所述步骤A中还包括:在内核空间中应用程序代码运行时,当外部存储器上的程序页被调用加载时,内核空间读取此页并对页码中的代码进行二进制转化生成代码块。
所述的实现方法,其中,所述步骤C还包括:将所述目的地址写入代码块中。
所述的实现方法,其中,所述步骤A还包括:在所述代码块中设置多个进口点,在每一进口点前加一级联逻辑的前缀,在内核执行跳转指令后,从第一个进口点依次匹配,匹配成功即执行下面代码页的代码块。
所述的实现方法,其中,所述步骤A还包括:设置一寄存器协助实现所述级联匹配,并将此寄存器的功能放到代码块中。
所述的实现方法,其中,所述步骤A中的转换还包括返回调度器和加速跳转两种。
所述的实现方法,其中,所述步骤C还包括:在代码块中设置源地址,并在该源地址中设置一***计数器,由所述级联逻辑检查该***计数器是否为零,非零时直接跳转到目的地址所指向的代码块。
所述的实现方法,其中,所述***计数器设置为8比特。
本发明所提供的一种无线传感网络中内核装置及其实现方法,由于采用上述在代码加载时进行二进制转化并将转化后的二进制码常驻内存空间的内核策略,实现了内核获得处理器控制权的随时性,并且由于本内核策略使得应用程序代码具有一次加载、多次运行的特性,一定程度上提高了程序的执行速度,在整个无线传感网络中节省了能量开销。而且,本发明内核机制把***高度抽象化,更易于工程师的操作,简化了未来在无线传感网络中开发大规模应用程序或操作***的工作。
附图说明
图1为本发明无线传感网络中内核装置及其实现方法中的宿主节点即传感器节点的结构示意图。
图2为本发明无线传感网络中内核装置的功能结构示意图。
图3为本发明无线传感网络中内核处理过程的具体代码实例示意图。
图4为本发明无线传感网络中内核处理过程的流程实例示意图。
图5是本发明内核机制与虚拟机技术之间的性能效果对比示意图。
图6为本发明内核机制与现有技术其他内核机制安全性效果对比图。
具体实施方式
以下结合附图,将对本发明的各较佳实施例进行更为详细的说明。
本发明的无线传感网络中内核装置及其实现方法中,针对上述现有技术的不足,设计了一种新的适用于现有大多数传感器节点的操作***内核装置及其工作策略方法,此内核装置在程序加载时对程序指令做修改,不仅避免了由于代码错误造成的应用程序长时间持有CPU的问题,而且对于较大的应用中此策略也能保证操作***周期性频繁的拿到CPU,从而可以对其他外部控制命令做出及时的响应。另外,经对比试验发现,本发明方法与现有相似方法比较不仅能保证***安全,而且比现有同类方法更节能,能量利用更高效。
本发明无线传感网络中内核装置及其实现方法的较佳实施例中,如图1所示,在所述传感器节点上设置有物理存储空间,以及处理器和存储在外部存储器中的应用程序,在内核空间中程序代码运行时,例如监控温度或其他环境参量的传感器感测程序,当外部存储器上的程序页被调用加载时,内核空间读取此页并对页码中部分代码进行修改(二进制转化)生成“代码块”,许多许多“代码块”组成“代码页”存放在程序内存(Program memory)中,等待处理器下次调用执行,因此可以称此内核机制为“一次加载,多次运行”。
在程序内存中的“代码块”被执行时,遇到分支语句并不直接跳转到新的代码块,而是跳到内核中,由内核搜索跳转目的地址。在此过程中,内核与应用程序交替持有CPU,一方面杜绝了应用程序寻址时发生跳转错误导致严重的错误;其次,内核以一定的频率拿到控制器后能够比较及时地对外部控制命令做出响应。本发明技术方案不仅可以保证***的安全,可以使***及时的得到外部相应,同时“一次加载,多次运行”的内核机制为程序的运行节约了时间,为整个***节省了能耗,使得大规模应用在无线传感网络中的能耗降到了最低。
如图1所示,本发明无线传感网络中内核装置及其实现方法实施例中,应用程序存放在传感器节点的外部存储器中。传感器节点在初始化后,内核加载运行应用程序,传感器节点开始工作,进行感测工作。在传感器节点工作过程中,程序员很有可能需要使用无线通信方式来完善程序,或者对出现问题的应用进行维护。但一般情况下,这种操作很难得到及时的响应,因为很有可能一些应用程序错误例如:死循环、错误的指针指向等,使得应用程序一直占据处理器(CPU),***无法及时地响应外部命令。此时,通常界定为操作***(OS)是不安全的,如一些大规模应用中,将传感器节点撒播到无人地带中时,很难进行进一步的人工重启动作。
控制与数据是***安全非常重要的两个方面,其中控制指操作***内核必须能够及时的拿到处理器(CPU)响应执行任务;数据这里指内核引导处理器去执行有效的数据。为了确保控制与数据的安全性,本发明使内核装置在载入程序时对程序指令进行修改。
本发明方法定义一小块连续的指令块作为代码块并与外部存储器中的物理块对应。当代码块将要被加载时,内核读取此块并修改其中的指令来确保应用程序与内核能够交替使用处理器。经过修改之后的代码块称作一个“代码块”。多个“代码块”被组织起来成为一页存放到节点“代码页程序空间中”中成为“代码页”,如图1所示。
本发明无线传感网络中内核装置及其实现方法中,所述内核调用与返回到应用程序的逻辑中包含了许多分布在内核本身与“代码块”中的指令,为了更明确些,称应用程序到内核与内核到应用程序的过程为:转换。一个转换从应用程序本身到内核叫做“应用-内核的转换”,相反由内核到应用程序称为“内核-应用的转换”。本发明方法通过修改跳转指令来完成“应用-内核的转换”,内核可以确保持有CPU,一方面可能是因为跳转发生了,另一方面是因为控制流到达了“代码块”的末端。
因此,通过应用程序与内核之前不间断的跳转和转换,可以确保内核非常频繁的持有UPU,使得外部的控制命令有机会得到及时的响应。
基于以上策略本发明方法的两次转换,具体说明如下:
如图2所示,本发明内核装置包括:“分页器”、“代码块”生成器以及“调度器”三部分,所述“调度器”执行“代码块”,和一些内核命令;例如,当新的“代码块”到来时,“调度器”唤醒“代码块”生成器将所述应用程序的物理代码段更改为“代码块”。所述“分页器”与节点上的许多存储器和存储设备进行交互,承担内部存储器、程序存储器与外存进行换入换出的工作。
如图3所示,为本发明内核程序的示例,如上所述,本发明采用“调度器”跟踪应用程序的程序计数器来调度相应的“代码块”,当“代码块”执行的时候为了保证能够正确的跳转回“调度器”,在程序跳转到内核之前调度器需要唤醒“代码块”生成器,令其对“代码块”的跳转指令做相应的修改。
假设代码需要跳转到目的地址DEST,“代码块”中的原始指令为:“jmp DEST”,经过“代码块”生成器的修改转化为一系列进栈、赋值的指令,如图3所示,即:首先将寄存器将r28-r31中的内容压入栈中,然后将跳转目的地址分别加载到r28-r31中,程序跳转到“home Gate”,而“home Gate”指向调度器中“welcome Home”代码块,由此代码块搜索寄存器r28-r31寻找此目的地址指向的“代码块”;如果“代码块”中没有此“代码”,则从代码页中读取新的代码块,并生成“代码块”,直到找到此目的地址指向的代码块为止。此时完成了一次从应用程序向内核的转换,即内核得到了CPU的控制权。
如图4所示,当内核已经找到或者调入了目的地址所指向的“代码页”时,调度器需要转换控制流到进口点Entry point (EP),其中,EP是指“代码块”中对应于目的地址“代码块”的程序入口。一个直接传统的跳转方法是:保存寄存器中的值并对目的地址进行精确的偏移计算后,直接跳转到目的地址的EP。但由于传感器节点具有三个限制条件,即:RAM(数据存储器)的很小、性能很低以及代码密度低,因此本发明方法采取一种新的不同的策略:
1、由于RAM空间很小,因此本发明方法不将所有的目的地址信息全部放到RAM中,而是将地址信息存放到“代码块”中。
2、“代码块”中可能会有许多个进口点EP。为了提高***的执行性能,本发明方法不采用直接在“代码块”中查找精确的EP,以避免太多的查询指令。本发明方法的策略是直接跳转到“代码块”,即为每一个EP加一个级联逻辑的前缀,内核执行跳转指令后,先找到合适的“代码块”,然后从第一个EP开始逐个去匹配,匹配成功即执行下面“代码页”的代码;否则根据级联关系继续往下匹配,直至匹配成功。这种级联匹配和跳转需要一个寄存器来协助,本发明方法将此寄存器的功能也放到“代码块”中。
3、为了增加代码的密度,本发明方法并不把所有的恢复指令放到“代码块”中。
基于以上考虑,本发明内核装置及方法如图3所示的示例中采用下面的步骤来返回应用程序代码:
STEP 1:内核把目的地址最后8bits放到寄存器r29;
STEP 2:内核恢复寄存器r28;
STEP 3:内核使用寄存器直接跳转根据r30与r31的值跳到目的“代码块”;
STEP 4:“代码块”恢复寄存器r30;
STEP 5:执行级联跳转,知道匹配到目的“代码页”(匹配EP 8个最重要的比特与寄存器r29的值);
STEP 6:“代码块”恢复寄存器r29和r31;
通过以上步骤,CPU的控制权就从内核转换到了应用程序,此次转换充分考虑了传感器节点的硬件特性,使得转换不会占用太多的硬件资源。经过以上两步的转换,不仅很好的保证应用程序的安全,同时保证了传感网络可以及时响应外部无线控制命令,从而使得传感器网络变得更易维护。
本发明无线传感网络中内核装置及其实现方法的程序执行时,当一个“代码块”中的分支指向或需要跳转到代码中的一个地址,由内核协助完成此任务流的转换。如果“代码块”s中没有要转向的页,内核会到外部存储器中读取相应代码块并进行“代码块化”,然后将“代码块”存放到程序内存”代码页”s存放的空间中,以备下一次处理器调用。内核对应用程序“一次加载,多次使用”的策略会降低节点中能量的开销。
为进一步减少地址“转换”所带来的传感器节点中的开销,以及分支指令比较多时带来的计算速度降低问题,为了提高性能,本发明方法还对“转换”进行分类,针对不同的类型的“转换”采用不同的处理方法。其中一种“应用-内核的转换”称为“HT”,这种“转换”总会返回到调度器的“home Gate”中;另外一种“应用-内核的转换”称为“TT”,设计它是用来加速跳转的。本发明方法在调度器中设立一个“town Gate”逻辑,每次跳转发生时,此逻辑都去检查跳转“源”与“目的”的地址,然后在“源”中增加一个8比特的***计数器计数。如果此计数器的值非零,即,“源”非第一次跳转到目的位置,则“源”直接跳转到目的地址指向的“代码块”,否则跳转到“调度器”中的“home Gate”逻辑中。因此当第一次执行“TT”之后,“代码块”之间就会建立起一条互通的“桥梁”,使得多条“应用-内核的转换”和“内核-应用的转换”的转换变为“应用-应用的转换”。
这样,在本发明方法的许多跳转指令中,许多条件跳转与相关跳转都将转化为“TT”,其他的跳转转化为“HT”。应用程序中大多数的跳转属于条件跳转,而且“TT”又属于快速的“应用-应用的转换”,因此本发明方法中应用程序的执行速度会得到大幅度的提高,同时会大大的减少了传感器网络中能量的开销。经过以上跳转与节能方案的实施,本发明无线传感网络中内核装置及其实现方法的无线传感器网络不仅安全可靠,而且“一次加载,多次运行”也降低了节点中的能量开销。
以下就更具体的一实施例对本发明的技术好处予以说明:
在无线传感器网络中使用最广泛的微处理机是ATmega128L,因此本发明内核装置及其实现方法在ATmega128L微处理机上实现此内核机制时,使用MICA2族节点进行测试,其中包括MICA2、XSMv1和XSMv3,其测试结果确实实现了传感器网络的安全可靠,降低了节点中的能量开销。
本发明内核机制避免了过度依赖复杂的硬件,使得传感器平台可以广泛的使用现有的多种微处理器;同时,为将来设计更低耗的硬件平台留下更广阔的空间。
由于***能量开销取决于硬件技术,制造过程,能量管理策略与工作量。因此,假设是基于传感器节点MICA/MICA2上的实验结果,以及对未来实际中最可能出现的性能进行评估。在传感器节点上,由于需要实时感测信号,休眠模式耗能极其有限。在平台MICA与MICA2上的实验结果显示,节点在休眠时的耗能范围大致为30微安到100微安。根据微处理器的数据表,可知节点休眠时的最小开销为5微安,因此,假设4K的SRAM休眠时耗能30微安。未来使用相同的技术时,SRAM耗能可以近似的与其大小成比例。另外,经研究发现SRAM耗能大约占到微处理器总耗能的90%,因此,假设传感器节点上64K SRAM耗能至少为4K SRAM的两倍以上,即60微安。
节点结束休眠模式,处于活跃模式时,研究发现节点在活跃期耗能大约为10到20毫安,其中微处理器大约耗能8毫安。当微处理器等待事件时,进入空闲状态大约能节省4.8毫安的能量。因此,假设节点在活跃期耗能为15毫安,空闲期耗能10.2毫安。
大多数传感器网络应用都采用节点周期性工作(活跃期)与休眠交替的模式。工作与休眠的占空比大约为1%到10%,在此假设为1%,因为大多数无线传感器网络应用都希望整个网络能有个比较长的工作时间,例如可以工作若干月。当传感器被唤醒时,传感器以几十毫秒到几秒不等的周期进行信号采样和无线信道侦听。传感器在“醒”着的时候,它的工作是基于事件驱动的。假设微处理器在等待中断的时候,会进入空闲模式来节省能耗。假设本发明内核机制会使用三倍于硬件方案的时钟周期来进行计算,即使用本内核方案,微处理器工作花费的时间更多。
本发明内核机制另外一个耗能的方面是在页面交换时产生的,在无线传感器节点上往flash里写入数据是能量开销比较大的工作。根据数据表,往MICA2的flash中写入一页数据大约耗能1.2mJ的能量。本内核机制在虚拟内存页面交换机制中采用技术尽量使得交换的次数越少越好。假设传感器醒着的时候,页面交换频率为每秒钟交换一页。那么由此产生的能耗为0.4mA。
有了以上的这些假设,可以计算两个***(一个***使用本发明内核机制,一个没有)的平均能耗,使用本发明内核机制的能耗为0.416mW,没有使用本发明内核机制的***耗能为0.487mW,由此可以看出本发明内核机制的能效将更高一筹。
虽然虚拟机技术也可以提供硬件的抽象,跨过硬件提供一些便利的操作。Mate是近来在TinyOS(一种无线传感器网络操作***)上实现的虚拟机方案,此方案被广泛认可,因其可以提供一种可控的操作环境,为将来在无线传感网络中开发大型的应用打下基础。
如图5所示,使用“***排序”程序来评估虚拟机技术性能与本发明内核机制的结果对比,此程序被广泛的使用到操作***性能的比较中。从图中可以发现,列表从0增长到100时,使用本发明内核策略的***kernel-x执行时间有明显的增加。这是因为应用中新代码块加载时“代码化”过程的开销,全部加载完毕后执行时间增长就趋于缓慢了,这是因为本发明内核策略的“一次加载,多次运行”机制的作用。对于虚拟机Mate来说,从图中可以看出程序的执行时间在不断的增长。由于硬件资源受限,成熟的虚拟机优化技术在MICA2节点中无用武之地。综上,从图中数据中看出,随着列表的增多,本发明内核机制中加载时修改的方法比虚拟机技术运行速度更快。
由此可见,本发明内核策略与之前的技术比较,更节能,且随着应用复杂度的提高,运算量的增大,使用本发明内核策略的程序运行速度比现有相关技术更节能或更快,从而对于整个网络来说便实现了安全可控与节能的目的。
如果没有操作***的保护,一个程序的错误很有可能会导致传感器节点的崩溃,这时节点或者***已经无法响应外部的命令,很有可能会导致整个网络的崩溃。本发明的内核机制可以有效保护操作***的安全,预防错误的产生。
如图6示出了本发明内核机制与现有技术的其他内核机制相比,在给出一系列程序错误以及当这些程序错误发生时,传感器节点是否可控的列表。从图中可以看出如果使用本发明内核机制,由于操作***受到了保护,传感器节点总是可控的。虽然这些错误也许会导致***的不正常,但操作***的操作不会受到影响,一些重要的***操作例如:无线控制命令,仍然是可以得到正确的响应。相比之下,没有使用本发明内核机制的应用程序明显是不安全的。
由此,本发明从根本上解决了节点对外部控制命令无法及时响应以及应用程序因跳转错误引起的长时间持有CPU问题,使得在大规模无线传感网络中执行大型的应用成为了可能。本发明无线传感网络中内核装置及其实现方法不仅能够保证OS的安全性,而且与现有其他可应用到传感器节点上的相似技术(虚拟机方法)比较,本发明更节能,能量利用率更高。
应当理解的是,上述针对本发明各较佳实施例的描述较为详细和具体,但不能因此而认为是对本发明专利保护范围的限制,本发明的专利范围应以所附权利要求为准。
Claims (9)
1.一种无线传感网络中内核装置,其包括处理器单元,在外部存储器上存储的应用程序以及运行该应用程序代码的内核;其特征在于,在内核空间中设置放置代码块的代码页,其中的每一代码块与所述应用程序物理存储的代码段对应;并设置至少一调度器和一代码块生成器,用于转换所述应用程序代码段跳转指令为级联匹配下一个待执行的代码块。
2.一种无线传感网络中内核装置的实现方法,其包括以下步骤:
A、调度器激活代码块生成器,将应用程序代码段的跳转指令转换为级联匹配下一个待执行的代码块;
B、将多个代码块在内核空间中设置成为代码页,常驻程序内存;
C、在程序内存中的代码块执行遇到分支语句时,跳到内核并由内核搜索跳转目的地址,以使内核和应用程序交替获得处理器的响应。
3.根据权利要求2所述的实现方法,其特征在于,所述步骤A中还包括:在内核空间中应用程序代码运行时,当外部存储器上的程序页被调用加载时,内核空间读取此页并对页码中的代码进行二进制转化生成代码块。
4.根据权利要求2所述的实现方法,其特征在于,所述步骤C还包括:将所述目的地址写入代码块中。
5.根据权利要求2所述的实现方法,其特征在于,所述步骤A还包括:在所述代码块中设置多个进口点,在每一进口点前加一级联逻辑的前缀,在内核执行跳转指令后,从第一个进口点依次匹配,匹配成功即执行下面代码页的代码块。
6.根据权利要求5所述的实现方法,其特征在于,所述步骤A还包括:设置一寄存器协助实现所述级联匹配,并将此寄存器的功能放到代码块中。
7.根据权利要求2所述的实现方法,其特征在于,所述步骤A中的转换还包括返回调度器和加速跳转两种。
8.根据权利要求2所述的实现方法,其特征在于,所述步骤C还包括:在代码块中设置源地址,并在该源地址中设置一***计数器,由所述级联逻辑检查该***计数器是否为零,非零时直接跳转到目的地址所指向的代码块。
9.根据权利要求8所述的实现方法,其特征在于,所述***计数器设置为8比特。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101928536A CN102354281A (zh) | 2011-07-11 | 2011-07-11 | 一种无线传感网络中内核装置及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101928536A CN102354281A (zh) | 2011-07-11 | 2011-07-11 | 一种无线传感网络中内核装置及其实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102354281A true CN102354281A (zh) | 2012-02-15 |
Family
ID=45577848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101928536A Pending CN102354281A (zh) | 2011-07-11 | 2011-07-11 | 一种无线传感网络中内核装置及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102354281A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104322032A (zh) * | 2012-05-25 | 2015-01-28 | 横河电机株式会社 | 通信装置 |
CN106569777A (zh) * | 2016-11-03 | 2017-04-19 | 深圳市博巨兴实业发展有限公司 | 一种基于精简8051mcu的sfr设计方法 |
CN109324838A (zh) * | 2018-08-31 | 2019-02-12 | 深圳市元征科技股份有限公司 | 单片机程序的执行方法、执行装置及终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281479A (zh) * | 2008-05-07 | 2008-10-08 | 浙江大学 | 一种无线传感网络节点操作***动态内存分配的方法 |
CN101299195A (zh) * | 2008-05-06 | 2008-11-05 | 浙江大学 | 融合无线传感网络操作***内核的方法 |
-
2011
- 2011-07-11 CN CN2011101928536A patent/CN102354281A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299195A (zh) * | 2008-05-06 | 2008-11-05 | 浙江大学 | 融合无线传感网络操作***内核的方法 |
CN101281479A (zh) * | 2008-05-07 | 2008-10-08 | 浙江大学 | 一种无线传感网络节点操作***动态内存分配的方法 |
Non-Patent Citations (1)
Title |
---|
LIN GU等: "t-kernel: Providing Reliable OS support to Wireless Sensor Networks", 《PROC. ACM CONF. ON EMBEDDED NETWORKED SENSOR SYSTEMS》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104322032A (zh) * | 2012-05-25 | 2015-01-28 | 横河电机株式会社 | 通信装置 |
CN104322032B (zh) * | 2012-05-25 | 2018-04-27 | 横河电机株式会社 | 通信装置 |
CN106569777A (zh) * | 2016-11-03 | 2017-04-19 | 深圳市博巨兴实业发展有限公司 | 一种基于精简8051mcu的sfr设计方法 |
CN109324838A (zh) * | 2018-08-31 | 2019-02-12 | 深圳市元征科技股份有限公司 | 单片机程序的执行方法、执行装置及终端 |
CN109324838B (zh) * | 2018-08-31 | 2022-05-10 | 深圳市元征科技股份有限公司 | 单片机程序的执行方法、执行装置及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10509576B2 (en) | Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices | |
CN101504618B (zh) | 面向多核处理器的实时线程迁移方法 | |
CN107193960B (zh) | 一种分布式爬虫***及周期性增量抓取方法 | |
CN104077106B (zh) | 具有原生切换机制的非对称多核心处理器 | |
US8984520B2 (en) | Resource modeling and scheduling for extensible computing platforms | |
Köhler | The strategies of energy conservation in helminths. | |
CN109983805A (zh) | Wifi存储器功率最小化 | |
CN103092316B (zh) | 一种基于数据挖掘的服务器功耗管理*** | |
CN103814342A (zh) | 多核心计算装置的动态睡眠 | |
CN101313284A (zh) | 用于提供对处理器状态转换进行检测的方法和装置 | |
CN103577158A (zh) | 数据处理方法与装置 | |
CN102354294A (zh) | 一种星载dsp芯片的空间单粒子翻转检测方法 | |
CN102354281A (zh) | 一种无线传感网络中内核装置及其实现方法 | |
CN104412233A (zh) | 流水线调度中混叠寄存器的分配 | |
CN103678571A (zh) | 应用于单台多核处理器主机的多线程网络爬虫执行方法 | |
Ham et al. | Energy‐Aware Flexible Job Shop Scheduling Using Mixed Integer Programming and Constraint Programming | |
Singla et al. | A survey and experimental analysis of checkpointing techniques for energy harvesting devices | |
CN103760965B (zh) | 一种能量受限嵌入式***的算法源程序节能优化方法 | |
CN106844103A (zh) | 非易失处理器备份容量设定、内存备份方法及*** | |
CN103559092B (zh) | 异构并行计算结点的峰值功耗控制方法 | |
CN112559197A (zh) | 基于异构众核处理器的卷积计算数据重用方法 | |
Swaminathan et al. | Pruning-based energy-optimal device scheduling for hard real-time systems | |
CN206514906U (zh) | 一种智能型建筑二次供水水箱监测*** | |
CN101814019B (zh) | 一种前瞻失效的线程识别方法 | |
Hasanov et al. | High-level topology-oblivious optimization of MPI broadcast algorithms on extreme-scale platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120215 |