CN112395078B - 段页结合的内存管理方法 - Google Patents

段页结合的内存管理方法 Download PDF

Info

Publication number
CN112395078B
CN112395078B CN201910763767.2A CN201910763767A CN112395078B CN 112395078 B CN112395078 B CN 112395078B CN 201910763767 A CN201910763767 A CN 201910763767A CN 112395078 B CN112395078 B CN 112395078B
Authority
CN
China
Prior art keywords
physical memory
memory
resource pool
page
segment
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
Application number
CN201910763767.2A
Other languages
English (en)
Other versions
CN112395078A (zh
Inventor
郑岩
王星焱
黄高阳
林海南
刘松
邹通
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910763767.2A priority Critical patent/CN112395078B/zh
Publication of CN112395078A publication Critical patent/CN112395078A/zh
Application granted granted Critical
Publication of CN112395078B publication Critical patent/CN112395078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开一种段页结合的内存管理方法,包括以下步骤:S1、获取整个服务器上可供使用的物理内存;S2、从可供使用的物理内存中预留一段或多段连续物理内存,并将预留的连续物理内存加入段式物理内存资源池;S3、将可供使用的物理内存中未被加入段式物理内存资源池的剩余物理内存加入页式物理内存资源池;S4、当计算部件需要物理内存时,通过段式内存申请接口向段式物理内存资源池申请物理内存;S5、当普通用户程序需要物理内存时,操作系统内核将申请的物理内存空间大小与处理器支持的大页页面大小进行比较。本发明通过灵活的内存管理策略,解决了特殊计算部件对大块连续物理内存的需求,同时兼顾普通用户程序内存使用的需求,灵活适应不同的内存需求场景。

Description

段页结合的内存管理方法
技术领域
本发明涉及一种段页结合的内存管理方法,属于计算机技术领域。
背景技术
特殊加速计算部件对大块连续物理内存的使用有明确的要求,一是需求容量大,动辄数GB,二是高可用性,申请失败意味着计算任务无法部署,需要尽可能避免该情况发生。为满足上述需求,通常将大块内存预留做特殊加速部件专属内存,进行特殊管理。例如:Linux系统目前的页式内存管理易导致内存使用的碎片化,即便经过整理后也无法保证大段连续物理内存的成功申请,因此为满足特殊加速部件对大块连续物理内存的申请,一般采取开机阶段预留内存,并进行特殊管理的方式。但专属内存失去了通用性和灵活性,普通计算任务利用传统内存申请接口无法申请该专属内存空间。因此,如何在解决特殊计算部件对大块连续物理内存的需求的同时兼顾普通用户程序内存使用的需求,成为本领域技术人员努力的方向。
发明内容
本发明的目的是提供一种段页结合的内存管理方法,该段页结合的内存管理方法通过灵活的内存管理策略,解决了特殊计算部件对大块连续物理内存的需求,同时兼顾普通用户程序内存使用的需求,灵活适应不同的内存需求场景。
为达到上述目的,本发明采用的技术方案是:一种段页结合的内存管理方法,包括以下步骤:
S1、操作系统内核启动,并获取整个服务器上可供使用的物理内存;
S2、操作系统初始化,操作系统内核根据内核引导参数配置中的预留连续物理内存容量参数,从可供使用的物理内存中预留一段或多段连续物理内存,并将预留的连续物理内存加入段式物理内存资源池,采用段式内存管理算法进行管理,所述段式物理内存资源池可支持利用段式内存申请接口从段式物理内存资源池中申请连续的段式物理内存空间,并支持相应的释放接口;
S3、将可供使用的物理内存中未被加入段式物理内存资源池的剩余物理内存加入页式物理内存资源池,采用操作系统传统的内存管理算法进行管理;
S4、当计算部件需要物理内存时,通过段式内存申请接口向段式物理内存资源池申请物理内存,从而获得大段连续物理内存;
S5、当普通用户程序需要物理内存时,由系统调用进入操作系统内核,操作系统内核将申请的物理内存空间大小与处理器支持的大页页面大小进行比较,当申请的物理内存空间大小小于处理器支持的大页页面大小时,通过原有的操作系统内核内存申请接口向页式物理内存资源池申请物理内存,当申请的物理内存空间大小大于处理器支持的大页页面大小时,计算所需的大页页面个数,利用段式内存申请接口向段式物理内存资源池申请物理内存,将普通用户程序申请的物理内存空间大小减去向段式物理内存资源池申请物理内存空间大小,获得待申请的物理内存空间大小,并通过原有操作系统内核内存申请接口向页式物理内存资源池申请所述待申请的物理内存。
上述技术方案中进一步改进的技术方案如下:
1. 上述方案中,在S5中,所述待申请的物理内存空间大小等于普通用户程序申请的物理内存空间大小减去向段式物理内存资源池申请的大页页面个数乘以大页页面大小。
2. 上述方案中,所述大页页面大小为2MB~1GB。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明段页结合的内存管理方法,其主要应用于国产申威处理器异构众核平台,通过灵活的内存管理策略,解决了特殊计算部件对大块连续物理内存的需求,同时兼顾普通用户程序内存使用的需求,支持段式内存页式使用,提供了系统内存的可用性,灵活适应不同的内存需求场景。
附图说明
附图1为段页结合的内存管理方法流程图。
具体实施方式
实施例:一种段页结合的内存管理方法,包括以下步骤:
S1、操作系统内核启动,并获取整个服务器上可供使用的物理内存;
S2、操作系统初始化,操作系统内核根据内核引导参数配置中的预留连续物理内存容量参数,从可供使用的物理内存中预留一段或多段连续物理内存,并将预留的连续物理内存加入段式物理内存资源池,采用段式内存管理算法进行管理,所述段式物理内存资源池可支持利用段式内存申请接口从段式物理内存资源池中申请连续的段式物理内存空间,并支持相应的释放接口;
S3、将可供使用的物理内存中未被加入段式物理内存资源池的剩余物理内存加入页式物理内存资源池,采用操作系统传统的内存管理算法进行管理;
S4、当计算部件需要物理内存时,通过段式内存申请接口向段式物理内存资源池申请物理内存,从而获得大段连续物理内存;
S5、当普通用户程序需要物理内存时,由系统调用进入操作系统内核,操作系统内核将申请的物理内存空间大小与处理器支持的大页页面大小进行比较,当申请的物理内存空间大小小于处理器支持的大页页面大小时,通过原有的操作系统内核内存申请接口向页式物理内存资源池申请物理内存,当申请的物理内存空间大小大于处理器支持的大页页面大小时,计算所需的大页页面个数,利用段式内存申请接口向段式物理内存资源池申请物理内存,将普通用户程序申请的物理内存空间大小减去向段式物理内存资源池申请物理内存空间大小,获得待申请的物理内存空间大小,并通过原有操作系统内核内存申请接口向页式物理内存资源池申请所述待申请的物理内存。
在S5中,所述待申请的物理内存空间大小等于普通用户程序申请的物理内存空间大小减去向段式物理内存资源池申请的大页页面个数乘以大页页面大小。
上述大页页面大小为2 MB。
实施例进一步解释如下:
操作系统所采用的内存管理有两个阶段,第一阶段是操作系统内核启动时先获取整个服务器上可供使用的内存段,该阶段采用段式管理,第二阶段是页式管理,用于用户程序或操作系统自身所需内存的申请释放。
本发明针对上述情况,具体流程如下:
操作系统引导,根据参数配置从操作系统标准bootmem中预留大段连续物理内存,将预留的物理内存加入段式内存资源池,采用段式内存管理;
剩余的物理内存加入页式内存资源池,由操作系统传统的内存管理算法进行管理;
需要大段连续物理内存时,可利用新增操作系统接口向段式内存资源池申请物理内存;
利用传统操作系统内存申请接口去申请内存时,分两种情况处理:
当申请的空间小于处理器支持的大页页面大小时,利用普通操作系统内存申请接口申请小页空间,该空间位于页式内存资源池,大页页面大小通常为小页页面的整数倍,如Intel处理器常规小页页面大小为4KB,大页页面大小为2MB;
当申请的空间大于处理器支持的大页页面大小时,满足大页页面的部分向段式内存资源池申请段式内存,剩余部分向页式内存资源池申请小页空间。
其中,第一步是该方法的准备阶段,只有在引导阶段才能预留连续的大段物理内存,构建段式内存资源池,第四步则充分体现了段页结合的内存管理特点,使得传统内存申请接口也可以透明的使用段式内存资源池中的内存空间。
通过在系统开机阶段预留大量内存,将段式内存管理和页式内存管理结合起来,在内核中建立区分于页式内存资源池的段式内存资源池,并针对性新增段式内存申请接口和兼容传统内存申请接口,既保障连续大段物理内存申请,解决了操作系统上连续大段物理内存申请的成功率问题,同时兼顾传统页式内存申请接口,使得采用传统内存申请接口的普通用户程序,也可以透明的使用两种内存资源池中的内存资源。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
Bootmem:Linux内核初始化阶段的内存管理系统,采用连续段式管理,当页式管理系统启用后,bootmem系统即停用。
采用上述段页结合的内存管理方法时,其主要应用于国产申威处理器异构众核平台,通过灵活的内存管理策略,解决了特殊计算部件对大块连续物理内存的需求,同时兼顾普通用户程序内存使用的需求,支持段式内存页式使用,提供了系统内存的可用性,灵活适应不同的内存需求场景。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (3)

1.一种段页结合的内存管理方法,其特征在于:包括以下步骤:
S1、操作系统内核启动,并获取整个服务器上可供使用的物理内存;
S2、操作系统初始化,操作系统内核根据内核引导参数配置中的预留连续物理内存容量参数,从可供使用的物理内存中预留一段或多段连续物理内存,并将预留的连续物理内存加入段式物理内存资源池,采用段式内存管理算法进行管理,所述段式物理内存资源池可支持利用段式内存申请接口从段式物理内存资源池中申请连续的段式物理内存空间,并支持相应的释放接口;
S3、将可供使用的物理内存中未被加入段式物理内存资源池的剩余物理内存加入页式物理内存资源池,采用操作系统页式内存管理算法进行管理;
S4、当计算部件需要物理内存时,通过段式内存申请接口向段式物理内存资源池申请物理内存,从而获得大段连续物理内存;
S5、当普通用户程序需要物理内存时,由系统调用进入操作系统内核,操作系统内核将申请的物理内存空间大小与处理器支持的大页页面大小进行比较,当申请的物理内存空间大小小于处理器支持的大页页面大小时,通过原有的操作系统内核内存申请接口向页式物理内存资源池申请物理内存,当申请的物理内存空间大小大于处理器支持的大页页面大小时,计算所需的大页页面个数,利用段式内存申请接口向段式物理内存资源池申请物理内存,将普通用户程序申请的物理内存空间大小减去向段式物理内存资源池申请物理内存空间大小,获得待申请的物理内存空间大小,并通过原有操作系统内核内存申请接口向页式物理内存资源池申请所述待申请的物理内存。
2.根据权利要求1所述的段页结合的内存管理方法,其特征在于:在S5中,所述待申请的物理内存空间大小等于普通用户程序申请的物理内存空间大小减去向段式物理内存资源池申请的大页页面个数乘以大页页面大小。
3.根据权利要求1所述的段页结合的内存管理方法,其特征在于:所述大页页面大小为2MB~1GB。
CN201910763767.2A 2019-08-19 2019-08-19 段页结合的内存管理方法 Active CN112395078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910763767.2A CN112395078B (zh) 2019-08-19 2019-08-19 段页结合的内存管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910763767.2A CN112395078B (zh) 2019-08-19 2019-08-19 段页结合的内存管理方法

Publications (2)

Publication Number Publication Date
CN112395078A CN112395078A (zh) 2021-02-23
CN112395078B true CN112395078B (zh) 2022-07-12

Family

ID=74603443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910763767.2A Active CN112395078B (zh) 2019-08-19 2019-08-19 段页结合的内存管理方法

Country Status (1)

Country Link
CN (1) CN112395078B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893269A (zh) * 2016-03-31 2016-08-24 武汉虹信技术服务有限责任公司 一种Linux系统下内存管理方法
CN109062823A (zh) * 2018-07-16 2018-12-21 北京中科网威信息技术有限公司 使用大页内存提升基于申威架构的设备性能的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893269A (zh) * 2016-03-31 2016-08-24 武汉虹信技术服务有限责任公司 一种Linux系统下内存管理方法
CN109062823A (zh) * 2018-07-16 2018-12-21 北京中科网威信息技术有限公司 使用大页内存提升基于申威架构的设备性能的方法及装置

Also Published As

Publication number Publication date
CN112395078A (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
US9619263B2 (en) Using cooperative greedy ballooning to reduce second level paging activity
CN110192182B (zh) 动态和专用的虚拟化图形处理
WO2015090197A1 (zh) 资源处理方法、操作系统及设备
US20200174669A1 (en) Management method and apparatus for multi-system shared memory
CN102404385A (zh) 面向高性能计算的虚拟集群部署系统和部署方法
JP2013513174A (ja) 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム
US20170046189A1 (en) Method for Scheduling VM Resource, Apparatus, and System
CN111930498B (zh) 一种高效的gpu资源分配优化方法和系统
CN110162397B (zh) 资源分配方法、装置及系统
EP3304317B1 (en) Method and apparatus for managing memory
CN109960569B (zh) 一种虚拟化处理方法及装置
EP3879875A1 (en) Resource change method and device, apparatus, and storage medium
CN111104219A (zh) 虚拟核心与物理核心的绑定方法、装置、设备及存储介质
WO2016037499A1 (zh) 一种内存迁移方法及设备
US7447829B2 (en) Heap and stack layout for multithreaded processes in a processing system
CN110750336A (zh) 一种OpenStack虚拟机内存热扩容方法
CN105630607A (zh) 一种资源池管理方法、容器创建方法及电子设备
CN113900774B (zh) 云操作系统的虚拟机控制方法、装置以及存储介质
CN107329802B (zh) 一种虚拟机创建方法及电子设备
CN112395078B (zh) 段页结合的内存管理方法
US9740530B2 (en) Decreasing the priority of a user based on an allocation ratio
JP6449487B2 (ja) ソフトウェアセキュリティ検証方法、デバイス、およびシステム
CN112685132A (zh) 一种koji任务执行方法、装置、设备及可读存储介质
CN106844035B (zh) 一种实现云服务器资源释放或恢复的方法及装置
CN106155758B (zh) 一种服务器系统及其相关控制方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant