CN104252419B - 一种内存分配的方法及装置 - Google Patents
一种内存分配的方法及装置 Download PDFInfo
- Publication number
- CN104252419B CN104252419B CN201410471145.XA CN201410471145A CN104252419B CN 104252419 B CN104252419 B CN 104252419B CN 201410471145 A CN201410471145 A CN 201410471145A CN 104252419 B CN104252419 B CN 104252419B
- Authority
- CN
- China
- Prior art keywords
- memory
- mirror
- data
- stored
- mirror memory
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Memory System (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种内存分配的方法,所述方法应用于计算机***中,所述计算机***包括内存资源、BOIS和OS,所述内存资源中包含初始镜像内存,在所述操作***运行时,所述方法包括:获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存,对待分配内存的数据进行检测,当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。本发明实施例提供的内存分配的方法,可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种内存分配的方法及装置。
背景技术
因内存的可靠性对计算机***的可靠性影响很大。所以需要提高内存的可靠性,目前现有技术中通常采用镜像内存来提升内存可靠性。
镜像内存(Mirroring Memory)技术的工作原理:在硬件中划分两个内存区域,一个作为主内存,一个作为镜像内存,操作***运行时将内存数据做两个拷贝,分别放在主内存和镜像内存中。因此使得内存数据有两套完整的备份。完整的镜像内存需要内存中的所有数据均存有副本,服务器***正常运行时所使用的是原本,而当其中一份宿主失效时,另外那份就随即补替工作,有效防止了由于内存通道故障导致的数据丢失,极大提升了服务器可靠性。但是要实现这一功能需要双倍的物理内存,而实际容量的利用率只有50%。由于成本非常高,因此现实中很少有产品使用完整的镜像内存。
现有技术中已经出现了部分镜像内存技术,该技术可以将计算机***中的一部分内存(比如某一段或几段内存地址区域)做镜像内存。但现有技术中的镜像内存只是停留在硬件层,操作***并不感知硬件层,当硬件层的镜像内存发生变化时,操作***中就不能准确的找到镜像内存,导致无法将数据准备的存储到镜像内存中,而且,由于镜像内存大小有限,而计算机***在为数据分配镜像内存时,只会为先产生的数据分配镜像内存,镜像内存占满后,就无法再为其他需要分配镜像内存的数据分配镜像内存。
发明内容
为了解决现有技术中操作***无法感知到镜像内存的变化,且在镜像内存大小有限的情况下,无法为需要分配镜像内存的数据分配镜像内存相比,本发明实施例提供的内存分配的方法,可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了***的可靠性。本发明实施例还提供了相应的装置。
本发明第一方面提供一种内存分配的方法,所述方法应用于计算机***中,所述计算机***包括内存资源、基本输入输出***BOIS和操作***OS,所述内存资源中包含初始镜像内存,在所述操作***运行时,所述方法包括:
获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;
对待分配内存的数据进行检测;
当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
结合第一方面,在第一种可能的实现方式中,所述对待分配内存的数据进行检测之前,所述方法还包括:
为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;
所述对待分配内存的数据进行检测,包括:
检测所述待分配内存的数据是否携带有所述镜像标识;
所述当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,包括:
当检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
当所述待分配内存的数据为所述关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
若所述同一进程数据未存储到所述镜像内存中,则将所述同一进程数据转移到所述初始镜像内存中。
结合第一方面、第一方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,包括:
确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
从所述所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
结合第一方面、第一方面第一种或第二种可能的实现方式,在第四种可能的实现方式中,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存之后,所述方法还包括:
为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
本发明第二方面提供一种内存分配的装置,所述装置应用于计算机***中,所述计算机***包括内存资源、基本输入输出***BOIS和操作***OS,所述内存资源中包含初始镜像内存,在所述操作***运行时,所述装置包括:
获取单元,用于获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;
检测单元,用于对待分配内存的数据进行检测;
分配单元,用于当所述检测单元检测到所述数据为待存储到镜像内存的数据时,从所述获取单元获取的所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
结合第二方面,在第一种可能的实现方式中,所述装置还包括:
第一设置单元,用于在所述检测单元对待分配内存的数据进行检测之前,为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;
所述检测单元,用于检测所述待分配内存的数据是否携带有所述第一设置单元设置的所述镜像标识;
所述分配单元,用于当所述检测单元检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:
确定单元,用于当所述待分配内存的数据为所述关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
转移单元,用于当所述确定单元确定所述同一进程数据未存储到所述镜像内存中时,则将所述同一进程数据转移到所述初始镜像内存中。
结合第二方面、第二方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述分配单元包括:
确定子单元,用于确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
分配子单元,用于从所述确定子单元确定的所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
结合第二方面、第二方面第一种或第二种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:
第二设置单元,用于在所述分配单元分配镜像内存后,为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
本发明实施例提供的内存分配的方法,所述方法应用于计算机***中,所述计算机***包括内存资源、基本输入输出***BOIS和操作***OS,所述内存资源中包含初始镜像内存,在所述操作***运行时,所述方法包括:获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;对待分配内存的数据进行检测;当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。与现有技术中操作***无法感知到进行内存的变化,且在镜像内存大小有限的情况下,无法为需要分配镜像内存的数据分配镜像内存相比,本发明实施例提供的内存分配的方法,BOIS向所述OS提供镜像内存地址区间,从而可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了***的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中计算机***的架构示意图;
图2是本发明实施例中内存分配的方法的一实施例示意图;
图3是本发明实施例中内存分配的装置的一实施例示意图;
图4是本发明实施例中内存分配的装置的另一实施例示意图;
图5是本发明实施例中内存分配的装置的另一实施例示意图;
图6是本发明实施例中内存分配的装置的另一实施例示意图;
图7是本发明实施例中内存分配的装置的另一实施例示意图;
图8是本发明实施例中内存分配设备的一实施例示意图。
具体实施方式
本发明实施例提供一种内存分配的方法,可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了***的可靠性。本发明实施例还提供了相应的装置及***。以下分别进行详细说明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
参阅图1,本发明实施例提供的计算机***架构可以包括:硬件资源层、基本输入输出***(Basic Input Output System,BOIS)、操作***(Operation System,OS)和用户应用层,所述硬件资源层可以包括处理器、内存、输入输出***等硬件资源,用户应用层可以包括各种业务应用,本发明实施例中的操作***可以为Linux***。
内存可以包括镜像内存,在操作***初始化时,BOIS会向OS上报内存信息,内存信息可以为各类型内存的地址范围,其中包括镜像内存的地址范围,例如可以包含以下信息,通过e820映射图的形式可以表示为:
e820:BIOS-provided physical RAM map:
[mem 0x0000000000000000-0x000000000009a7ff]usable
[mem 0x000000000009a800-0x000000000009ffff]reserved
[mem 0x00000000000e4b60-0x00000000000fffff]reserved
[mem 0x0000000000100000-0x000000003fffffff]mirror (1M~1G)
[mem 0x0000000040000000-0x00000000bf78ffff]usable (1G~3063M)
[mem 0x00000000bf790000-0x00000000bf79dfff]ACPI data
[mem 0x00000000bf79e000-0x00000000bf7cffff]ACPI NVS
[mem 0x00000000bf7d0000-0x00000000bf7dffff]reserved
[mem 0x00000000bf7ec000-0x00000000bfffffff]reserved
[mem 0x00000000e0000000-0x00000000efffffff]reserved
[mem 0x00000000fee00000-0x00000000fee00fff]reserved
[mem 0x00000000fff00000-0x00000000ffffffff]reserved
[mem 0x0000000100000000-0x00000002ffffffff]usable (4G~12G)
[mem 0x0000000300000000-0x000000033fffffff]mirror (12G~13G)
[mem 0x0000000340000000-0x00000005ffffffff]usable (13G~24G)
[mem 0x0000000600000000-0x000000063fffffff]mirror (24G~25G)
[mem 0x0000000640000000-0x0000000bffffffff]usable (25G~36G)
[mem 0x0000000900000000-0x000000093fffffff]mirror (36G~37G)
[mem 0x0000000940000000-0x0000000c3fffffff]usable (37G~48G)…
其中,标记为mirror的地址范围对应的内存为镜像内存,本发明实施例中镜像内存的地址范围为(1M~1G)、(12G~13G)、(24G~25G)、(36G~37G)。
操作***根据BIOS上报的内存信息,可以建立一个镜像内存管理区MIRROR ZONE。MIRROR ZONE用来跟踪和管理镜像内存区域,其组织方式和普通的内存管理区相同。MIRRORZONE可以有多个,多个MIRROR ZONE组成ZONE List。例如:本发明实施例中的镜像内存可以有4个MIRROR ZONE,分别为(1M~1G)、(12G~13G)、(24G~25G)、(36G~37G)。可以依次编号为:MIRROR_ZONE1、MIRROR_ZONE2、MIRROR_ZONE3和MIRROR_ZONE4,按照非一致性内存访问(Non Uniform Memory Access Architecture,NUMA)架构,可以将48G的内存划分为4个节点,分别为(0M~12G)、(13G~24G)、(25G~36G)、(37G~48G),4个MIRROR ZONE分别属于4个节点,在分配镜像内存时,优先分配本节点的镜像内存,避免跨节点访问内存,造成较大的延迟。
在为内核数据分配内存时,可以通过新增__GFP_MIRROR标识,作为内核中优先分配镜像内存的标识。在为用户数据分配内存时,可以指定__GFP_MIRROR标识,优先分配镜像内存,也可以设置内核默认内核优先分配镜像内存。如以通过修改GFP_KERNEL的默认值,设置默认优先分配镜像内存:
#define GFP_KERNEL(__GFP_WAIT|__GFP_IO|__GFP_FS|__GFP_MIRROR)
针对内核数据优先分配镜像内存的过程如下:
1)OS启动,判断是否支持镜像内存优先分配的特性(BIOS上报的内存分布图中如果有MIRROR类型的内存,则说明支持该特性)。
2)若支持,OS根据BIOS上报的内存信息,建立一个或多个MIRROR ZONE,并加入到所有NODE的ZONE链表中,以便每个节点都可以选择在MIRROR ZONE中进行内存分配。
3)alloc_pages()是最基础的页框分配器,所有内存分配最终会走到这里,其负责在指定页区(ZONE)中分配1个或多个(2的整数次幂个)连续页框。如设置__GFP_MIRROR标识,则优先从MIRROR ZONE中分配内存。
4)分配内存时,优先从MIRROR ZONE区分配内存,若MIRROR类型的内存不足,则再从普通区域分配。
5)如果***的镜像内存数量很少,不足以满足所有内核数据存储的情况下,也可以关闭默认分配镜像内存的设置,改为手动分配镜像内存。比如,某些重要驱动程序,有较高的可靠性需求,可在分配内存时,手动指定__GFP_MIRROR标识。
6)镜像内存使用完释放时,释放到对应的MIRROR ZONE里;
本发明实施例不改变alloc_pages()等内存分配函数的接口及使用方式,使大量既有驱动程序不需做任何修改即可使用该特性。
针对用户进程数据优先分配镜像内存
针对新创建的进程:
1)创建进程
2)修改进程描述符,在进程描述符中设置镜像内存分配标识MIRROR_FIRST,本发明中,通过***调用或用户态命令可以设置该标识。
3)分配内存时,如果MIRROR_FIRST设置,则优先使用镜像内存,优先从MIRRORZONE分配内存,否则使用普通内存,从NORMAL ZONE分配内存,如果镜像内存不足,也分配普通内存。
4)子进程创建时,默认继承MIRROR_FIRST标识的设置。
针对正在运行的进程:
1)通过/proc接口或者***调用设置进程的MIRROR_FIRST标识,使进程分配内存时,优先分配镜像内存。
2)同时,将之前分配的普通内存中的数据,迁移到镜像内存中.
参阅图2,本发明实施例提供的内存分配的方法的一实施例包括:
所述方法应用于计算机***中,所述计算机***包括内存资源、基本输入输出***BOIS和操作***OS,所述内存资源中包含初始镜像内存,在所述操作***运行时,所述方法包括:
101、获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存。
102、对待分配内存的数据进行检测。
103、当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
本发明实施例提供的内存分配的方法,所述方法应用于计算机***中,所述计算机***包括内存资源、基本输入输出***BOIS和操作***OS,所述内存资源中包含初始镜像内存,在所述操作***运行时,所述方法包括:获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;对待分配内存的数据进行检测;当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。与现有技术中操作***无法感知到进行内存的变化,且在镜像内存大小有限的情况下,无法为需要分配镜像内存的数据分配镜像内存相比,本发明实施例提供的内存分配的方法,BOIS向所述OS提供镜像内存地址区间,从而可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了***的可靠性。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的内存分配的方法的第一个可选实施例中,所述对待分配内存的数据进行检测之前,所述方法还可以包括:
为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;
所述对待分配内存的数据进行检测,可以包括:
检测所述待分配内存的数据是否携带有所述镜像标识;
所述当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,可以包括:
当检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
本发明实施例中,可以将内核数据全部分配镜像内存,针对用户数据可以根据用户的需求进行设置,当用户指定某类型数据为关键用户数据时,则对该类型的数据设置镜像标识,为该类型的数据分配镜像内存。
可选地,在上述第一个可选实施例的基础上,本发明实施例提供的内存分配的方法的第二个可选实施例中,所述方法还可以包括:
当所述待分配内存的数据为所述关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
若所述同一进程数据未存储到所述镜像内存中,则将所述同一进程数据转移到所述初始镜像内存中。
本发明实施例中,是针对正在进行中的进程设置镜像标记的情况,例如:用户正在编辑的一个word文档,文档编辑一部分后,用户才指定该word文档为关键用户数据,则针对该word文档的数据已编辑的一部分已经分配了普通内存,在用户指定后再编辑的部分则会分配镜像内存,这样就可以将普通内存中的在先数据也转移到镜像内存中。
可选地,在上述图2对应的实施例或任一可选实施例的基础上,本发明实施例提供的内存分配的方法的第三个可选实施例中,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,可以包括:
确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
从所述所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
本发明实施例是针对镜像内存分布在不同NUMA节点的情况,在本节点内分配镜像内存,可以避免跨节点访问内存,造成较大的延迟。
可选地,在上述图2对应的实施例或任一可选实施例的基础上,本发明实施例提供的内存分配的方法的第四个可选实施例中,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存之后,所述方法还可以包括:
为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
本发明实施例中,在镜像内存被占用后,要在备占用的镜像内存的地址区间上设置标记,这样,在分配进行内存时,就可以快速的查找到未被占用的镜像内存。
参阅图3,本发明实施例提供的内存分配的装置的一实施例包括:所述装置应用于计算机***中,所述计算机***包括内存资源、基本输入输出***BOIS和操作***OS,所述内存资源中包含初始镜像内存,在所述操作***运行时,所述装置20包括:
获取单元201,用于获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;
检测单元202,用于对待分配内存的数据进行检测;
分配单元203,用于当所述检测单元202检测到所述数据为待存储到镜像内存的数据时,从所述获取单元201获取的所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
本发明实施例中提供的内存分配的装置,所述装置应用于计算机***中,所述计算机***包括内存资源、基本输入输出***BOIS和操作***OS,所述内存资源中包含初始镜像内存,在所述操作***运行时,所述装置20包括:获取单元201获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;检测单元202对待分配内存的数据进行检测;分配单元203当所述检测单元202检测到所述数据为待存储到镜像内存的数据时,从所述获取单元201获取的所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。与现有技术中操作***无法感知到进行内存的变化,且在镜像内存大小有限的情况下,无法为需要分配镜像内存的数据分配镜像内存相比,本发明实施例提供的内存分配的装置,BOIS向所述OS提供镜像内存地址区间,从而可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了***的可靠性。
可选地,在上述图3对应的实施例的基础上,参阅图4,本发明实施例提供的内存分配的装置的另一实施例中,所述装置20还包括:
第一设置单元204,用于在所述检测单元202对待分配内存的数据进行检测之前,为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;
所述检测单元202,用于检测所述待分配内存的数据是否携带有所述第一设置单元204设置的所述镜像标识;
所述分配单元203,用于当所述检测单元202检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
可选地,在上述图4对应的实施例的基础上,参阅图5,本发明实施例提供的内存分配的装置的另一实施例中,所述装置20还包括:
确定单元205,用于当所述待分配内存的数据为所述设置单元204设置的关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
转移单元206,用于当所述确定单元205确定所述同一进程数据未存储到所述镜像内存中时,则将所述同一进程数据转移到所述初始镜像内存中。
可选地,在上述图3对应的实施例的基础上,参阅图6,本发明实施例提供的内存分配的装置的另一实施例中,所述分配单元203包括:
确定子单元2031,用于确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
分配子单元2032,用于从所述确定子单元2021确定的所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
可选地,在上述图3对应的实施例的基础上,参阅图7,本发明实施例提供的内存分配的装置的另一实施例中,所述装置20还包括:
第二设置单元207,用于在所述分配单元203分配镜像内存后,为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
图8是本发明实施例内存分配设备40的结构示意图。内存分配设备40可包括输入/输出设备410、处理器430和存储器440。
存储器440可以包括只读存储器和随机存取存储器,并向处理器430提供指令和数据。存储器440的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器440存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
所述内存分配设备应用于计算机***中,所述计算机***包括内存资源、基本输入输出***BOIS和操作***OS,所述内存资源中包含初始镜像内存,在所述操作***运行时,在本发明实施例中,处理器430通过调用存储器440存储的操作指令(该操作指令可存储在操作***中),执行如下操作:
获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述OS初始化时所述BOIS向所述OS提供的镜像内存地址区间所指示的镜像内存;
对待分配内存的数据进行检测;
当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
本发明实施例中,内存分配设备40的BOIS向所述OS提供镜像内存地址区间,从而可以准确的找到镜像内存,并为需要存储到镜像内存的数据分配镜像内存,从而保证的有限镜像内存的使用效率,而且提高了***的可靠性。
处理器430控制内存分配设备40的操作,处理器430还可以称为CPU(CentralProcessing Unit,中央处理单元)。存储器440可以包括只读存储器和随机存取存储器,并向处理器430提供指令和数据。存储器440的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,内存分配设备40的各个组件通过总线***450耦合在一起,其中总线***450除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***450。
上述本发明实施例揭示的方法可以应用于处理器430中,或者由处理器430实现。处理器430可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器430中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器430可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器440,处理器430读取存储器440中的信息,结合其硬件完成上述方法的步骤。
可选地,所述处理器430还用于为内核数据和关键用户数据设置镜像标识,所述关键用户数据为用户指定的需要镜像存储的数据;检测所述待分配内存的数据是否携带有所述镜像标识;当检测到所述待分配内存的数据携带有所述镜像标识,确定所述待分配内存的数据为所述内核数据或所述关键用户数据,从所述未被占用的镜像内存中为所述内核数据或所述关键用户数据分配镜像内存。
可选地,所述处理器430还用于当所述待分配内存的数据为所述关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;若所述同一进程数据未存储到所述镜像内存中,则将所述同一进程数据转移到所述初始镜像内存中。
可选地,所述处理器430具体用于确定所述待存储到镜像内存的数据所属的预划分内存资源区域;从所述所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
可选地,所述处理器430还用于从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存之后,为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件(例如处理器)来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的媒体流信息更新的方法、装置以及***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种内存分配的方法,其特征在于,所述方法应用于计算机***中,所述计算机***包括内存资源、基本输入输出***BIOS和操作***OS,所述内存资源中包含初始镜像内存,在所述操作***OS运行时,所述方法包括:
获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述操作***OS初始化时所述基本输入输出***BIOS向所述操作***OS提供的镜像内存地址区间所指示的镜像内存;
对待分配内存的数据进行检测;
当检测到所述数据为待存储到镜像内存的数据时,从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存;
当所述待分配内存的数据为内核数据时:
所述对待分配内存的数据进行检测包括:在为所述内核数据分配内存时检测GFP_KERNEL中是否设置有_GFP_MIRROR标识,所述_GFP_MIRROR标识用于指示从所述未被占用的镜像内存中为所述待分配内存的数据分配镜像内存;
所述检测到所述数据为待存储到镜像内存的数据为确定所述GFP_KERNEL中设置了所述_GFP_MIRROR标识。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述待分配内存的数据为关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
若所述同一进程数据未存储到所述镜像内存中,则将所述同一进程数据转移到所述初始镜像内存中。
3.根据权利要求1-2任一所述的方法,其特征在于,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存,包括:
确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
从所述所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
4.根据权利要求1-2任一所述的方法,其特征在于,所述从所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存之后,所述方法还包括:
为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
5.一种内存分配的装置,其特征在于,所述装置应用于计算机***中,所述计算机***包括内存资源、基本输入输出***BIOS和操作***OS,所述内存资源中包含初始镜像内存,在所述操作***OS运行时,所述装置包括:
获取单元,用于获取所述初始镜像内存中未被占用的镜像内存,所述初始镜像内存为在所述操作***OS初始化时所述基本输入输出***BIOS向所述操作***OS提供的镜像内存地址区间所指示的镜像内存;
检测单元,用于对待分配内存的数据进行检测;
分配单元,用于当所述检测单元检测到所述数据为待存储到镜像内存的数据时,从所述获取单元获取的所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存;
当所述待分配内存的数据为内核数据时:
所述检测单元具体用于在为所述内核数据分配内存时检测GFP_KERNEL中是否设置有_GFP_MIRROR标识,所述_GFP_MIRROR标识用于指示从所述未被占用的镜像内存中为所述待分配内存的数据分配镜像内存;
所述分配单元具体用于在确定所述GFP_KERNEL中设置有所述_GFP_MIRROR标识时,从所述获取单元获取的所述未被占用的镜像内存中为所述待存储到镜像内存的数据分配镜像内存。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
确定单元,用于当所述待分配内存的数据为关键用户数据时,确定同一进程数据是否存储在所述初始镜像内存中,所述同一进程数据为在所述关键用户数据之前由产生所述关键用户数据的同一进程所产生的数据;
转移单元,用于当所述确定单元确定所述同一进程数据未存储到所述镜像内存中时,则将所述同一进程数据转移到所述初始镜像内存中。
7.根据权利要求5或6所述的装置,其特征在于,所述分配单元包括:
确定子单元,用于确定所述待存储到镜像内存的数据所属的预划分内存资源区域;
分配子单元,用于从所述确定子单元确定的所属的预划分内存资源区域的未被占用的镜像内存中,为所述待存储到镜像内存的数据分配镜像内存。
8.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:
第二设置单元,用于在所述分配单元分配镜像内存后,为所述待存储到镜像内存的数据所分配的镜像内存的地址区间设置已占用标记。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410471145.XA CN104252419B (zh) | 2014-09-16 | 2014-09-16 | 一种内存分配的方法及装置 |
JP2017512349A JP6478430B2 (ja) | 2014-09-16 | 2015-09-16 | メモリ割当て方法および装置 |
BR112017001965-5A BR112017001965B1 (pt) | 2014-09-16 | 2015-09-16 | Método de alocação de memória, aparelho e sistema de computador |
PCT/CN2015/089796 WO2016041501A1 (zh) | 2014-09-16 | 2015-09-16 | 一种内存分配的方法及装置 |
EP15841888.9A EP3171276B1 (en) | 2014-09-16 | 2015-09-16 | Memory allocation method and device |
KR1020177004358A KR101996975B1 (ko) | 2014-09-16 | 2015-09-16 | 메모리 할당 방법 및 장치 |
US15/460,132 US10353609B2 (en) | 2014-09-16 | 2017-03-15 | Memory allocation method and apparatus |
US16/425,872 US10990303B2 (en) | 2014-09-16 | 2019-05-29 | Memory allocation method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410471145.XA CN104252419B (zh) | 2014-09-16 | 2014-09-16 | 一种内存分配的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104252419A CN104252419A (zh) | 2014-12-31 |
CN104252419B true CN104252419B (zh) | 2017-09-19 |
Family
ID=52187342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410471145.XA Active CN104252419B (zh) | 2014-09-16 | 2014-09-16 | 一种内存分配的方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10353609B2 (zh) |
EP (1) | EP3171276B1 (zh) |
JP (1) | JP6478430B2 (zh) |
KR (1) | KR101996975B1 (zh) |
CN (1) | CN104252419B (zh) |
WO (1) | WO2016041501A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252419B (zh) | 2014-09-16 | 2017-09-19 | 华为技术有限公司 | 一种内存分配的方法及装置 |
CN106648938B (zh) * | 2016-12-30 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种Linux***应用程序内存管理方法及*** |
CN107704399B (zh) * | 2017-08-16 | 2021-01-29 | 华为技术有限公司 | 一种存储数据的方法和装置 |
CN110262893B (zh) | 2019-05-16 | 2021-08-20 | 华为技术有限公司 | 配置镜像内存的方法、装置及计算机存储介质 |
US11294692B2 (en) * | 2020-07-27 | 2022-04-05 | Dell Products L.P. | Basic input output system (BIOS)—identified memory size and node address range mirroring system |
CN114090223A (zh) * | 2020-08-24 | 2022-02-25 | 北京百度网讯科技有限公司 | 访存请求调度方法、装置、设备以及存储介质 |
JP7500400B2 (ja) * | 2020-11-18 | 2024-06-17 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法及びプログラム |
US11734176B2 (en) * | 2021-10-27 | 2023-08-22 | Dell Products L.P. | Sub-NUMA clustering fault resilient memory system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5651133A (en) * | 1995-02-01 | 1997-07-22 | Hewlett-Packard Company | Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system |
CN101937400A (zh) * | 2009-06-29 | 2011-01-05 | 联想(北京)有限公司 | 管理热备份内存的方法和电子设备 |
CN103136110A (zh) * | 2013-02-18 | 2013-06-05 | 华为技术有限公司 | 内存管理方法、内存管理装置及numa*** |
CN103324582A (zh) * | 2013-06-17 | 2013-09-25 | 华为技术有限公司 | 一种内存迁移方法、装置及设备 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6546472B2 (en) * | 2000-12-29 | 2003-04-08 | Hewlett-Packard Development Company, L.P. | Fast suspend to disk |
US7028215B2 (en) * | 2002-05-03 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Hot mirroring in a computer system with redundant memory subsystems |
US20050216552A1 (en) * | 2004-03-24 | 2005-09-29 | Samuel Fineberg | Communication-link-attached persistent memory system |
US20070214333A1 (en) * | 2006-03-10 | 2007-09-13 | Dell Products L.P. | Modifying node descriptors to reflect memory migration in an information handling system with non-uniform memory access |
US9262284B2 (en) * | 2006-12-07 | 2016-02-16 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Single channel memory mirror |
US20090006793A1 (en) * | 2007-06-30 | 2009-01-01 | Koichi Yamada | Method And Apparatus To Enable Runtime Memory Migration With Operating System Assistance |
CN101470667A (zh) | 2007-12-28 | 2009-07-01 | 英业达股份有限公司 | Linux***平台上指定地址范围分配物理内存的方法 |
JP2009199478A (ja) * | 2008-02-25 | 2009-09-03 | Hitachi Ltd | メモリミラーリング自動構成制御方式 |
US8151138B2 (en) * | 2008-10-31 | 2012-04-03 | Dell Products L.P. | Redundant memory architecture management methods and systems |
CN101604263A (zh) | 2009-07-13 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种实现操作***核心代码段多副本运行的方法 |
JP2011186563A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置およびメモリ管理方法 |
EP2455865B1 (en) | 2009-07-17 | 2020-03-04 | Toshiba Memory Corporation | Memory management device |
US8090977B2 (en) * | 2009-12-21 | 2012-01-03 | Intel Corporation | Performing redundant memory hopping |
US8335908B2 (en) * | 2010-07-01 | 2012-12-18 | Arm Limited | Data processing apparatus for storing address translations |
CN101901174B (zh) | 2010-07-28 | 2012-07-18 | 西安交通大学 | 基于代码段多副本对比机制提高程序可靠性方法 |
JP2012043246A (ja) | 2010-08-20 | 2012-03-01 | Canon Inc | 情報処理装置、情報処理装置の制御方法、及び、プログラム |
US8601310B2 (en) * | 2010-08-26 | 2013-12-03 | Cisco Technology, Inc. | Partial memory mirroring and error containment |
WO2011127862A2 (zh) | 2011-05-20 | 2011-10-20 | 华为技术有限公司 | 多线程访问多副本的方法和装置 |
US8898408B2 (en) * | 2011-12-12 | 2014-11-25 | Dell Products L.P. | Memory controller-independent memory mirroring |
US9037903B2 (en) | 2012-12-28 | 2015-05-19 | Intel Corporation | Apparatus and method for partial memory mirroring |
CN103198028B (zh) | 2013-03-18 | 2015-12-23 | 华为技术有限公司 | 一种内存数据迁移方法、装置及*** |
CN103389884A (zh) * | 2013-07-29 | 2013-11-13 | 华为技术有限公司 | 处理输入/输出请求的方法、宿主机、服务器和虚拟机 |
CN103530241B (zh) * | 2013-09-24 | 2016-04-13 | 创新科存储技术(深圳)有限公司 | 一种用户态的双控内存镜像实现方法 |
US9411695B2 (en) * | 2013-12-04 | 2016-08-09 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Provisioning memory in a memory system for mirroring |
CN104252419B (zh) | 2014-09-16 | 2017-09-19 | 华为技术有限公司 | 一种内存分配的方法及装置 |
US9753662B1 (en) * | 2016-09-26 | 2017-09-05 | International Business Machines Corporation | Using mirror indicators to determine whether to mirror tracks in a data set in a primary volume mirrored to a secondary volume |
-
2014
- 2014-09-16 CN CN201410471145.XA patent/CN104252419B/zh active Active
-
2015
- 2015-09-16 JP JP2017512349A patent/JP6478430B2/ja active Active
- 2015-09-16 WO PCT/CN2015/089796 patent/WO2016041501A1/zh active Application Filing
- 2015-09-16 EP EP15841888.9A patent/EP3171276B1/en active Active
- 2015-09-16 KR KR1020177004358A patent/KR101996975B1/ko active IP Right Grant
-
2017
- 2017-03-15 US US15/460,132 patent/US10353609B2/en active Active
-
2019
- 2019-05-29 US US16/425,872 patent/US10990303B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5651133A (en) * | 1995-02-01 | 1997-07-22 | Hewlett-Packard Company | Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system |
CN101937400A (zh) * | 2009-06-29 | 2011-01-05 | 联想(北京)有限公司 | 管理热备份内存的方法和电子设备 |
CN103136110A (zh) * | 2013-02-18 | 2013-06-05 | 华为技术有限公司 | 内存管理方法、内存管理装置及numa*** |
CN103324582A (zh) * | 2013-06-17 | 2013-09-25 | 华为技术有限公司 | 一种内存迁移方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
KR20170031230A (ko) | 2017-03-20 |
CN104252419A (zh) | 2014-12-31 |
JP2017531252A (ja) | 2017-10-19 |
US20190278499A1 (en) | 2019-09-12 |
KR101996975B1 (ko) | 2019-07-05 |
US10990303B2 (en) | 2021-04-27 |
US10353609B2 (en) | 2019-07-16 |
EP3171276A1 (en) | 2017-05-24 |
EP3171276B1 (en) | 2020-12-16 |
WO2016041501A1 (zh) | 2016-03-24 |
BR112017001965A2 (pt) | 2017-11-21 |
US20170185340A1 (en) | 2017-06-29 |
EP3171276A4 (en) | 2017-08-23 |
JP6478430B2 (ja) | 2019-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104252419B (zh) | 一种内存分配的方法及装置 | |
US8495318B2 (en) | Memory page management in a tiered memory system | |
CN109669640B (zh) | 一种数据存储方法、装置、电子设备及介质 | |
CN109753443B (zh) | 一种数据处理方法、装置及电子设备 | |
CN103198028A (zh) | 一种内存数据迁移方法、装置及*** | |
CN109656779A (zh) | 内存监控方法、装置、终端和存储介质 | |
US20170075614A1 (en) | Memory system and host apparatus | |
CN107783812B (zh) | 虚拟机内存管理方法及装置 | |
CN105786405A (zh) | 一种在线升级方法、装置及*** | |
CN104317734A (zh) | 一种适用于slab的内存分配方法及装置 | |
CN106294387B (zh) | 数据迁移方法和装置 | |
CN105988921A (zh) | 一种内存越界的检测方法及装置 | |
US9575796B2 (en) | Virtual device timeout by memory offlining | |
US11157389B1 (en) | Method for detecting memory leak based on linux kernel | |
US20180157605A1 (en) | Configuration of a memory controller for copy-on-write | |
US20150082014A1 (en) | Virtual Storage Devices Formed by Selected Partitions of a Physical Storage Device | |
CN104268089B (zh) | 一种信息更新的方法、装置及*** | |
CN104866388A (zh) | 数据处理方法及装置 | |
CN104182352A (zh) | 用于访问4gb以上物理内存地址空间的方法及装置 | |
CN115373964B (zh) | 内存越界检测方法、装置、设备及介质 | |
CN113868148A (zh) | 一种数据写入的方法及装置 | |
CN110287004B (zh) | 基于docker容器技术的基础环境镜像预热方法及装置 | |
US20160004444A1 (en) | Method and apparatus for applying storage functionality to each subsidiary volume | |
CN106815057A (zh) | 依需合并具有相同内容的页面的方法和*** | |
CN111190550B (zh) | 一种元数据加速方法、装置及存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150924 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant after: Huawei Technologies Co., Ltd. Address before: 310052 Binjiang District, Hangzhou Province, No. 301 Xing Xing Road, building A, room 3, building, Room 301 Applicant before: Hangzhou Huawei Digital Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |