文摘

在雾中计算、雾附近节点运行不同的任务需要的数据源。有限的资源,雾节点很难执行多个任务,需要对空气重编程来重新排列它们。对重组、能源效率是对空气重编程的一个关键问题。大多数传统的重组方法关注能源效率在网络内数据传输。然而,计划重建雾节点,另一个重要的能源成本,造成写作/阅读当地大功率的记忆。我们提出一个新的增量编程方法,RePage,分三个阶段。首先,我们设计一个函数分页机制,使得一个函数类似的功能页面,并将其缓存到低功耗节能易失存储器中。其次,我们设计新的功能页面缓存置换算法考虑在页面上修改时间和范围。最后,进一步减少写/读操作,我们也重新设计函数调用的方式通过集中管理函数地址。实验结果表明,RePage减少对易失存储器读/写操作的总和89.1%和92.5% EasiCache和小Module-link相比,和它的命中率提高10.4%,最近最少使用(LRU)算法。

1。介绍

在某些应用程序中传统的前端网络如无线传感器网络或特设网络,用户熟悉部署环境经过一段时间的数据收集和计算节点。更有效的功能模块可以开发和安装在节点通过对空气重编程优化本地软件。

此外,随着雾计算的出现,越来越多的雾系统计算范例见证成功在许多不同的领域。但大多数现有雾计算系统与传统的传感器网络,解决特定的问题或满足特定的需求。在这样的系统建设,开发人员采用不同的硬件设备,软件模块,甚至编程语言。另一方面,雾雾节点计算系统需要处理日期的附近的数据源。这是不可避免的,资源有限的雾节点执行多个任务;例如,节点部署在构建需要监控声波检测振动损伤;有限的存储导致他们无法实现上述任务在同一时间;是浪费和低效的部署两种节点为每个任务。这需要经常修改执行应用程序或重新安排任务通过对空气重编程。

在大多数情况下,资源有限的雾节点是由电池供电。频繁,对空气重编程将缩短节点的生活和成为大规模应用的主要瓶颈。对空气重编程的能源成本主要来自通信成本当传输代码和重建成本当读写内存单元。现在,大多数的研究工作大约重编程关注如何降低沟通成本。例如,增量编程方法(1- - - - - -8)只需要传送执行旧的程序之间的差异图像和新的传播成本低于全新形象。

然而,大多数的增量重组方法需要重建新形象在传感器节点的本地内存。流行的TelosB传感器节点传感器(9),例如,拥有内部flash + RAM MSP430系列单片机和独立的外部flash。当重建的代码,不同的编码和修改相关指令,打包成δ脚本(3),需要首先读入外部flash。执行修改相关指令,不同编码结合旧项目形象产生新形象。最后,编写新的程序在单片机内部flash形象。如表所示1读和写(r / w) flash的能源成本高于RAM。实际上,插入一些指令可能导致重建成本的急剧增加,因为每条指令是连续存储,并避免覆盖有用来源,大部分地区的指令可能会搬到新地址的r / w的flash和为插入的指令。可能使重建成本实际上接近沟通成本。

对雾计算应用程序,一些用户可能访问部署节点在同一时间。由于现有大容量的外部flash,几个项目可以在flash预存储根据不同用户的需求,并将更新节点的软件。同时,增量重组方法只存储区别代码在flash节省内存空间。在这种情况下,重组成本将在很大程度上取决于重建成本。

