CN102053916B - 一种分配内核大片连续内存的方法 - Google Patents
一种分配内核大片连续内存的方法 Download PDFInfo
- Publication number
- CN102053916B CN102053916B CN 201010598002 CN201010598002A CN102053916B CN 102053916 B CN102053916 B CN 102053916B CN 201010598002 CN201010598002 CN 201010598002 CN 201010598002 A CN201010598002 A CN 201010598002A CN 102053916 B CN102053916 B CN 102053916B
- Authority
- CN
- China
- Prior art keywords
- memory
- kernel
- distributing
- turning
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Memory System (AREA)
Abstract
本发明提供了一种分配内核大片连续内存的方法。得到内核分配时最大的内存页阶数;计算所需内存页数N;判断阶数,为负数,则转F。否则根据阶数申请内存,若失败,则阶数减小转步骤C,若成功,则合并可合并的内存块作为连续内存;判断新合并的连续内存是否有满足要求,有则转步骤E,否则转步骤C;若有满足要求内存则申请成功,转步骤F;若没有满足要求的内存则跳转至步骤C;释放没有使用的内存。本发明能快速的从内核中分配到大块连续的内存块,较通常的分配方法,缩短了分配时间。主要有两方面来保证,一方面,每次以最大可分配内存数向内核提出申请,另一方面,分配完一次内存后,即时的合并连续区域并即时判断是否满足要求,不需要做任何多余的申请工作。
Description
技术领域
本发明涉及内存管理领域,具体涉及一种分配内核大片连续内存的快速方法。
背景技术
由于内核内存资源的有限,内存的有效利用与***的功能性能密切相关。不同的操作***提供了不同的内存管理方法,不同的内存管理方法导致申请内存时一次获取的内存大小不等。若需获得大片连续内存时,内存的分配和组织方式也存在着较大的差异。目前,大部大片连续内存分配方法是先分配大量内存,再从其中挑出满足要求的内存块,请参考专利CN101676883。因此,在***内存比较大时,内存分配时间较长,影响了分配效率。
现在大部分linux内核提供一次最多16M的申请,通常只能一次申请4M,若要从内核申请一大片连续的内存时,需要多块地址相邻的内存。采用通常所用的方法,先把可用的内存块全部申请下来,然后把内存块按地址排序,合并连续区域块,在其中找到一块满足要求的内存分配,分耗费较长时间。此方案主要有几点缺点:1.内存较大的***,可能内存较大,申请分配时间较长;2.申请分配到的内存需要按地址排序合并,时间复杂度约为内存块的排序时间复杂度。。鉴于上述方案的缺点,本发明提出一种快速分配的方法,每次申请最大内存块,一边申请内存,一边判断,只要满足要求的内存已经被申请,立即分配内存,不要再做多余的申请和释放工作,大大缩短了分配时间,提高了分配效率。
发明内容
本发明目的是提供一种分配内核大片连续内存的方法。
一种分配内核大片连续内存的方法,其特征在于:包括以下步骤:
A、得到内核分配时最大的内存页阶数;
B、计算所需内存页数N;
C、判断阶数,为负数,则转F。否则根据阶数申请内存,若失败,则阶数减小转步骤C,,若成功,则合并可合并的内存块作为连续内存;
D、判断新合并的连续内存是否有满足要求,有则转步骤E,否则转步骤C;
E、若有满足要求内存则申请成功,转步骤F;若没有满足要求的内存则跳转至步骤C;
F、释放没有使用的内存。
本发明的一种优选技术方案在于:每次申请最大可能的内存块。
本发明的再一种优选技术方案在于:所述C步骤申请内存成功后可以进行内存块排序。
本发明的还一种优选技术方案在于:满足需要的内存已经分配后,立即停止分配。
本发明能快速的从内核中分配到大块连续的内存块,较通常的分配方法,缩短了分配时间。主要有两方面来保证,一方面,每次以最大可分配内存数向内核提出申请,另一方面,分配完一次内存后,即时的合并连续区域并即时判断是否满足要求,不需要做任何多余的申请工作。
附图说明
图1是本发明流程图
图2是本发明优选技术方案流程图
具体实施方式
1.得到内核分配时最大的内存页阶数;
获得申请内存时,一次可以申请到的最大内存数,即为内存页大小的阶数次方。这里即保证每个内存块的地址连续又保证了每次申请内存块都是最大可以申请内存块。
2.计算所需内存页数N;
所需内存大小与内存页面大小的商的上取整取为所需内存页数N。
3.判断阶数,为负时,转步骤6,否则申请内存。
阶数可能会随着***空闲内存的减小而减小,当没有空闲页供分配时,为-1。当阶数为正数时,继续分配内存。
4.若内存申请失败,则阶数减小,转步骤3,;若申请成功,合并可合并的内存块作为连续内存;
内存分配失败后,说明***已经没有空闲的阶数大小的连续内存块了,减小阶数转到步骤3;若申请成功,则根据内存的地址与已经分配的内存块合并。
5.判断是否有满足要求内存,有分配内存,转步骤5,否则转步骤3。
若步骤4没有合并,则判断新分配的内存块是不是满足申请需求,否则判断步骤4新合并的内存块是不是满足申请需求。若满足需求则分配内存,转步骤5,否则转步骤3继续申请。
6.释放没有使用的内存。
在申请过程中,可能已经申请了大量的内存,没有使用的内存应当返回给***,以供其他程序使用。
Claims (4)
1.一种分配内核大片连续内存的方法,其特征在于:包括以下步骤:
A、得到内核分配时最大的内存页阶数,在获得申请内存时,一次可以申请到的最大内存数,即为内存页大小的阶数次方;
B、计算所需内存页数N,所需内存大小与内存页面大小的商的上取整取为所需内存页数N;
C、判断阶数,为负数,则转F,否则根据阶数申请内存,若失败,则阶数减小转步骤C,若成功,则合并可合并的内存块作为连续内存;
D、判断新合并的连续内存是否有满足要求,有则转步骤E,否则转步骤C;
E、申请成功,转步骤F;
F、释放没有使用的内存。
2.如权利要求1所述一种分配内核大片连续内存的方法,其特征在于:每次申请最大可能的内存块。
3.如权利要求1所述一种分配内核大片连续内存的方法,其特征在于:所述C步骤申请内存成功后进行内存块排序。
4.如权利要求1所述一种分配内核大片连续内存的方法,其特征在于:满足需要的内存已经分配后,立即停止分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010598002 CN102053916B (zh) | 2010-12-17 | 2010-12-17 | 一种分配内核大片连续内存的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010598002 CN102053916B (zh) | 2010-12-17 | 2010-12-17 | 一种分配内核大片连续内存的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102053916A CN102053916A (zh) | 2011-05-11 |
CN102053916B true CN102053916B (zh) | 2013-06-05 |
Family
ID=43958261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010598002 Active CN102053916B (zh) | 2010-12-17 | 2010-12-17 | 一种分配内核大片连续内存的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102053916B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365897A (zh) * | 2012-04-01 | 2013-10-23 | 华东师范大学 | 一种支持Bigtable数据模型的片段缓存方法 |
CN104281537B (zh) * | 2013-07-05 | 2017-09-08 | 阿里巴巴集团控股有限公司 | 一种内存复制方法及装置 |
CN106227593A (zh) * | 2016-07-06 | 2016-12-14 | 杭州迪普科技有限公司 | 一种申请超大块连续内存的方法及装置 |
CN106649148B (zh) * | 2016-10-11 | 2020-04-17 | 东软集团股份有限公司 | 用于大页分配的方法和装置 |
CN107729146A (zh) | 2017-10-11 | 2018-02-23 | 晶晨半导体(上海)股份有限公司 | 一种内存释放方法 |
CN107818014B (zh) | 2017-10-11 | 2020-06-09 | 晶晨半导体(上海)股份有限公司 | 一种内存分配方法以及多核并发的内存分配方法 |
CN109062823A (zh) * | 2018-07-16 | 2018-12-21 | 北京中科网威信息技术有限公司 | 使用大页内存提升基于申威架构的设备性能的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604291A (zh) * | 2008-06-12 | 2009-12-16 | 联阳半导体股份有限公司 | 增进多级单元非挥发性内存的数据存取可靠度的方法 |
CN101681311A (zh) * | 2008-02-28 | 2010-03-24 | 株式会社东芝 | 存储器*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009259326A (ja) * | 2008-04-16 | 2009-11-05 | Toshiba Corp | 半導体記憶装置 |
JP5259257B2 (ja) * | 2008-05-29 | 2013-08-07 | 株式会社日立超エル・エス・アイ・システムズ | 記憶装置 |
-
2010
- 2010-12-17 CN CN 201010598002 patent/CN102053916B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681311A (zh) * | 2008-02-28 | 2010-03-24 | 株式会社东芝 | 存储器*** |
CN101604291A (zh) * | 2008-06-12 | 2009-12-16 | 联阳半导体股份有限公司 | 增进多级单元非挥发性内存的数据存取可靠度的方法 |
Non-Patent Citations (2)
Title |
---|
JP特开2009-259326A 2009.11.05 |
JP特开2009-289014A 2009.12.10 |
Also Published As
Publication number | Publication date |
---|---|
CN102053916A (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102053916B (zh) | 一种分配内核大片连续内存的方法 | |
Wang et al. | Efficient task replication for fast response times in parallel computation | |
US20160378570A1 (en) | Techniques for Offloading Computational Tasks between Nodes | |
CN102156675B (zh) | 一种内存分配方法及装置 | |
CN108462656B (zh) | 基于容器的业务融合部署的资源调度方法及装置 | |
CN103576827B (zh) | 一种云计算数据中心在线节能调度的方法 | |
CN104978232A (zh) | 用于实时流式计算的计算资源扩容、释放方法及其装置 | |
CN103180830A (zh) | 中央处理器资源分配方法和计算节点 | |
CN103377092A (zh) | 用于动态资源管理的两级动态资源管理方法和装置 | |
CN103885569A (zh) | 内存的管理方法及装置 | |
CN104168310A (zh) | 云端虚拟服务器的调度方法及装置 | |
CN102520887A (zh) | 一种应用于云计算的存储空间配置与管理方法 | |
CN104615500A (zh) | 一种服务器计算资源动态分配的方法 | |
CN103309745A (zh) | 云架构的虚拟资源配置的方法及装置 | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
WO2006115614A3 (en) | Extensible scheduling of messages on time-triggered busses | |
CN103077120A (zh) | 程序共享内存的地址转换方法和装置 | |
EP2813941A3 (en) | Storage system and operation management method of storage system | |
CN103729236A (zh) | 一种限制云计算用户资源使用额度的方法 | |
WO2023071576A1 (zh) | 容器集群构建方法及*** | |
CN104461404A (zh) | 元数据存储方法、装置以及*** | |
CN103218305A (zh) | 存储空间的分配方法 | |
CN105975049A (zh) | 一种任务同步偶发任务低能耗调度方法 | |
CN102685219A (zh) | San存储***中通过动态扩容提高存储资源利用率的方法 | |
CN105630599A (zh) | 基于32/64位混合操作***的显存分配方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221209 Address after: 430040 NO.666, Wuhuan Avenue, linkonggang economic and Technological Development Zone, Wuhan City, Hubei Province (10) Patentee after: Dawning Network Technology Co.,Ltd. Address before: 300384 Xiqing District, Tianjin Huayuan Industrial Zone (outside the ring) 15 1-3, hahihuayu street. Patentee before: DAWNING INFORMATION INDUSTRY Co.,Ltd. |
|
TR01 | Transfer of patent right |