[发明专利]在Linux上模拟实现Windows堆管理的方法有效

专利信息
申请号: 201310003729.X 申请日: 2013-01-06
公开(公告)号: CN103077076A 公开(公告)日: 2013-05-01
发明(设计)人: 李睿;杨南君;吕江花;马世龙 申请(专利权)人: 北京航空航天大学
主分类号: G06F9/46 分类号: G06F9/46
代理公司: 北京永创新实专利事务所 11121 代理人: 周长琪
地址: 100191*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明为一种在Linux上模拟实现Windows堆管理的方法,应用程序初始化时,使用brk命令从Linux虚拟地址中开辟出一块连续空间用作类Windows虚存管理,然后构建数据结构,将应用程序的Windows操作行为转化为Linux操作的表达形式,在Linux上,不可增长堆和可增长堆通过将内存块以链表连接方式来模拟实现,不可增长堆要保留最大大小的空间。本发明方法在Linux上实现了堆的固定地址再分配功能,在不修改Linux内核的情况下,在Linux上重新构建Windows的内存管理机制,实现虚存管理和堆管理,以便使得Windows应用程序可以无缝迁移至Linux操作系统上运行。
搜索关键词: linux 模拟 实现 windows 管理 方法
【主权项】:
一种在Linux上模拟实现Windows堆管理的方法,其特征在于,包括如下步骤:步骤一:应用程序初始化时,使用brk命令从Linux虚拟地址中开辟出一块大小为dwSize的连续空间,用作类Windows虚存管理,并记录该空间的起始地址,设置从起始地址开始每页的状态、每页的访问权限以及锁定状态;步骤二:构建数据结构,将应用程序的Windows操作行为转化为Linux操作的表达形式;步骤三:对于堆操作,判断堆的类型,若为不可增长堆,转入步骤四;若为可增长堆,转入步骤五;Linux上不可增长堆和可增长堆通过将内存块以链表连接方式来模拟实现;步骤四:堆保留最大大小的空间,提交初始大小的空间进行分配,当初始大小的空间消耗完时,转入步骤六;步骤五:堆提交初始大小的空间进行分配,当初始大小的空间消耗完时,转入步骤七;步骤六:堆从保留的空间中继续提交一段页面来满足分配需求,直到所保留的空间不能满足分配需求为止;步骤七:系统通过VirtualAlloc()另辟新的空间来满足分配需求,直到系统内存不能满足分配需求为止;步骤四和步骤五中进行空间按分配时,在Linux上实现了堆的固定地址再分配,步骤是:步骤11:获取指定的内存块的起始地址,标记该内存块为a1;步骤12:判断内存块a1是否满足再分配所需空间的大小,若不满足,转入步骤13;否则,转入步骤15;步骤13:在堆中寻找空闲块,当寻找到一个空闲块时,进行步骤14;步骤14:判断寻找到的所有空闲块与内存块a1的大小之和是否满足再分配所需空间的大小,若不满足,转入步骤13,继续寻找下一个空闲块;若满足,转入步骤15;步骤15:合并内存块a1与所有寻找到的空闲块;步骤16:分割出用于再分配的内存块,所分割的内存块的起始地址为内存块a1的起始地址。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310003729.X/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top