在我们的以前的工作中,我们提出了一种增量式重组方法命名EasiCache [10为传感器节点重新编程。在这种方法中,经常变化的代码存储和执行在低功率和容量有限等易失存储器RAM没有非易失存储器的参与。EasiCache缓存代码在功能单元的一部分,和函数的大小是不确定的。更新过于频繁导致存储碎片和浪费存储空间。因此,我们提出一个新颖的增量重组方法叫RePage基于功能的分页机制应用于雾节点。这种方法的核心思想是组织形式的函数功能页面缓存使用情况的解决下降问题,提高命中率。我们从以下三个方面研究这种方法。

首先,不确定函数的大小会导致存储空间的浪费。在RePage,我们分析函数和定义函数之间的调用关系相似度(FSD)。然后,女性性功能障碍的基础上,我们设计一个新的函数分页机制,这使得类似的功能被放入一个功能页面,并同时对它们进行更新。

其次,我们通过小说提高缓存的使用和命中率缓存置换算法考虑修改时间和范围的每个功能页面。这种置换算法可以自适应地调整修改时间和范围的影响。

第三,为了提高新的原始程序和图像之间的相似性,我们重新设计函数调用方法的特点功能页面。我们使用寄存器相对寻址,而不是直接寻址和管理函数地址在集中的方式。,一旦移动功能页面,运行时系统将不会修改每个函数的入口地址。

最后,为了验证分页机制的影响,我们进行了一系列实验。在实验中,资源有限的雾节点被重新编程没有重新部署,不断更新,我们观察到的性能RePage从愤怒,能源成本和存储成本。

本文的其余部分的结构如下:部分2显示当前缓存代码问题;部分3介绍了RePage的设计和实现;部分4描述了实验场景和评估我们的方法;部分5给相关工作和部分6给出结论。

2。动机

在我们之前的研究称为EasiCache [10)中的代码片段缓存并执行函数的类型。EasiCache取代旧的函数时,运行时系统分配内存空间来存储新功能。然而,经过多次重组过程,它最终会导致存储碎片问题和减少缓存性能。为了描述存储碎片问题,我们定义分裂程度如下:

我们测试EasiCache TelosB随机更新场景在传感器节点(细节部分所示4.1)。TelosB装备MSP430系列单片机内部flash 10 KB RAM和48个KB (9]。缓存的大小设置为8 KB。图1显示了EasiCache连续更新情况下25倍和破碎度。

我们可以清楚地看到,缓存片段重组后开始增长超过5倍。23倍后,分裂程度已经超过30%。这意味着新功能很难被缓存在内存中。消除碎片的唯一方法就是恢复所有的缓存功能在新地址,不可避免地带来了巨大的r / w操作闪光。

此外,在真正的缓存代码的过程,替换功能将被保存在内部flash的原始位置。实际上,EasiCache已经从以前的文献[11]。如果函数期间增加缓存大小,规模的扩大函数放到主程序(的自由空间。文本段)直接避免优化其他功能的位置。然而,内部闪存容量也紧。经过几次更新,自由空间可能会耗尽,所有功能仍需重新安排。图2显示字节的r / w内部flash当更新节点软件以连续的方式。连续更新在大多数情况下,内部flash的写操作少,因为只有取代功能需要写回到内部flash,但如果缺乏自由空间(例如,9日和20日更新情况下),r / w操作内部flash必须大幅增加。

为了解决这个存储碎片问题,提出一种新颖的增量名叫RePage重组方法。这种方法使用分页机制,以避免内部flash空间耗尽和减少对flash的r / w操作通过提高缓存的利用率。

3所示。RePage的设计和实现

在本节中,我们将讨论分页机制基于相似度函数和一个新颖的函数调用方法。前者主要解决了存储碎片问题,而后者减少了r / w操作引起的缓存和替换页。与此同时,我们还引入缓存置换算法,将提高缓存命中率。

3.1。基于功能相似度函数分页机制

重组主要调整一些参数或程序的功能。函数仍相对独立,但倾向于修改多个相关函数的功能调整。我们定义相似度函数(FSD)量化这种修正函数,函数之间的关系基于FSD分页机制。它将几个类似的功能聚合成一个功能页面,使页面size-fixed每个函数。

分页功能,程序将图像同样分为多个功能页面。与此同时,为了确保每个功能页面( )可以增量和灵活多变的,我们添加污水区域( 在每个每个函数的尾部页面) 后咨询Koshy和Pandey的方法(12)如图3。污水区域是专门用于位置调整量的增加功能。

通过大量的重编程实验,我们发现修改函数通常是单向的,这意味着调用函数将改变任何被函数后很可能改变;少会发生相反的情况。例如,如果一个函数 的入口地址改变了,所有的调用指令,调用函数 必须修改。很明显,两个函数有更常见的调用方函数有可能在同一时间被修改。因此,这种单向修改可以描述函数之间的女性性功能障碍。

RePage人物女性性功能障碍,采用协同过滤推荐系统中应用的概念。给定的函数 ,使 ,分别是被调用的函数 之间的女性性功能障碍 可以被描述为Jaccard公式:

事实上,许多功能没有普通函数调用者;也就是说, 。因此,我们可以首先图被调用的函数 为减少计算开销。

在获得每个 两个函数,我们整个函数相似度计算 功能页面,不同的重量如下: 在哪里 是加权值,函数的大小成反比 它确保如果 自己的更小的规模和有较高的女性性功能障碍,整个页面会更高程度的函数;否则,在更高程度的函数 因为更大的规模,当前功能页面的相似度应减少。

分页机制的目的是把越来越多的类似的功能放在一个功能页面。所以我们将分页问题转化为一个优化问题如下公式所示:

优化的目标是使功能页面的相似度最大化。 功能页面的相似度吗 ,其中包括几个函数。参数 在项目的形象是函数的数量; 是功能页面的数量相对于页面分区。 每个功能页面的大小,大小相似功能的总和 和污水 由于污水地区现有的,它将使分页程序的大小大于原来的形象。因此,它需要添加限制条件使分页程序能够通过内部flash图像的大小

3.2。功能页面的缓存置换算法

RAM总是罕见,尤其是在单片机;因此,只有一小部分的函数可以缓存页面,和大多数的功能页面仍存储和执行程序。因此,缓存置换算法需要选择应该缓存的页面。现有的缓存替换算法如最近最少使用(LRU)主要集中于提高执行效率,和RePage算法着重于减少r / w flash操作。

例如,从缓存页面替换函数,根据LRU,由于最近没有被修改。然而,一旦这个函数修改页面,如果改变了一些代码,应该呆在缓存的页面。因此,除了修改时间,还有其他的因素来决定是否缓存页面。

功能页面的命中率,我们建议最近修改范围(RMR)算法,考虑每个功能页面的修改时间和范围在同一时间。

RMR,我们定义 ,替换因子的功能页面 次更新,如下:

在公式(5), 代表功能页面的修改时间 , 页面修改范围 更新。迅速增加 在页面意味着更多的代码更改 重量 有限范围内 并用于调整的影响 事实上,如果修改范围往往是相同的在每个功能页面更新,更换的因素 主要是修改时间;否则,如果修改的范围是巨大的不同对不同功能页面,它是合理的增加的影响 ,这将使large-modification-range页面被缓存有高概率的。因此,我们定义的重量 相对的方差 如下:

th更新, 函数需要更新的页面, 是平均的 函数需要更新的页面。显然,如果方差 很大, 倾向于1;否则, 趋向于0。

3.3。函数的调用和负载

在我们先前的研究EasiCache,函数入口地址必须改变,因为缓存和更换。如果我们修改每一个调用指令,它将导致大量的r / w操作。处理,我们使用一个集中的管理在混合物中保存所有入口地址函数调用列表和祈求两步调用进程的功能。

在RePage,类似的功能放在一个功能页面,然后所有入口地址必须改变当功能页面的缓存或更换。为此,先进instruction-data-mixed列表(IDML)给管理表中所示的函数地址2

列表中的每一项集中在一个功能页面;前两个元素的数量函数和当前函数的更新时间页面。有一个调用指令应用在AddressFunPage寄存器相对寻址和返回指令 最后一列条目包含真正的函数入口地址。一旦投入某些功能页面功能,函数序列的功能页面是固定的。和真正的函数入口地址IDML保存的序列。

当调用一个函数,两步打电话是必要的。第一个调用指令指针(IP)跳过AddressFunPage而不是真正的功能。图3显示了调用过程。之前进入函数,函数的序列号(SeqNo)的功能页面应该分配给一个特定的寄存器,例如,使用r5登记。注册r5作为索引寄存器,用于不断访问所有功能在功能页面。在第二个调用,寄存器相对寻址、寄存器r5结合基地址(比如FP1base)指向的内存单元存储真正的入口地址。

当一个函数页面在内存中缓存或更换已经恢复在内部flash,函数入口地址必须改变。我们可以修改入口地址IDML避免修改每一个指令的功能。根据新地址的区别功能页面,原来的一个,很容易计算每个新IDML函数入口地址和写它。

由于寄存器相对寻址,RePage需要添加一个寄存器赋值指令之前调用一个函数,如图3。用户添加过程是透明的,但它可能会导致一个寄存器使用冲突。我们解决了这个问题通过添加指令在预编译阶段。我们使用C和汇编混合编程,直接把汇编指令编写的C语言源程序。通过这个,依从者可以自动分配寄存器避免使用冲突。

4所示。实验结果和分析

验证机制功能页面,我们需要测试RePage性能在不断更新的情况下。不断更新的情况是相对于单更新场景中,这意味着使用重组方法,不断更新程序而无需重新部署节点。现在大部分重组方法的实验不涉及缓存机制;因此,他们通常把单更新实验进行测试。与此同时,我们主要关注持续更新实验。

4.1。实验场景介绍

实验以TelosB TinyOS操作系统和传感器节点为全面的硬件和软件平台。配有CC2420 TelosB节点,一个2.4 GHz无线个域网射频收发器,一个16位单片机MSP430F1611。对连续更新,我们设计两个场景。

在第一个更新设置场景中,实验对象是标准的例程程序名为示波器包括在TinyOS应用程序库和五个版本的程序叫EasiRoute v0.3(从v0.1版)。这五个项目设计EasiNet系统已经部署在故宫博物馆和申请监控温度和湿度(13]。每个版本意味着一个重大的升级。如图4,六个程序是按照字母顺序不断更新。

更新情况。示波器是一个标准的数据采集和传输程序。通过添加路由功能,我们EasiRoute_v0更新它。1。

更新案例B。监控程序从v0.1 v0.11更新博物馆。在更新后,添加一个遥感数据存储功能,实现将数据存储在外部flash芯片。

更新案例C。直接更新示波器v0.11并添加路由和资源有限的雾中存储功能节点。

更新情况D。监控程序从v0.11 v0.18更新博物馆。更新后,一个错误将是固定的。错误导致资源有限的雾节点发送数据过于频繁地到水槽节点,当博物馆晚上关闭。

更新情况E。更新v0.11 v0.21。我们添加一个负载平衡算法和睡眠机制考虑剩下的电池能源。

更新情况下F。更新v0.18 v0.21。新版本将删除节点的传感功能。它只保留路由和转发数据从其他的函数。

更新情况下克。更新v0.18 v0.3。在更新后,节点将直接安装UDP协议,支持用户通过web浏览器与节点交互。

更新情况下H。更新v0.21 v0.3。

在第二组更新场景中,上述六个程序将随机更新没有固定的方向。

我们将测试RePage性能缓存命中率,能源成本,存储成本和比较它与当前重组EasiCache和小Module-link等方法。

4.2。缓存命中率

首先,我们定义缓存访问率比率和改变代码缓存大小和和那些需要修改的大小。图5显示命中率不断更新的情况下根据字母顺序如图4。我们在6144字节缓存大小设置,功能页面大小是512字节。如图5,我们比较RePage的RMR和最近最少使用(LRU)算法。

RePage采用RMR算法考虑修改时间和范围的每个功能页面。然而,在开始阶段的连续更新,因为每个功能页面中修改范围的差异很小,重量 接近0,修改时间的影响提供了更多的影响(RF)替代因素。RMR类似于LRU的性能。

代码的更新情况,数据采集和无线收发器已经实现示波器。此外,收集树协议(CTP)通常是作为死代码的一部分,预装了死代码消除技术指的是文献[7]。事实上,这个更新过程主要激活CTP在应用程序层根据EasiRoute_v0.1和调整相应的功能。然而,只有部分改变了代码缓存,和RMR封闭LRU命中率只有60%。在更新情况下C和D,为了修复bug,一些新的功能需要创建节点和不能被缓存;因此,RMR和LRU的命中率很低。

在开始阶段,很难预测哪些功能页面”热。“因此,RePage与LRU算法相比有62%的命中率是63%。开始阶段(从A到D)后,缓存访问率平均(从E H) RMR和LRU的改善。原因是RePage和LRU有足够的历史信息来决定哪些页面应该被缓存。特别是在更新情况下H,两个缓存功能页面替换在缓存更新情况下D和E据LRU算法只考虑修改时间。但是这两个功能在很大程度上修改B,所以他们有很高的射频,不能根据RMR取代。

进一步研究RMR的性能,我们不断更新这六个程序随机方式没有分配更新路线图,观察RMR和LRU的命中率。我们记录的更新和5倍计算命中率的平均值作为平均命中率随机连续更新。图6显示更新40倍的平均命中率。显然,在最初的15更新情况下,RMR的平均命中率达到77.2%与75.1%的LRU相比。

然而,在16 th-40th更新,增加RMR和的平均命中率达到90.1%,和LRU只有79.5%。之间的性能差异RMR和LRU与修改的范围。这些更新的情况下,几个功能页面没有修改在大多数情况下,因此更换,但一旦被修改,这意味着这些页面的代码数量改变。

如图7,我们也测试所带来的影响功能页面大小缓存访问率给定缓存容量(6144 B)。小型功能页面意味着灵活的缓存行为。在开始阶段,128 B功能页面获得更高的平均命中率。但功能页面大小的限制也使得一些更大的功能无法在功能页面。显然,连续更新20倍后,128 B的平均命中率开始下降。但大尺寸功能页面(1024 B)增加在21 st-35th更新。需要指出的是,128 B页面大小的灵活性使更新命中率超过98%在10日和14日更新的情况下,和其平均命中率有优势超过512 B和1024 B页面大小在1 st-15th更新情况。然而,从缓存访问率的稳定的角度来看,512 B的页面大小有一个良好的性能在整个连续更新过程和建议。

4.3。重建成本

对空气重编程的主要能量消耗所产生的沟通成本是由无线传输编码和重建的成本是由r / w内存的操作。表1说明了能源成本的r / w操作在不同的内存。很明显,能源成本等易失存储器RAM远小于非易失存储器等内部/外部flash。TelosB的传感器节点为例:r / w的能源成本操作内部flash 14.6倍,内存,和r / w的能源成本操作外部flash 19.3倍,在RAM中。因此,当研究重建的重组成本,我们关注的r / w操作内部/外部flash(在/ flash)交货。

我们比较RePage,小小的Module-link [14],EasiCache [10在不断更新的情况下。微小Module-link首先考虑r / w操作的能源成本。它重建功能的低功耗内存,然后更新函数仍然需要写回内部flash。EasiCache像RePage使用低功耗的RAM缓存频繁更新代码。

34显示r / w操作的数据大小/ flash的单片机更新交货情况下a三种重组方法。RePage和EasiCache可以直接修改代码在内存和内部flash和不需要外部flash的参与。相比之下,小Module-link不仅将增量脚本存储在外部flash也必须重新修改后的功能写入内部flash从RAM。所以,小Module-link必须执行更多的r / w操作内部比外部flash闪存在一些更新的情况下。

EasiCache RePage把代码在低功耗内存和有效降低r / w操作内部flash。RePage的平均命中率是6.1%高于EasiCache更新B, D, F (RePage。原因是分页机制把相似的函数聚类在一个功能页面,使页面缓存。相比之下,EasiCache不考虑函数之间的关系,有时它的行为就像一个弹力球,这意味着反复几个函数和缓存替换。高命中率意味着更多的功能被保存在内存;和没有必要阅读内部flash,和写回代码更少。

E是特殊的更新情况。在这种情况下,尽管RePage的命中率仍高于EasiCache,一个功能页面需要被替换和写回到内部flash。交换512 B功能页面带来的r / w操作增加34%。

在更新情况下G和H,几个功能是插入程序由于UDP协议。他们需要写入内部flash。EasiCache和小Module-link E采用相同的策略,以保持插入函数的自由空间的主程序(。文本段)。然而,在这种情况下,函数的大小,在内部flash,已经超出了内部flash的能力。鉴于这两种方法,运行时系统必须调整内部flash存储位置的所有功能,增加大量的r / w操作内部flash。RePage使用分页机制,使每个页面独立污水区域,确保调整发生在功能页面。与EasiCache和小Module-link相比,r / w操作的数量/ flash交货RePage减少93.8%和93.0%。

4.4。存储成本

缓存代码不可避免地导致一个分裂的问题。图8显示了分裂程度不断升级情况下对RePage EasiCache。破碎度的定义已经给出的公式(1)。

在RePage,每个功能页面都有一个独立的污水 实际上导致存储碎片。因此,在开始连续更新的情况下,分散程度的EasiCache和RePage不为零。然而,由于不确定函数大小,经过几次的升级,分裂度EasiCache大幅增加。

EasiCache可以减少分裂程度通过调整函数的位置。例如,在5日的情况下,一些指令删除从几个修改函数变得很小,和运行时系统开关的位置size-decreasing函数和size-increasing函数。然而,分散程度是不稳定的。与修改功能,增加13日更新后,size-decreasing功能无法提供足够的空间size-increasing函数必须写回到内部flash。显然,碎片EasiCache程度增加。在25日升级的情况下,当分裂程度超过35%,很难缓存新的功能。所有功能必须调整在26日更新情况下和分散程度下降了约3%。

关于RePage,每个功能页面有自己的污水。功能位置调整仅影响这些功能聚集在相同的功能页面。此外,功能页面的大小也会影响分散程度。在图8分散程度的所有升级相比,我们使用不同的页面大小(128 B、512 B和1024 B)。大型功能页面包含类似的功能比小型及其污水区域并没有明显提高。因此,1024 B页面少碎片空间和高利用率的开始。然而,在大型页面,污水地区相对远离每个函数,和调整过程也更加困难比小型页面。的不断更新进步,大型页面,每个调整过程将导致分裂程度有严重的波动明显振动曲线如图所示8

对小型页面,方便调整函数入口地址由于污水地区被关闭的功能。因此,平均分散程度的128 B和512 B页面功能比1024年减少了5.5%和10.8%。图8显示,曲线的分裂程度的128 B和512 B也比1024 B光滑。

4.5。两步调用进程在执行效率的影响

在RePage,引起功能需要两步调用进程。在第一步中,需要调用函数之前分配寄存器(r5)。在第二步中,RePage使用寄存器相对寻址找到真正的入口地址。两步调用进程,添加一个任务(mov),调用(调用)和返回指令(ret)。三个指令,分别需要3、8和5时钟周期。因此,总共16个时钟周期,由两步调用进程造成的。

5显示了执行效率的降低后两步的调用,包括六个项目。最大的影响是EasiRoute_v0.3,从原始程序执行效率下降了17.9%。这个程序更复杂是因为加入了UDP协议模块。其他五个项目的执行效率至少下降了10.6%。显然,两步调用进程有影响执行效率。然而,考虑到雾计算系统的动态更新,两步打电话可以促进减少修改和管理功能页面。与重组的能源成本相比,增加了能源成本可以忽略不计,执行效率的降低造成的。

重组的能源效率是一个关键问题在资源有限的网络总是作为前端的雾计算网络。早期的重编程人员不重视能源效率和网络的负担。例如,洪水[15)需要传输完整的程序更新图像和相关协议。在传输期间,重组过程使网络不可用在很长一段时间。流(16]试图减少传输的数据的大小在目标节点preinstalling重组协议,但它仍然传输整个项目的形象。线(17)使用两个阶段来减少能源成本。在第一阶段,新形象是给特殊节点,然后在第二阶段,这些特殊的节点将传输的新形象。海量移动(18]介绍了移动基站,确保接收机和发射机在一跳。通过这种方式,提高了传输链路质量和减少网络负担。此外,根据离散和资源有限的前端网络的动态特征,研究人员提出了编码重新编程方法(19- - - - - -21]。他们采用冗余代码保证成功的传播。他们需要传输整个图像甚至冗余代码,造成巨大的能源成本。

为了降低通信成本的重组,一些研究引入压缩算法,如自适应压缩算法(22]。Tsiftes等人直接使用GZIP压缩项目形象(23]。然而,压缩图像意味着减压过程需要在当地完成节点资源有限的雾。这个过程必须提出计算成本和存储成本。

近年来,大量的增量编程方法(1- - - - - -8提出了。增量的概念重新编程是减少通信开销仅通过传输新老之间的不同的二进制编码图像。当前增量编程方法可以分为两类:增加一个新老之间的相似性的图像和其他提高了算法的效率产生不同的代码。

在西风的作品2)和爱马仕(1),研究人员试图修复入口地址的函数和静态变量来改善图像的相似性。李等人。3)设计了一个update-conscious编译器将登记在图像根据旧版本,新项目,通过这种方式,两个版本之间的相似度在很大程度上改善。另一方面,胡锦涛等。5]提出重组以最小的传输数据(RMTD)算法,它是基于Rsync算法;这个算法的时间复杂度降低Rsync ,但是空间复杂性 这可能带来沉重的存储负担对于上层计算机给定的大型项目的形象。东等人结合的优势西风和RMTD提出R2 (7]和R3 [8),这两种方法利用相对地址代码初始化引用地址改善相似。此外,他们还修改RMTD算法来减少空间的复杂性 以上增量编程方法需要重建新项目在本地图像。同时,重建过程可能产生大量的读和写操作在非易失性内存高能源成本。

大多数当前的重编程方法设计基于传统资源有限的传感器网络等网络;程序运行在节点很难改变,和研究人员考虑减少重建过程中频繁和持续更新。在西风的工作3),例如,研究人员测试了重建r / w操作成本在非易失性内存,并质疑当前重组方法。金等。14]提出微小Module-link RAM,重建新项目的形象。但是它仍然需要编写新功能到非易失性内存中。此外,Koshy和Pandey [12)设计额外的污水区域的每个函数和支持非易失存储器中直接修改功能。在其他的研究中,即使低功耗使用挥发性记忆,目的不是绝对降低重建成本。例如,在伦的工作(24),研究者使用RAM存储频繁更新代码和解决写作flash失败问题造成的电池电压降。

6。结论

雾计算系统需要频繁任务重排,因此雾节点可以通过对空气重编程经验连续更新。能源成本总是重新编程应用于雾计算系统的瓶颈。介绍了增量编程方法基于功能页面机制应用于计算的雾,RePage命名。对增量重组方法,他们必须重建新项目在本地节点的形象,这可能会招致重建能量消耗的量。减少重建成本,RePage试图缓存频繁更新功能的低功耗挥发性记忆和使用功能分页机制相似的函数合并成一个功能页面减轻分裂程度。

为了提高命中率,我们设计一个新的页面置换算法命名为最近修改范围(RMR)考虑修改范围和时间的影响因子在同一时间。

通过不断更新实验中,我们显示的性能从缓存访问率RePage,存储成本和能源成本。在未来的工作中,我们将继续研究differences-code代方法根据函数分页机制。这种方法将简化重建指令根据这样的功能相似,进一步减少传输的数据量。

的利益冲突

作者宣称没有利益冲突。

确认

本研究工作是由中国国家自然科学基金(NSF)(批准号61502427),由中国浙江省自然科学基金(批准号LY16F020034)和浙江省的重点研发项目(没有。2015 c01034也没有。2015 c01029)。