论文部分内容阅读
在无线传感器网络中,移动Sink节点的使用可以减少能量空洞等问题,并且可以通过优化移动节点的移动路径以更合理的利用传感器网络中的节点,从而延长整个无线传感器网络的使用寿命。然后移动Sink节点是采用电池供电,其上的LCD和协调器等都是高能耗的模块,因此通过系统软件对这些高能模块进行有效的管理对减少移动Sink节点的低能耗有重要的意义。Android作为目前移动终端非常流行的操作系统,其积极的电源管理机制能够保证移动终端上的高能耗模块能在第一时间被关闭,从而尽可能地为移动终端节约更多的能源。并且开发的基于Android的应用程序是运行在Dalvik虚拟机上的,因此具有很强的可移植性,只要移动终端采用的是Android系统,那么相关的Android应用程序不需要任何修改即可顺利地安装到移动终端上运行。由于Android系统在移动终端上的这些优势,那么在移动Sink节点上移植Android系统也将给移动Sink节点带来这些优势。但是通过对Android系统内核的电源管理机制的分析发现,标准的Android系统只有唤醒、早起挂起、睡眠三种功耗状态,没有针对具体的移动Sink节点提供更细粒度的电源管理,并且Android系统中CPU负载的预测算法是前值预测算法(PAST),该算法负载预测的精度比较低。为了使Android系统更适合移动Sink节点,降低更多的能耗,本文将从两个方面来对基于Android移动Sink节点进行低功耗设计:(1)在标准Android系统已有的唤醒、早起挂起、睡眠三种功耗状态的基础上增加一种预挂起状态,通过DPM技术,利用电源管理的sys接口文件新增加的offdev和ondev接口对移动Sink的USB设备进行注销和枚举,以使Android系统进入和退出预挂起状态,实现更细粒度的电源管理,降低移动Sink外围设备的功耗。(2)对Android系统默认的Ondemand调频器的CPU负载预测算法(PAST)进行改进,提出权值自适应的线性预测算法(SAWDLP)。和PAST算法相比,SAWDLP算法能够利用更多的历史负载,并且历史负载的权值可以随着历史负载的变化而变化,以保持当前权值的最优,从而实现更准确的负载预测,然后通过DVFS技术选择更适合的频率,在保证性能的同时降低CPU的功耗。实验结果表明系统可以通过预挂起状态对USB设备进行管理,并且与PAST算法相比,SAWDLP能提高负载预测准确度85.20%,降低移动Sink整体功耗0.40%,达到了移动Sink低功耗设计的目的,延长了续航时间。