CN113849311A - 内存空间管理方法、装置、计算机设备和存储介质 - Google Patents
内存空间管理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113849311A CN113849311A CN202111141857.1A CN202111141857A CN113849311A CN 113849311 A CN113849311 A CN 113849311A CN 202111141857 A CN202111141857 A CN 202111141857A CN 113849311 A CN113849311 A CN 113849311A
- Authority
- CN
- China
- Prior art keywords
- page
- memory
- application program
- level
- blocks
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 274
- 238000007726 management method Methods 0.000 title abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 30
- 238000012544 monitoring process Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种内存空间管理方法、装置、计算机设备和存储介质。内存空间管理方法包括:接收来自应用程序的内存空间请求,根据内存空间请求,确定内存空间请求对应的目标位阶,确定内存区中两个具有目标位阶的空闲页块作为待分配页块,将待分配页块分配给应用程序。实施本方法能降低应用程序申请内存的频率,也避免了内存资源过度闲置的情况。
Description
技术领域
本申请涉及存储管理技术领域,特别是涉及一种内存空间管理方法、装置、计算机设备和存储介质。
背景技术
为缓解内存碎片问题,操作系统在物理内存分配上采用伙伴系统技术。在应用程序向操作系统申请内存时,操作系统先确定是否存在大于或等于所需内存量的空闲页块,前述空闲页块的内存量是页框的内存量的2的M次方倍;若存在与所需内存量对应的空闲页块,则直接将该空闲页块分配给应用程序使用。若不存在与所需内存量对应的空闲页块,则将更大的空闲页块一分为二,其中一个分配给应用程序使用,另一个保留在操作系统中,前述更大的空闲页块的内存量是页框的内存量的2的(M+1)次方倍。
传统的伙伴系统技术采取按需分配策略,由于应用程序在运行过程中,不断产生新的内存需求,导致应用程序需要频繁地申请内存。
发明内容
基于此,有必要针对上述技术问题,提供一种能够改善应用程序频繁申请内存问题的内存空间管理方法、装置、计算机设备和存储介质。
一种内存空间管理方法,包括:
接收来自应用程序的内存空间请求;
根据内存空间请求,确定内存空间请求对应的目标位阶;
确定内存区中两个具有目标位阶的空闲页块作为待分配页块;
将待分配页块分配给应用程序。
在其中一个实施例中,确定内存区中两个具有目标位阶的空闲页块作为待分配页块,包括:
判断内存区是否存在两个具有目标位阶的空闲页块;
若不存在,则将内存区中位阶比目标位阶高一级的空闲页块划分为三个具有目标位阶的空闲页块;
将三个具有目标位阶的空闲页块中的两个空闲页块确定为待分配页块。
在其中一个实施例中,将内存区中位阶比目标位阶高一级的空闲页块划分为三个具有目标位阶的空闲页块,包括:
根据目标位阶,按位阶逐级递增的方式搜索,确定与目标位阶最接近的匹配位阶,内存区中存在具有匹配位阶的空闲页块;
将一个具有匹配位阶的空闲页块划分为多个具有不同位阶的空闲页块;不同位阶中的最低位阶为目标位阶;不同位阶中,除目标位阶外,每一位阶的空闲页块的数量为二;多个具有不同位阶的空闲页块中,具有目标位阶的空闲页块的数量为三。
在其中一个实施例中,内存空间管理方法还包括:
在将待分配页块分配给应用程序之前,在待分配页块的第一页框中写入预设的第一字符,第一页框用于为应用程序提供内存空间请求对应的空间申请量。
在其中一个实施例中,内存空间管理方法还包括:
在将待分配页块分配给应用程序之前,在待分配页块的第二页框中写入预设的第二字符,各第二页框的存储地址紧接对应的各第一页框的存储地址;
在将待分配页块分配给应用程序之后,监听应用程序的写操作,在应用程序的写操作结束时,判断第二页框的内容是否发生变化;
若发生变化,则向指定的终端发送第一报告。
在其中一个实施例中,内存空间管理方法还包括:
在将待分配页块分配给应用程序之后,监听应用程序的读操作;
在应用程序的读操作获得的内容包括第二字符时,判断读操作获得的第二字符对应的存储地址是否与第二页框的第二字符的存储地址重叠;
若重叠,则向指定的终端发送第二报告。
在其中一个实施例中,内存空间管理方法还包括:
接收应用程序的空间释放指令,空间释放指令用于指示释放应用程序已使用的第一页框的空间;
根据空间释放指令,释放应用程序已使用的第一页框的空间,并释放与应用程序已使用的第一页框对应的第二页框的空间。
一种内存空间管理装置,包括:
请求接收模块,用于接收来自应用程序的内存空间请求;
目标位阶确定模块,用于根据内存空间请求,确定内存空间请求对应的目标位阶;
待分配页块确定模块,用于确定内存区中两个具有目标位阶的空闲页块作为待分配页块;
分配模块,用于将待分配页块分配给应用程序。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收来自应用程序的内存空间请求;
根据内存空间请求,确定内存空间请求对应的目标位阶;
确定内存区中两个具有目标位阶的空闲页块作为待分配页块;
将待分配页块分配给应用程序。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收来自应用程序的内存空间请求;
根据内存空间请求,确定内存空间请求对应的目标位阶;
确定内存区中两个具有目标位阶的空闲页块作为待分配页块;
将待分配页块分配给应用程序。
上述内存空间管理方法、装置、计算机设备和存储介质,根据应用程序发送的内存空间请求,确定应用程序所需内存量对应的空闲页块的数量,将两个具有目标位阶的空闲页块作为待分配页块,分配给应用程序,使应用程序获得了两倍于所需内存量的内存空间,降低了应用程序申请内存的频率,也避免内存资源过度闲置的情况。
附图说明
图1为传统技术中的伙伴系统技术的页块位阶示意图;
图2为一个实施例中内存空间管理方法的流程示意图;
图3为一个实施例中涉及获取具有目标位阶的空闲页块步骤的流程示意图;
图4为一个实施例中内存空间管理装置的结构框图;
图5为一个实施例中计算机设备为服务器时的内部结构图;
图6为一个实施例中计算机设备为终端时的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
传统的内存分配技术采用伙伴系统技术,在进行内存分配时,采用“一分为二”的策略。以Linux(全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统)操作系统为例,图1展示了Linux操作系统的内存的布局情况,在NUMA(Non-Uniform Memory Access,可理解为“非一致存储访问结构”)模型中,每个CPU(Central Processing Unit,可理解为“中央处理器”)都拥有专属的本地内存节点(memory node),而且还可以通过QPI(QuickPath Interconnect,可理解为“快速通道互联”)总线访问其他CPU下挂的内存节点。Linux操作系统对所有的内存进行统一管理,但由于关联不同的CPU导致访问速度不同,因此又将内存划分为节点(node);在节点内部,又进一步细分为内存域(zone)。图1中,第一中央处理器101可以访问第一内存节点103,第二中央处理器102可以访问第二内存节点104,第一中央处理器101与第二中央处理器102之间还可以通过QPI相互通信,以访问另一方下挂的内存节点。第一内存节点103和第二内存节点104都可以采用数据结构105进行抽象描述,数据结构105为pg_data_t。图1还展示了对第一内存节点103进一步细分得到的第一内存域106,对第二内存节点104进一步细分得到的第二内存域107。第一内存域106和第二内存域107包括以下类型:
(1)zone_dma:指适合进行DMA(Direct Memory Access,可理解为“直接存储器访问”)的内存域,该内存域的长度依赖于处理器类型。
(2)zone_dma32:该内存域只在64位操作系统上有效,为一些32位外设DMA时分配内存。
(3)zone_normal:指可直接映射到内核空间的普通内存域。在64位操作系统上,如果物理内存小于4G,该内存域为空。而在32位系统上,该内存域的最大容量是896M。
(4)zone_highmem:高端内存域。只在32位操作系统上有效,标记超过896M范围的内存域。在64位操作系统上,由于地址空间巨大,超过4G的内存都分布在zone_normal内存域。
(5)zone_movable:伪内存域,主要是为了支持内存热插拔功能而存在。
第一内存域106和第二内存域107的数据结构中都包括了free_area数组,这种free_area数组用于链接不同内存量的页块,这些页块具有不同的位阶(order)。图1中不同内存量的页块108示出了0阶至10阶共11级不同的位阶。
不同内存量的页块108之中,11级不同的位阶对应的页块如下:2^0对应的页块为0阶页块,具有1个页框;2^1对应的页块为1阶页块,具有2个页框;2^2对应的页块为2阶页块,具有4个页框;2^3对应的页块为3阶页块,具有8个页框;2^4对应的页块为4阶页块,具有16个页框;2^5对应的页块为5阶页块,具有32个页框;2^6对应的页块为6阶页块,具有64个页框;2^7对应的页块为7阶页块,具有128个页框;2^8对应的页块为8阶页块,具有256个页框;2^9对应的页块为9阶页块,具有512个页框;2^10对应的页块为10阶页块,具有1024个页框。前述的页框也用于表示内存量,一个页框的内存量通常为4KB(4千字节)。
在应用程序向Linux操作系统申请内存时,例如需要新分配5KB的内存,即空间申请量为5KB,此时Linux操作系统先确定内存区是否存在大于或等于3KB的空闲页块,若有,则直接将一个页框分配给应用程序;若没有,则搜索是否存在1阶的空闲页块,若存在,则将1阶的空闲页块的两个页框中的其中一个分配给应用程序,另一个保留在内存区中,作为空闲页框供下次分配使用。这种传统技术,使得应用程序每次能获取到的空间申请量仅能满足应用程序的下一次操作所需的内存空间,但由于应用程序在未来所执行的操作往往是难以预估的,有时因连续执行多个操作很快又会面临内存不足的情况,或有时候在本次获取到的空间申请量的基础上,还差一点内存空间而无法执行再下一次的操作,这导致了应用程序不得不频繁向操作系统申请更多的内存空间,影响操作系统使用的流畅度,也频繁占用了线程。
不同于传统的伙伴系统技术,本申请提供了一种能够改善应用程序频繁申请内存问题的内存空间管理方法。
在一些实施例中,如图2所示,本申请提供的内存空间管理方法,包括以下步骤:
步骤S201,接收来自应用程序的内存空间请求;
步骤S202,根据内存空间请求,确定内存空间请求对应的目标位阶;
步骤S203,确定内存区中两个具有目标位阶的空闲页块作为待分配页块;
步骤S204,将待分配页块分配给应用程序。
通常,可以通过服务器或者终端来运行本申请提供的内存空间管理方法,在此不作特别限制,其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
本申请提供的内存空间管理方法既可以运用于Linux操作系统,也可以运用于其他类型的操作系统。
本申请提供的内存空间管理方法,根据应用程序发送的内存空间请求,确定应用程序所需内存量对应的空闲页块的数量,将两个具有目标位阶的空闲页块作为待分配页块,分配给应用程序,使应用程序获得了两倍于所需内存量的内存空间,降低了应用程序申请内存的频率,避免了应用系统需要频繁地申请和释放内存由此引发频繁的用户态和内核态的上下文切换从而严重影响系统运行性能的情况,也避免了内存资源过度闲置的情况。
在步骤S201中,应用程序是指为完成某项或多项特定工作的计算机程序,应用程序可以通过服务器或终端来运行。内存空间请求,用于向操作系统提出空间申请量,该空间申请量指应用程序为了实现预定操作而所需申请的内存量。一般来说,应用程序为了实现图像缓存、安全校验、文本编辑、录音录像等诸多预定操作,当前可支配的内存量不足时,则需要向操作系统发送内存空间请求,请求操作系统分配更多的内存量。
在步骤S202中,内存空间请求有对应的空间申请量,因此可以根据空间申请量来确定空闲页块所对应的目标位阶。一个具有目标位阶的页块的内存量大于等于空间申请量,且具有目标位阶的页块是能满足空间申请量的页块当中位阶最低的。也可以这样理解,目标位阶,是指能满足空间申请量的各种位阶的页块当中,最低位阶的页块所具有的位阶。例如,某个操作系统的内存区中,1阶页块的内存量为12KB时,2阶页块的内存量为36KB,3阶页块的内存量为108KB,当操作系统接收到应用程序的内存空间请求对应的空间申请量为20KB时,此时可以确定,2阶页块的内存量大于空间申请量,3阶页块的内存量也大于空间申请量,但2阶页块的位阶比3阶页块的位阶低,因此目标位阶为2阶。同样的情况,如果空间申请量为10KB,则1阶页块的内存量大于空间申请量,2阶页块的内存量大于空间申请量,3阶页块的内存量也大于空间申请量,而由于1阶页块的位阶最低,因此目标位阶为1阶。
在步骤S203中,空闲页块是指处于空闲状态的、可分配给应用程序使用的页块。
在步骤S203和S204中,确定内存区中两个具有目标位阶的空闲页块作为待分配页块并将两个具有目标位阶的空闲页块分配给应用程序,使应用程序提出的内存空间请求对应的空间申请量得到满足之余,还可以有更多的内存空间来使用,降低了应用程序向操作系统申请内存的频率。
在一些实施例中,如图3所示,步骤S203包括:
步骤S301,判断内存区是否存在两个具有目标位阶的空闲页块;
步骤S302,若不存在,则将内存区中位阶比目标位阶高一级的空闲页块划分为三个具有目标位阶的空闲页块;
步骤S303,将三个具有目标位阶的空闲页块中的两个空闲页块确定为待分配页块。
对应地,步骤S203还可以包括步骤S304:若内存区存在两个具有目标位阶的空闲页块,则将两个具有目标位阶的空闲页块确定为待分配页块。
在确定目标位阶之后,若当下的内存区没有足够数量的具有目标位阶的空闲页块,即当下具有目标位阶的空闲页块的数量为1或0时,则需要将更高阶的空闲页块进行划分。具体是将内存区中位阶比目标位阶高一级的空闲页块划分为三个具有目标位阶的空闲页块,这表示,高一级的空闲页块的内存量是目标位阶的空闲页块的内存量的三倍。在将三个具有目标位阶的空闲页块中的两个空闲页块确定为待分配页块后,剩下的一个空闲页块可以留在内存区,以供下次内存分配时使用或者供与其他空闲页块进行合并。
具体地,可以将操作系统管理的页块按不同的位阶来划分,位阶高的页块对应的内存量大,位阶低的页块对应的内存量小;或也可理解为位阶高一级的页块比位阶低一级的页块的内存量大。在一些方面,可以采用0-10的11级位阶对页块进行分类,在另一些方面,也可以采用其他的级数对页块进行分类,如将页块的位阶分为10级、9级、12级或其他。
一般来说,可以根据页块的位阶确定该页块所具有的页框的数量,例如本申请提供的内存空间管理方法中,0阶页块对应的页框数量为1个,1阶页块对应的页框数量为3个,2阶页块对应的页框数量为9个。页框数量可以根据下式确定:n=3m。其中,n表示一个页块中的页框数量,m表示该页块的位阶,位阶越高表示m越大。在此对步骤S301、步骤S302、步骤S303涉及的情况进行举例,以更方便理解。假设一个页框的内存量为4KB,来自应用程序的内存空间请求对应的空间申请量为40KB,此时执行步骤S202,可以确定目标位阶为3,即m=3,此时具有目标位阶的页块的内存量为(33×4)KB,即108KB,执行步骤S301时,发现此时内存区并没有3阶的空闲页块,进而执行步骤S302,将一个4阶的内存量为(34×4)KB的空闲页块划分为三个3阶的空闲页块,最后执行步骤S303,在三个3阶的空闲页块中选取两个作为待分配页块。这样意味着应用程序能获得216KB的新内存空间,使得应用程序在未来消耗了40KB的内存空间后,仍有一定的可用内存空间来进行其他操作,避免应用程序频繁发出内存空间请求,而且前述的可用内存空间不是特别大,不至于造成内存利用率低下的情况。
在一些实施例中,步骤S302具体包括以下操作:
根据目标位阶,按位阶逐级递增的方式搜索,确定与目标位阶最接近的匹配位阶,内存区中存在具有匹配位阶的空闲页块;
将一个具有匹配位阶的空闲页块划分为多个具有不同位阶的空闲页块;不同位阶中的最低位阶为目标位阶;不同位阶中,除目标位阶外,每一位阶的空闲页块的数量为二;多个具有不同位阶的空闲页块中,具有目标位阶的空闲页块的数量为三。
前述的按位阶逐级递增的方式搜索,是指在不存在低位阶的空闲页块时,则向高一级的位阶进行确认,搜索是否存在高一级的位阶的空闲页块,若仍不存在,则向更高一级的位阶进行确认,如此将位阶进行递增,逐级进行搜索。例如目标位阶为3阶时,若不存在两个3阶的空闲页块时,则将位阶递增一级,搜索是否存在4阶的空闲页块,若不存在4阶的空闲页块时,则将位阶递增一级,搜索是否存在5阶的空闲页块,若不存在5阶的空闲页块时,则将位阶递增一级,搜索是否存在6阶的空闲页块,若存在,则6阶为匹配位阶。
将一个具有匹配位阶的空闲页块划分为多个具有不同位阶的空闲页块,是指对具有匹配位阶的空闲页块进行“一分为三”的操作,即将高位阶的空闲页块划分为三个低位阶且内存量相同的空闲页块;然后将“一分为三”得到的某一个空闲页块再进行“一分为三”的操作,直至某一次“一分为三”得到的三个空闲页块的位阶为目标位阶。在此仍以6阶为匹配位阶,3阶为目标位阶的情况进行举例,此时将6阶的空闲页块划分为三个5阶的空闲页块,保留其中两个5阶的空闲页块,将最后一个5阶的空闲页块划分为三个4阶的空闲页块,保留其中两个4阶的空闲页块,将最后一个4阶的空闲页块划分为三个3阶的空闲页块。如此,便可以从三个3阶的空闲页块中,选择两个作为待分配页块,然后分配给应用程序进行使用。此时,前述的多个具有不同位阶的空闲页块便是具有5阶、4阶和3阶的空闲页块,不同位阶指5阶、4阶和3阶;前述的不同位阶中的最低位阶为目标位阶,便可以理解为5阶、4阶和3阶中的最低位阶——3阶为目标位阶;前述的不同位阶中,除目标位阶外,每一位阶的空闲页块的数量为二,则是指除3阶外,4阶的空闲页块的最终数量为二,5阶的空闲页块的最终数量也为二;前述的多个具有不同位阶的空闲页块中,具有目标位阶的空闲页块的数量为三,则是指具有3阶的空闲页块的数量为三。
在一些实施例中,内存空间管理方法还包括以下步骤:在执行步骤S204之前,即在将待分配页块分配给应用程序之前,在待分配页块的第一页框中写入预设的第一字符,第一页框用于为应用程序提供内存空间请求对应的空间申请量。
在第一页框预写入第一字符,可以覆盖第一页框此前记录下的其他代码,在该环节避免发生数据泄露的风险。应用程序后续可以在第一页框中写入新的代码,以实现对第一页框的使用。通常,第一字符的内容可以是“0x0”,其中0x表示十六进制,十六进制的“0x0”相当于二进制的“0”,这样当第一页框中预填了多个第一字符时,相当于是存储了多个“0”。第一字符的数量可以是多个的,甚至可以将多个第一字符填满第一页框,即第一页框对应的存储地址全部存储了“0”。当然,第一字符还可以被设计为其他内容,在此不作特别限制。
由于第一页框用于为应用程序提供内存空间请求对应的空间申请量,因此对应于每一内存空间请求,第一页框的数量由空间申请量和页框的内存量来决定,例如页框的内存量为4KB,空间申请量为40KB,则第一页框的数量可以是10个。在内存空间管理方法应用在不同的操作系统中,或根据设计人员的不同需求,页框的内存量可以是4KB以外的其他值,在此不作特别限制。
待分配页块中,除了具有第一页框外,还具有其他的页框,这些其他的页框可以用于供应用程序在后续的操作中使用,还可以用于其他途径,例如用于判断应用程序是否发生读溢出或写溢出的情况。
在一些实施例中,内存空间管理方法还包括以下步骤:在执行步骤S204之前,即在将待分配页块分配给应用程序之前,在待分配页块的第二页框中写入预设的第二字符,各第二页框的存储地址紧接对应的各第一页框的存储地址;在执行步骤S204之后,即在将待分配页块分配给应用程序之后,监听应用程序的写操作,在应用程序的写操作结束时,判断第二页框的内容是否发生变化;若发生变化,则向指定的终端发送第一报告。进一步地,若不发生变化,则不不执行发送第一报告的操作。
通常地,第二字符的内容可以是“0xFF”,其中的0x表示十六进制,十六进制的“0xFF”相当于二进制的“11111111”。当然,第二字符也可以采用其他的内容。第二字符的数量可以是多个,以填满第二页框的空间,在一些情况下,第二字符也可以不填满第二页框。第二页框和第二字符的作用主要是辅助识别溢出攻击行为。在正常情况下,若默认第一页框用于供应用程序进行写操作,则应用程序在进行正常的写操作所需的内存量应当小于一个或多个第一页框的内存量,如果遭受溢出攻击,则第一页框中由于被插入恶意代码而导致第一页框无法容纳所有恶意代码,一部分的恶意代码则会被存储在与第一页框紧接的第二页框中,此时第二页框中预填的第二字符将被恶意代码替换,因此第二页框的内容会发生变化,一旦第二页框的内容发生变化,则很有可能是遭受溢出攻击或发生了其他不正常的写溢出的事件,此时操作系统可以向指定的终端发送第一报告。
第一报告用于提示或警告发生写溢出事件,第一报告的具体内容在此不作特别限制,可以根据实际需要进行设计。指定的终端可以是用户的正在运行应用程序的终端,也可以是服务器管理人员所能控制的终端,还可以是指定的、其他用于接收第一报告的终端,在此也不作特别限制。
各第二页框的存储地址紧接对应的各第一页框的存储地址,意味着每一第一页框,均有一个与之对应的第二页框,也可以理解为,一个第一页框与一个对应的第二页框可以被视为一个储存组,当存在多个第一页框和多个第二页框,则表示存在多个储存组,每个储存组中的第一页框和第二页框具有对应关系,具体可以体现为存储地址是相连的,这样使得发生写溢出事件时,第一页框的内容与第二页框的内容是连贯的,此时很可能是连贯的恶意代码;若不发生写溢出事件,则第二页框的内容仍保持为预填的第二字符,在应用程序对一个第一页框的内存占用后,操作系统则可以指示应用程序使用其他的第一页框来进行正常的操作。通过在第二页框中预填第二字符,改变第二页框的内存空间使用情况,从而监测写溢出事件,能提升操作系统运行的安全度。
在一些实施例中,内存空间管理方法还包括以下步骤:在执行步骤S204之后,即在将待分配页块分配给应用程序之后,监听应用程序的读操作;在应用程序的读操作获得的内容包括第二字符时,判断读操作获得的第二字符对应的存储地址是否与第二页框的第二字符的存储地址重叠;若重叠,则向指定的终端发送第二报告。此处指定的终端,与上文提及的指定的终端是同一个终端。第二页框和第二字符的作用还可以是辅助判断是否发生读溢出的事件。应用程序在正常运行时,不会读取第二页框的内容。若遭受恶意网络攻击或发生异常事件,应用程序在读取数据时,会读取同一内存组的第一页框的内容以及还读取第二页框的内容,或者应用程序在读取数据时,直接读取第二页框的内容,通过检测应用程序读取的内容,若发现读取的内容中存在第二字符,则将读操作获得的内容中的第二字符的存储地址,与第二页框中的第二字符的存储地址进行比对,若发现比对结果是存储地址存在重叠,则说明读操作获得的内容,包括了第二页框中的内容,则向指定的终端发送第二报告。
第二报告用于提示或警告发生读溢出事件,第二报告的具体内容在此不作特别限制,可以根据实际需要进行设计。
在一些实施例中,内存空间管理方法还包括以下步骤:接收应用程序的空间释放指令,空间释放指令用于指示释放应用程序已使用的第一页框的空间;根据空间释放指令,释放应用程序已使用的第一页框的空间,并释放与应用程序已使用的第一页框对应的第二页框的空间。在应用程序需要释放某个第一页框的空间时,操作系统将第一页框的空间和对应的第二页框的空间进行释放,即操作系统将一个储存组的空间进行了释放。若应用程序需要释放多个第一页框的空间,则操作系统将多个储存组的空间进行释放。
应该理解的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图4所示,在一些实施例中,本申请提供了一种内存空间管理装置400,包括:
请求接收模块401,用于接收来自应用程序的内存空间请求;
目标位阶确定模块402,用于根据内存空间请求,确定内存空间请求对应的目标位阶;
待分配页块确定模块403,用于确定内存区中两个具有目标位阶的空闲页块作为待分配页块;
分配模块404,用于将待分配页块分配给应用程序。
在一些实施例中,待分配页块确定模块403包括:
第一判断单元(未图示),用于判断内存区是否存在两个具有目标位阶的空闲页块;
划分单元(未图示),用于在不存在两个具有目标位阶的空闲页块时,将内存区中位阶比目标位阶高一级的空闲页块划分为三个具有目标位阶的空闲页块;
确定单元(未图示),用于将三个具有目标位阶的空闲页块中的两个空闲页块确定为待分配页块。
在一些实施例中,划分单元根据目标位阶,按位阶逐级递增的方式搜索,确定与目标位阶最接近的匹配位阶,内存区中存在具有匹配位阶的空闲页块;将一个具有匹配位阶的空闲页块划分为多个具有不同位阶的空闲页块;不同位阶中的最低位阶为目标位阶;不同位阶中,除目标位阶外,每一位阶的空闲页块的数量为二;多个具有不同位阶的空闲页块中,具有目标位阶的空闲页块的数量为三。
在一些实施例中,内存空间管理装置400还包括第一写入模块(未图示),第一写入模块用于在将待分配页块分配给应用程序之前,在待分配页块的第一页框中写入预设的第一字符。第一页框用于为应用程序提供内存空间请求对应的空间申请量。
在一些实施例中,内存空间管理装置400还包括:
第二写入模块(未图示),用于在将待分配页块分配给应用程序之前,在待分配页块的第二页框中写入预设的第二字符,各第二页框的存储地址紧接对应的各第一页框的存储地址;
写操作监听模块(未图示),用于在将待分配页块分配给应用程序之后,监听应用程序的写操作,在应用程序的写操作结束时,判断第二页框的内容是否发生变化;
第一报告发送模块(未图示),用于在第二页框的内容发生变化时,向指定的终端发送第一报告。
在一些实施例中,内存空间管理装置400还包括:
读操作监听模块(未图示),用于在将待分配页块分配给应用程序之后,监听应用程序的读操作;
存储地址比对模块(未图示),用于在应用程序的读操作获得的内容包括第二字符时,判断读操作获得的第二字符对应的存储地址是否与第二页框的第二字符的存储地址重叠;
第二报告发送模块(未图示),用于在重叠时向指定的终端发送第二报告。
在一些实施例中,内存空间管理装置400还包括:
指令接收模块(未图示),用于接收应用程序的空间释放指令,空间释放指令用于指示释放应用程序已使用的第一页框的空间;
空间释放模块(未图示),用于根据空间释放指令,释放应用程序已使用的第一页框的空间,并释放与应用程序已使用的第一页框对应的第二页框的空间。
关于内存空间管理装置的具体限定可以参见上文中对于内存空间管理方法的限定,在此不再赘述。上述内存空间管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种内存空间管理方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种内存空间管理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5和图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收来自应用程序的内存空间请求;
根据内存空间请求,确定内存空间请求对应的目标位阶;
确定内存区中两个具有目标位阶的空闲页块作为待分配页块;
将待分配页块分配给应用程序。
在一个实施例中,处理器执行计算机程序时实现确定内存区中两个具有目标位阶的空闲页块作为待分配页块的步骤,包括:
判断内存区是否存在两个具有目标位阶的空闲页块;
若不存在,则将内存区中位阶比目标位阶高一级的空闲页块划分为三个具有目标位阶的空闲页块;
将三个具有目标位阶的空闲页块中的两个空闲页块确定为待分配页块。
在一个实施例中,处理器执行计算机程序时实现将内存区中位阶比目标位阶高一级的空闲页块划分为三个具有目标位阶的空闲页块的步骤,包括:
根据目标位阶,按位阶逐级递增的方式搜索,确定与目标位阶最接近的匹配位阶,内存区中存在具有匹配位阶的空闲页块;
将一个具有匹配位阶的空闲页块划分为多个具有不同位阶的空闲页块;不同位阶中的最低位阶为目标位阶;不同位阶中,除目标位阶外,每一位阶的空闲页块的数量为二;多个具有不同位阶的空闲页块中,具有目标位阶的空闲页块的数量为三。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在将待分配页块分配给应用程序之前,在待分配页块的第一页框中写入预设的第一字符,第一页框用于为应用程序提供内存空间请求对应的空间申请量。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在将待分配页块分配给应用程序之前,在待分配页块的第二页框中写入预设的第二字符,各第二页框的存储地址紧接对应的各第一页框的存储地址;
在将待分配页块分配给应用程序之后,监听应用程序的写操作,在应用程序的写操作结束时,判断第二页框的内容是否发生变化;
若发生变化,则向指定的终端发送第一报告。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在将待分配页块分配给应用程序之后,监听应用程序的读操作;
在应用程序的读操作获得的内容包括第二字符时,判断读操作获得的第二字符对应的存储地址是否与第二页框的第二字符的存储地址重叠;
若重叠,则向指定的终端发送第二报告。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收应用程序的空间释放指令,空间释放指令用于指示释放应用程序已使用的第一页框的空间;
根据空间释放指令,释放应用程序已使用的第一页框的空间,并释放与应用程序已使用的第一页框对应的第二页框的空间。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收来自应用程序的内存空间请求;
根据内存空间请求,确定内存空间请求对应的目标位阶;
确定内存区中两个具有目标位阶的空闲页块作为待分配页块;
将待分配页块分配给应用程序。
在一个实施例中,计算机程序被处理器执行时实现确定内存区中两个具有目标位阶的空闲页块作为待分配页块的步骤,包括:
判断内存区是否存在两个具有目标位阶的空闲页块;
若不存在,则将内存区中位阶比目标位阶高一级的空闲页块划分为三个具有目标位阶的空闲页块;
将三个具有目标位阶的空闲页块中的两个空闲页块确定为待分配页块。
在一个实施例中,计算机程序被处理器执行时实现将内存区中位阶比目标位阶高一级的空闲页块划分为三个具有目标位阶的空闲页块的步骤,包括:
根据目标位阶,按位阶逐级递增的方式搜索,确定与目标位阶最接近的匹配位阶,内存区中存在具有匹配位阶的空闲页块;
将一个具有匹配位阶的空闲页块划分为多个具有不同位阶的空闲页块;不同位阶中的最低位阶为目标位阶;不同位阶中,除目标位阶外,每一位阶的空闲页块的数量为二;多个具有不同位阶的空闲页块中,具有目标位阶的空闲页块的数量为三。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在将待分配页块分配给应用程序之前,在待分配页块的第一页框中写入预设的第一字符,第一页框用于为应用程序提供内存空间请求对应的空间申请量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在将待分配页块分配给应用程序之前,在待分配页块的第二页框中写入预设的第二字符,各第二页框的存储地址紧接对应的各第一页框的存储地址;
在将待分配页块分配给应用程序之后,监听应用程序的写操作,在应用程序的写操作结束时,判断第二页框的内容是否发生变化;
若发生变化,则向指定的终端发送第一报告。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在将待分配页块分配给应用程序之后,监听应用程序的读操作;
在应用程序的读操作获得的内容包括第二字符时,判断读操作获得的第二字符对应的存储地址是否与第二页框的第二字符的存储地址重叠;
若重叠,则向指定的终端发送第二报告。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收应用程序的空间释放指令,空间释放指令用于指示释放应用程序已使用的第一页框的空间;
根据空间释放指令,释放应用程序已使用的第一页框的空间,并释放与应用程序已使用的第一页框对应的第二页框的空间。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,前述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种内存空间管理方法,其特征在于,所述方法包括:
接收来自应用程序的内存空间请求;
根据所述内存空间请求,确定所述内存空间请求对应的目标位阶;
确定内存区中两个具有所述目标位阶的空闲页块作为待分配页块;
将所述待分配页块分配给所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述确定内存区中两个具有所述目标位阶的空闲页块作为待分配页块,包括:
判断所述内存区是否存在两个具有所述目标位阶的空闲页块;
若不存在,则将所述内存区中位阶比所述目标位阶高一级的空闲页块划分为三个具有所述目标位阶的空闲页块;
将所述三个具有所述目标位阶的空闲页块中的两个空闲页块确定为所述待分配页块。
3.根据权利要求2所述的方法,其特征在于,所述将所述内存区中位阶比所述目标位阶高一级的空闲页块划分为三个具有所述目标位阶的空闲页块,包括:
根据所述目标位阶,按位阶逐级递增的方式搜索,确定与所述目标位阶最接近的匹配位阶,所述内存区中存在具有所述匹配位阶的空闲页块;
将一个具有所述匹配位阶的空闲页块划分为多个具有不同位阶的空闲页块;所述不同位阶中的最低位阶为所述目标位阶;所述不同位阶中,除所述目标位阶外,每一位阶的空闲页块的数量为二;所述多个具有不同位阶的空闲页块中,具有所述目标位阶的空闲页块的数量为三。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述将所述待分配页块分配给所述应用程序之前,在所述待分配页块的第一页框中写入预设的第一字符,所述第一页框用于为所述应用程序提供所述内存空间请求对应的空间申请量。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述将所述待分配页块分配给所述应用程序之前,在所述待分配页块的第二页框中写入预设的第二字符,各所述第二页框的存储地址紧接对应的各所述第一页框的存储地址;
在所述将所述待分配页块分配给所述应用程序之后,监听所述应用程序的写操作,在所述应用程序的写操作结束时,判断所述第二页框的内容是否发生变化;
若发生变化,则向指定的终端发送第一报告。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述将所述待分配页块分配给所述应用程序之后,监听所述应用程序的读操作;
在所述应用程序的读操作获得的内容包括所述第二字符时,判断所述读操作获得的第二字符对应的存储地址是否与所述第二页框的第二字符的存储地址重叠;
若重叠,则向所述指定的终端发送第二报告。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述应用程序的空间释放指令,所述空间释放指令用于指示释放所述应用程序已使用的第一页框的空间;
根据所述空间释放指令,释放所述应用程序已使用的第一页框的空间,并释放与所述应用程序已使用的第一页框对应的第二页框的空间。
8.一种内存空间管理装置,其特征在于,所述装置包括:
请求接收模块,用于接收来自应用程序的内存空间请求;
目标位阶确定模块,用于根据所述内存空间请求,确定所述内存空间请求对应的目标位阶;
待分配页块确定模块,用于确定内存区中两个具有所述目标位阶的空闲页块作为待分配页块;
分配模块,用于将所述待分配页块分配给所述应用程序。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111141857.1A CN113849311B (zh) | 2021-09-28 | 2021-09-28 | 内存空间管理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111141857.1A CN113849311B (zh) | 2021-09-28 | 2021-09-28 | 内存空间管理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113849311A true CN113849311A (zh) | 2021-12-28 |
CN113849311B CN113849311B (zh) | 2023-11-17 |
Family
ID=78980258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111141857.1A Active CN113849311B (zh) | 2021-09-28 | 2021-09-28 | 内存空间管理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113849311B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129621A (zh) * | 2022-09-01 | 2022-09-30 | 珠海星云智联科技有限公司 | 一种内存管理方法、设备、介质及内存管理模块 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106168926A (zh) * | 2016-05-20 | 2016-11-30 | 朱宗卫 | 基于linux伙伴系统的内存分配方法 |
WO2016187974A1 (zh) * | 2015-05-25 | 2016-12-01 | 中兴通讯股份有限公司 | 一种存储空间管理方法及装置 |
CN110209490A (zh) * | 2018-04-27 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种内存管理方法及相关设备 |
CN110515727A (zh) * | 2019-08-16 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种fpga的内存空间操作方法及相关装置 |
CN111078406A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
-
2021
- 2021-09-28 CN CN202111141857.1A patent/CN113849311B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016187974A1 (zh) * | 2015-05-25 | 2016-12-01 | 中兴通讯股份有限公司 | 一种存储空间管理方法及装置 |
CN106294190A (zh) * | 2015-05-25 | 2017-01-04 | 中兴通讯股份有限公司 | 一种存储空间管理方法及装置 |
CN106168926A (zh) * | 2016-05-20 | 2016-11-30 | 朱宗卫 | 基于linux伙伴系统的内存分配方法 |
CN110209490A (zh) * | 2018-04-27 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种内存管理方法及相关设备 |
CN110515727A (zh) * | 2019-08-16 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种fpga的内存空间操作方法及相关装置 |
CN111078406A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
宋锦华;马传琦;: "Linux内存管理-Buddy算法探究", 福建电脑, no. 01 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129621A (zh) * | 2022-09-01 | 2022-09-30 | 珠海星云智联科技有限公司 | 一种内存管理方法、设备、介质及内存管理模块 |
CN115129621B (zh) * | 2022-09-01 | 2022-12-02 | 珠海星云智联科技有限公司 | 一种内存管理方法、设备、介质及内存管理模块 |
Also Published As
Publication number | Publication date |
---|---|
CN113849311B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8850158B2 (en) | Apparatus for processing remote page fault and method thereof | |
US11593186B2 (en) | Multi-level caching to deploy local volatile memory, local persistent memory, and remote persistent memory | |
WO2017050028A1 (zh) | 一种固态硬盘的数据擦除方法及装置 | |
US7971026B2 (en) | Information processing apparatus and access control method | |
CN109582600B (zh) | 一种数据处理方法及装置 | |
CN109977037B (zh) | 一种dma数据传输方法及系统 | |
CN110399217B (zh) | 一种内存资源分配方法、装置及设备 | |
CN104461735A (zh) | 一种虚拟化场景下分配cpu资源的方法和装置 | |
KR20160064720A (ko) | 캐시 메모리 장치 및 이를 포함하는 전자 시스템 | |
EP4293523A1 (en) | Technologies for memory tagging | |
WO2024099448A1 (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
CN111309267A (zh) | 存储空间的分配方法、装置、存储设备及存储介质 | |
CN114238165B (zh) | 数据处理方法、数据处理装置以及存储介质 | |
US9772776B2 (en) | Per-memory group swap device | |
CN113849311B (zh) | 内存空间管理方法、装置、计算机设备和存储介质 | |
CN117769700A (zh) | 动态可分配物理寻址元数据存储库 | |
US10073851B2 (en) | Fast new file creation cache | |
US7793051B1 (en) | Global shared memory subsystem | |
CN112162818B (zh) | 一种虚拟内存分配方法、装置、电子设备及存储介质 | |
US11726681B2 (en) | Method and system for converting electronic flash storage device to byte-addressable nonvolatile memory module | |
US11307999B2 (en) | Data cache segregation for spectre mitigation | |
KR101950759B1 (ko) | 저장 장치의 메모리 컨트롤러가 수행하는 가비지 컬렉션 방법 및 메모리 컨트롤러 | |
CN113961302A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN106295413B (zh) | 半导体装置 | |
CN114518962A (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 |