[发明专利]Linux系统平台上指定地址范围分配物理内存的方法无效
申请号: | 200710306110.0 | 申请日: | 2007-12-28 |
公开(公告)号: | CN101470667A | 公开(公告)日: | 2009-07-01 |
发明(设计)人: | 武波;陈玄同;刘文涵 | 申请(专利权)人: | 英业达股份有限公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 梁 挥;祁建国 |
地址: | 台湾省*** | 国省代码: | 中国台湾;71 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | linux 系统 平台 指定 地址 范围 分配 物理 内存 方法 | ||
1、一种Linux系统平台上指定地址范围分配物理内存的方法,应用于Linux操作系统下的物理内存的测试进程中,其特征在于,该方法包含以下步骤:
获得所要分配内存的指定地址范围及大小;
针对系统中每一个节点,查看其包含的内存的地址范围是否与该指定地址范围有交集;
如果有交集,则对所述各节点中的每一个页区,查看其包含的内存的地址范围是否与该指定地址范围有交集;
如果仍有交集,则在所述各页区的每中央处理器页框高速缓存和伙伴系统中的内存块链表中,查找符合所述大小及指定地址范围要求的内存块;
将查找到的内存块从该内存块链表中经拆分后取出;以及
在所述各页区中重复查找符合所述大小及指定地址范围要求的内存块并将其拆分后取出,直至分配满足了所要求的大小、或者所述各页区中已没有符合该指定地址范围的内存块、或者所述各页区的空闲内存已减少至系统内核安全的下限后,传送所有分配出来的内存块的信息,以用于对内存进行映像、检测和释放。
2、根据权利要求1所述的Linux系统平台上指定地址范围分配物理内存的方法,其特征在于,符合指定地址范围要求的内存块包含:
内存块中的全部内存页都在该指定地址范围内的内存块;以及
内存块中的部分内存页在该指定地址范围内的内存块。
3、根据权利要求1所述的Linux系统平台上指定地址范围分配物理内存的方法,其特征在于,查找符合所要分配内存的大小要求的内存块系包含如下步骤:
先在与所要求的大小相同的内存块链表中查找;以及
当无法找到时,再在相比于所要求的大小更为大的内存块链表中查找。
4、根据权利要求3所述的Linux系统平台上指定地址范围分配物理内存的方法,其特征在于,该查找方法包含:遍历内存块链表以及利用系统内核的数据结构进行查找。
5、根据权利要求1所述的Linux系统平台上指定地址范围分配物理内存的方法,其特征在于,拆分所述内存块包含如下步骤:
对于全部内存页在该指定地址范围内的内存块,如果所要分配的大小比内存块要小,则通过拆分,取得第一个所要分配大小的小内存块;以及
对于部分内存页在该指定地址范围内的内存块,如果要在该指定地址范围内分配一个设定大小的小内存块,则根据在该指定地址范围内的该部分内存页位于该内存块的前半部分、后半部分或中间部分三种情况进行拆分。
6、根据权利要求5所述的Linux系统平台上指定地址范围分配物理内存的方法,其特征在于,根据在该指定地址范围内的该部分内存页位于该内存块的前半部分、后半部分或中间部分三种情况进行拆分,分别对应于以下三种拆分处理方式:
(1)如果该内存块中,设定大小的第一个小内存块在该指定地址范围内,则通过拆分,取出该设定大小的第一个小内存块;
(2)如果该内存块中,设定大小的最后一个小内存块在该指定地址范围内,则通过拆分,取出该设定大小的最后一个小内存块;以及
(3)如果该内存块中,该指定地址范围的起、止地址都落在该内存块中,则将该内存块不停地拆分,直至找到符合所述(1)、(2)两种情况的内存块,然后再通过拆分,得到要分配的该设定大小的小内存块。
7、根据权利要求1所述的Linux系统平台上指定地址范围分配物理内存的方法,其特征在于,于该内存块取出之后,进一步包含储存该分配出来的内存块的信息,并更新分配状态的步骤。
8、根据权利要求1所述的Linux系统平台上指定地址范围分配物理内存的方法,其特征在于,通过接口,以阵列方式传送所有分配出来的内存块的信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英业达股份有限公司,未经英业达股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710306110.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:向多个存储介质复制数据的装置、系统及复制方法
- 下一篇:一种数据存储方法