发明名称 无线传感器网络节点内存管理方法
摘要 无线传感器网络节点内存管理方法,(1)将物理内存空间划分为边界固定的I/O映射区、应用区和系统区;(2)将传感器网络应用程序进行编译,生成二进制执行代码;(3)为每个任务提供逻辑地址空间;(4)对步骤(2)中生成的二进制执行代码进行分析和翻译;(5)内核服务在运行时被调用,并对每个任务的内存操作指令进行合法性判断,若指令不合法,直接中止任务;否则,进行地址转换;(6)内核服务在各个任务对栈进行操作时,监视任务的栈增长情况,当栈的大小高于预设的警戒线时,暂时挂起该任务,进行物理内存重分配,当某个任务的栈持续增长,已经不存在其他具有空闲内存的任务可供调整时,中止该任务,收回其物理内存,重新分配给其他任务使用。
申请公布号 CN101853209A 申请公布日期 2010.10.06
申请号 CN201010163562.X 申请日期 2010.04.29
申请人 中国人民解放军国防科学技术大学 发明人 褚瑞;卢锡城;彭宇行;王意洁;田甜;李东升;张一鸣;陈振邦;车永刚;王勇献;徐传福
分类号 G06F12/02(2006.01)I;H04W84/18(2009.01)I 主分类号 G06F12/02(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 无线传感器网络节点内存管理方法,其特征在于包括下列步骤:(1)将物理内存空间划分为边界固定的I/O映射区、应用区和系统区;I/O映射区由所有任务共享访问,应用区被分为N段,每段分配给一个任务,每个任务的访问权限仅限于所分配的段,系统区仅由系统内核使用,所有任务都不能访问;(2)将传感器网络应用程序进行编译,生成二进制执行代码;(3)为每个任务提供大小与整个物理内存相同的逻辑地址空间;(4)对步骤(2)中生成的二进制执行代码进行分析和翻译;识别每个任务二进制执行代码中所有的内存操作指令,并将其修改为对相应的内核服务的调用;(5)内核服务在运行时被调用,并对每个任务的内存操作指令进行合法性判断,若识别的内存操作指令不合法,直接中止任务;否则,根据内存操作指令的访存地址落入I/O映射区、堆或者栈的不同情况,采用不同的地址转换方法,具体如下:(5.1)内存操作指令对I/O映射区进行随机访问,除非所访问的是栈指针,需要按方法(5.4)处理之外,其他都不进行地址转换;(5.2)内存操作指令对堆进行随机访问,把访问地址作为逻辑地址,计算在当前任务的逻辑空间中的偏移,并加上当前段在物理内存中的起始地址,形成堆访问的实际物理地址;(5.3)内存操作指令对栈进行随机访问,把访问地址作为逻辑地址,计算在当前任务的逻辑空间中的偏移,并加上当前段在物理内存中的结束地址,形成栈访问的实际物理地址;(5.4)内存操作指令设置栈指针位置,按照(5.3)所述的方法进行地址转换;内存操作指令为获取栈指针位置,则将物理地址反向转换为逻辑地址;(5.5)内存操作指令对栈进行后进先出LIFO的访问,不进行地址转换;(6)内核服务在各个任务对栈进行操作时,监视任务的栈增长情况,当栈的大小高于预设的警戒线时,暂时挂起该任务,进行物理内存重分配,当某个任务的栈持续增长,已经不存在其他具有空闲内存的任务可供调整时,中止该任务,收回其物理内存,重新分配给其他任务使用。
地址 410073 湖南省长沙市国防科技大学计算机学院并行与分布处理重点实验室