CN109445943A - 内核态系统中i/o栈的内存管理方法、系统及相关装置 - Google Patents

内核态系统中i/o栈的内存管理方法、系统及相关装置 Download PDF

Info

Publication number
CN109445943A
CN109445943A CN201811245448.4A CN201811245448A CN109445943A CN 109445943 A CN109445943 A CN 109445943A CN 201811245448 A CN201811245448 A CN 201811245448A CN 109445943 A CN109445943 A CN 109445943A
Authority
CN
China
Prior art keywords
memory
stack
ram
reserved
module
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.)
Pending
Application number
CN201811245448.4A
Other languages
English (en)
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201811245448.4A priority Critical patent/CN109445943A/zh
Publication of CN109445943A publication Critical patent/CN109445943A/zh
Pending legal-status Critical Current

Links

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • 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

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 (AREA)

Abstract

本申请所提供的一种内核态系统中I/O栈的内存管理方法,包括:根据总RAM剩余值和I/O栈需求内存量判断是否允许预留内存;若是,根据总RAM剩余值和I/O栈需求内存量得到实际内存预留量,并预留RAM内存,得到预留内存。通过获取总RAM剩余值和I/O栈需求内存量,判断是否允许预留内存,并在允许时为I/O栈提前预留内存,且该内存仅供I/O栈以预先设置的特殊接口进行申请,保证文件系统回写过程或回收内存pageout时I/O栈内存充足,不会发生内存回收导致资源死锁。本申请还提供一种内核态系统中I/O栈的内存管理系统、一种计算机可读存储介质和一种终端,具有上述有益效果。

Description

内核态系统中I/O栈的内存管理方法、系统及相关装置
技术领域
本申请涉及操作系统领域,特别涉及一种内核态系统中I/O栈的内存管理方法、系统及相关装置。
背景技术
在linux系统中,空闲的内存用来做ache、buffer使用,缓存文件系统元数据、文件数据页及块设备文件数据,这样较之从物理硬盘直接读取/写入数据大大提高了linux系统I/O速率。Linux vfs在一定时机通过pdflush或bdi机制来对缓存的数据回写,回写时机包括kupdate定时刷写、dirty balance控制脏页比例、内存不足时回写释放内存和调用sync等系统调用的主动刷写动作。
每个内存zone有三个watermark:WMARK_MIN、WMARK_LOW和WMARK_HIGH。当zone中空闲内存小于WMARK_LOW时kswapd被唤醒开始回收内存,当空闲内存小于WMARK_MIN时代表空闲内存极度匮乏内存回收压力很大,相反如果空闲内存量大于WMARK_HIGH时kswpd结束回收进入睡眠。在每个zone回收内存时,会根据zone_reclaim_mode模式决定内存获取的手段:从其他zone获取、将脏页写回磁盘(pageout)或将脏数据交换到交换分区中(swapout)。
基于以上机制,可以保证在原生linux系统中内存管理子系统具有高度的稳定性。但是在存储领域中,开发者需要对块设备I/O系统开发各种各样的高级特性I/O栈,例如灾备功能、精简卷、数据加密、数据压缩、冗余备份等,这些I/O栈分布在从用户程序到物理磁盘的I/O通路上。在I/O栈开发过程中,同样需要对内存资源进行分配用来管理和存储I/O数据,常用的内存分配接口有kmem_cache_alloc分配slab内存、kmalloc、vmalloc建立非连续物理内存到虚拟地址的映射或__get_free_pages直接对页框进行分配,如果对内存的错误使用会导致包括内存泄漏、死锁、数据丢失的风险。在文件系统回写过程或回收内存pageout时,I/O途径上述I/O栈仍然需要消耗一定的内存资源,内存不足时I/O栈模块同样需要发起内存回收进程获取内存;极限情况下会导致系统的多层I/O栈对内存产生竞态,导致在内存资源上的活锁或死锁产生。
发明内容
本申请的目的是提供一种内核态系统中I/O栈的内存管理方法、系统、一种计算机可读存储介质和一种终端,解决现有的系统中多层I/O栈容易出现内存活锁或死锁现象。
为解决上述技术问题,本申请提供一种内核态系统中I/O栈的内存管理方法,具体技术方案如下:
获取总RAM剩余值和I/O栈需求内存量;
根据所述总RAM剩余值和所述I/O栈需求内存量判断是否允许预留内存;
若是,根据所述总RAM剩余值和所述I/O栈需求内存量得到实际内存预留量;
根据所述实际内存预留量预留RAM内存,得到预留内存;
其中,所述预留内存供所述I/O栈以第一预设接口进行申请。
其中,根据所述实际内存预留量预留RAM内存,得到预留内存包括:
根据所述实际内存预留量,以mempool+GFP_NOIO的方式预留RAM内存,得到预留内存。
其中,根据所述实际内存预留量预留RAM内存,得到预留内存包括:
根据所述实际内存预留量,以get_free_pages+GFP_NOIO的方式预留RAM内存,得到预留内存。
其中,还包括:
当目标I/O栈对应的已申请内存使用完毕后,判断所述使用内存是否为所述预留内存;
若是,调用第二预设接口释放所述已使用内存;
若否,调用kfress或free_pages释放所述已使用内存。
本申请还提供一种内核态系统中I/O栈的内存管理系统,包括:
获取模块,用于获取总RAM剩余值和I/O栈需求内存量;
判断模块,用于根据所述总RAM剩余值和所述I/O栈需求内存量判断是否允许预留内存;
计算模块,用于若所述判断模块判断结果为是时,根据所述总RAM剩余值和所述I/O栈需求内存量得到实际内存预留量;
预留模块,用于根据所述实际内存预留量预留RAM内存,得到预留内存;
其中,所述预留内存供所述I/O栈以第一预设接口进行申请。
其中,所述预留模块具体为根据所述实际内存预留量,以mempool+GFP_NOIO的方式预留RAM内存,得到预留内存的模块。
其中,所述预留模块具体为根据所述实际内存预留量,以get_free_pages+GFP_NOIO的方式预留RAM内存,得到预留内存的模块。
其中,还包括:
第二判断模块,用于当目标I/O栈对应的已申请内存使用完毕后,判断所述使用内存是否为所述预留内存;
第一释放模块,用于所述第二判断模块判断为是时,调用第二预设接口释放所述已使用内存;
第二释放模块,用于所述第二判断模块判断为否时,调用kfress或free_pages释放所述已使用内存。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的内存管理方法的步骤。
本申请还提供一种终端,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的内存管理方法的步骤。
本申请所提供的一种内核态系统中I/O栈的内存管理方法,包括:获取总RAM剩余值和I/O栈需求内存量;根据所述总RAM剩余值和所述I/O栈需求内存量判断是否允许预留内存;若是,根据所述总RAM剩余值和所述I/O栈需求内存量得到实际内存预留量;根据所述实际内存预留量预留RAM内存,得到预留内存;其中,所述预留内存供所述I/O栈以第一预设接口进行申请。
本申请通过获取总RAM剩余值和I/O栈需求内存量,判断是否允许预留内存,并在允许时为I/O栈提前预留内存,且该内存仅供I/O栈以预先设置的特殊接口进行申请,保证文件系统回写过程或回收内存pageout时I/O栈内存充足,不会发生内存回收导致资源死锁。本申请还提供一种内核态系统中I/O栈的内存管理系统、一种计算机可读存储介质和一种终端,具有上述有益效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种内核态系统中I/O栈的内存管理方法的流程图;
图2为本申请实施例所提供的一种内核态系统中I/O栈的内存管理系统结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种内核态系统中I/O栈的内存管理方法的流程图,该方法包括:
S101:获取总RAM剩余值和I/O栈需求内存量;
本步骤旨在获取系统中的总RAM剩余值和I/O栈需求内存量。此时,可以将所有I/O栈当成一个I/O栈模块,则I/O栈需求内存量也即I/O栈模块所需求的内存量。
在内核引导后,先于I/O栈模块进行加载,通过综合判断系统总RAM剩余大小和I/O栈模块期望预留内存量,以准备预留一定数量的RAM内存用于后续I/O栈模块使用。
S102:根据所述总RAM剩余值和所述I/O栈需求内存量判断是否允许预留内存;若是,进入S103;
本步骤旨在根据S101中获取的总RAM剩余值和I/O栈需求内存量判断当前系统是否允许预留内存,可以理解的是,当系统总RAM剩余值较小时,不适合为I/O栈建立其独有的预留内存。在此对于本步骤具体的判断标准不作限定,优选的,在此提供一种具体的判断过程:
计算总RAM剩余值和I/O栈需求内存量,按页分配的页数量在I/O栈注册的基础上需要多申请30%内存,用于弥补各页数量内存分组与实际使用可能不匹配的问题。
当系统总内存剩余量小于8GB时,如果totalfree–reserve<2GB,不允许预留内存,系统oops告警。
当系统总内存剩余量大于等于8GB时,如果预留量大于free内存的70%,不允许预留内存,系统oops告警。其他情况则可进行预留内存。
S103:根据所述总RAM剩余值和所述I/O栈需求内存量得到实际内存预留量;
当允许预留内存时,则需要计算实际内存预留量。通常实际内存预留量可以高于理论计算值。当然,计算实际内存预留量时还可以利用预设的修正参数,在此不作具体限定。
S104:根据所述实际内存预留量预留RAM内存,得到预留内存;
在此对于如何预留RAM内存不作限定,优选的,本申请实施例在此提供两种预留方法:
1、根据所述实际内存预留量,以mempool+GFP_NOIO的方式预留RAM内存,得到预留内存。
2、根据所述实际内存预留量,以get_free_pages+GFP_NOIO的方式预留RAM内存,得到预留内存。
需要说明的是,方法1针对不同分配单元按256byte、512byte、1kb、2kb、4kb、8kb、16kb、32kb、64kb等大小按组进行分配,该方式应对于一些少量内存频繁使用的场景,例如变量、结构体等用于管理I/O的数据结构。方法2也是按1、2、4、8、16、32、64等不同页数量分组进行预留分配,该预留方式供直接数据存储的场景使用,I/O栈模块按需从不同页数量的区域获取内存页。这两种实现会对预留的内存一直持有,不会因为linux系统的的页回收机制而被释放。使用GFP_NOIO标识申请内存对I/O栈模块必要的,这样可以避免内存回收造成的死锁。
需要说明的是,所述预留内存供所述I/O栈以第一预设接口进行申请。预留内存仅供I/O栈以预设接口进行申请,换句话说,这样保证了预留内存不会被其他进行所占用,避免了I/O栈内存不足带来了死锁或活锁问题。
本申请实施例提供了一种内核态系统中I/O栈的内存管理方法,通过获取总RAM剩余值和I/O栈需求内存量,判断是否允许预留内存,并在允许时为I/O栈提前预留内存,且该内存仅供I/O栈以预先设置的特殊接口进行申请,保证文件系统回写过程或回收内存pageout时I/O栈内存充足,不会发生内存回收导致资源死锁。
以下对本申请实施例提供的包括第一预设接口在内的所有用户提供接口进行介绍,需要说明的时,第一预设接口实际上是内存申请接口。而用户提供接口包括内存申请、内存查询、内存释放、内存预留等功能的接口。
用户使用接口供各注册的I/O栈模块调取,I/O栈注册时可以通过stor_mem_reserve对小块内存请求进行预留,输入参数包括对象符号和预留数量;通过stor_pages_reserve对整页内存进行预留,输入参数包括单次申请的页数量和总内存量。
当I/O栈模块需要申请小块内存时可以通过stor_mem_alloc接口进行申请,该接口参数为要申请的数据结构符号,并返回对象指针;当申请大量内存时使用stor_pages_alloc进行按页申请,该接口参数为申请页的数量,并返回第一个字节的指针,内存申请后I/O栈模块可以自由使用。
当预留区内指定大小内存组内内存不足时,会向下一个内存组进行借用,借用总大小不大于该组的30%内存量,当借用内存组均不能满足申请需求时,会直接调用kmalloc+GFP_NOIO或__get_free_pages+GFP_NOIO进行申请。
对于申请的内存使用完毕后,I/O栈模块可以使用stor_mem_free对小块内存进行释放,该接口需要输入分配时返回的对象指针;使用stor_pages_alloc对整页内存进行释放,该接口参数为地址指针。对于直接申请的内存,在申请时会通过链接记录地址在释放时调用kfree和free_pages进行释放。
另外,还提供内存余量查询接口便于I/O栈模块根据查询结果灵活调整内存策略,查询小块内存余量可以使用接口stor_mem_query,输入参数为对象符号,该接口返回数据包括:内存组编号、内存余量、申请类型(正常申请/借用);查询整页内存余量可以使用接口stor_pages_query,输入参数为内存页数量,返回数据包括:内存组编号、内存余量、申请类型(正常申请/借用)。
可以理解的是,以上各具体接口名称仅为本申请实施例提供的优选的接口,在此基础上还可以使用其他具有相同或相近功能的接口,在此不一一举例限定。
基于上述实施例,作为优选的实施例,本申请实施例对于预留内存申请过程进行更详细的说明:
I/O栈模块通过指定接口从指定内存分组中获取内存。指定内存分组指的是预留内存中的分组内存。
步骤一:I/O栈模块调用stor_mem_query或stor_pages_query接口查询剩余内存分组剩余量。
步骤二:对于stor_mem_query调用,判断对象是否合法然后计算对象大小,到相应内存分组中获取剩余内存数量,如果内存分组剩余不足则到借用分组进行查询,如果仍然不能满足返回NOMEM。对于stor_pages_query调用,到相应内存页分组中获取剩余内存数量,如果内存分组剩余不足则到借用分组进行查询,如果仍然不能满足返回NOMEM。
步骤三:I/O栈模块调用stor_mem_alloc输入对象符号进行小块内存申请。调用stor_pages_alloc接口输入页数量按页进行内存申请。
步骤四:对于stor_mem_alloc接口,判断对象是否注册然后获取对象大小,到第一个不小于该大小的内存分组中进行分配并返回地址指针。对于调用stor_pages_alloc接口的按页分配请求,先判断申请大小是否合法,然后到相应页数量的内存分组中获取未使用的页指针,返回给I/O栈使用。
步骤五:当申请的内存分组中剩余内存不能满足需求时,会向下一内存分组进行借用,如果借用分组剩余内存不足30%,借用失败。直接调用kmalloc对小块内存进行分配,并记录分配方式;系统直接调用__get_free_pages对按页内存进行分配,并记录分配方式。
基于上述实施例,作为优选的实施例,本申请实施例对于内存释放过程进行更详细的说明:
当I/O模块使用完申请的内存后,调用内存释放接口释放内存。
步骤一:I/O栈模块调用stor_mem_free输入内存地址进行小块内存进行释放。调用stor_pages_free接口输入页指针进行释放。
步骤二:对于调用stor_mem_free接口,本系统使用mempool_free接口在对应的内存分组中释放该地址。对于调用stor_pages_free接口,从对应的内存页分组中直接标记改页为未使用。
步骤三:如果该内存为直接分配内存,即不为预留内存,则根据记录的分配类型调用kfree或free_pages进行内存释放。
下面对本申请实施例提供的一种内核态系统中I/O栈的内存管理系统进行介绍,下文描述的内存管理系统与上文描述的内存管理方法可相互对应参照。
参加图2,图2为本申请实施例所提供的一种内核态系统中I/O栈的内存管理系统结构示意图,本申请还提供一种内核态系统中I/O栈的内存管理系统,具体技术方案如下:
获取模块100,用于获取总RAM剩余值和I/O栈需求内存量;
判断模块200,用于根据所述总RAM剩余值和所述I/O栈需求内存量判断是否允许预留内存;
计算模块300,用于若所述判断模块判断结果为是时,根据所述总RAM剩余值和所述I/O栈需求内存量得到实际内存预留量;
预留模块400,用于根据所述实际内存预留量预留RAM内存,得到预留内存;其中,所述预留内存供所述I/O栈以第一预设接口进行申请。
基于上述实施例,作为优选的实施例,所述预留模块400具体为根据所述实际内存预留量,以mempool+GFP_NOIO的方式预留RAM内存,得到预留内存的模块。
基于上述实施例,作为优选的实施例,所述预留模块400具体为根据所述实际内存预留量,以get_free_pages+GFP_NOIO的方式预留RAM内存,得到预留内存的模块。
基于上述实施例,作为优选的实施例,所述内存管理系统还包括:
第二判断模块,用于当目标I/O栈对应的已申请内存使用完毕后,判断所述使用内存是否为所述预留内存;
第一释放模块,用于所述第二判断模块判断为是时,调用第二预设接口释放所述已使用内存;
第二释放模块,用于所述第二判断模块判断为否时,调用kfress或free_pages释放所述已使用内存。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的一种内核态系统中I/O栈的内存管理方法的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种终端,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供一种内核态系统中I/O栈的内存管理方法的步骤。当然所述终端还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种内核态系统中I/O栈的内存管理方法,其特征在于,包括:
获取总RAM剩余值和I/O栈需求内存量;
根据所述总RAM剩余值和所述I/O栈需求内存量判断是否允许预留内存;
若是,根据所述总RAM剩余值和所述I/O栈需求内存量得到实际内存预留量;
根据所述实际内存预留量预留RAM内存,得到预留内存;
其中,所述预留内存供所述I/O栈以第一预设接口进行申请。
2.根据权利要求1所述的内存管理方法,其特征在于,根据所述实际内存预留量预留RAM内存,得到预留内存包括:
根据所述实际内存预留量,以mempool+GFP_NOIO的方式预留RAM内存,得到预留内存。
3.根据权利要求1所述的内存管理方法,其特征在于,根据所述实际内存预留量预留RAM内存,得到预留内存包括:
根据所述实际内存预留量,以get_free_pages+GFP_NOIO的方式预留RAM内存,得到预留内存。
4.根据权利要求1所述的内存管理方法,其特征在于,还包括:
当目标I/O栈对应的已申请内存使用完毕后,判断所述使用内存是否为所述预留内存;
若是,调用第二预设接口释放所述已使用内存;
若否,调用kfress或free_pages释放所述已使用内存。
5.一种内核态系统中I/O栈的内存管理系统,其特征在于,包括:
获取模块,用于获取总RAM剩余值和I/O栈需求内存量;
判断模块,用于根据所述总RAM剩余值和所述I/O栈需求内存量判断是否允许预留内存;
计算模块,用于若所述判断模块判断结果为是时,根据所述总RAM剩余值和所述I/O栈需求内存量得到实际内存预留量;
预留模块,用于根据所述实际内存预留量预留RAM内存,得到预留内存;
其中,所述预留内存供所述I/O栈以第一预设接口进行申请。
6.根据权利要求5所述的内存管理系统,其特征在于,所述预留模块具体为根据所述实际内存预留量,以mempool+GFP_NOIO的方式预留RAM内存,得到预留内存的模块。
7.根据权利要求5所述的内存管理系统,其特征在于,所述预留模块具体为根据所述实际内存预留量,以get_free_pages+GFP_NOIO的方式预留RAM内存,得到预留内存的模块。
8.根据权利要求5所述的内存管理系统,其特征在于,还包括:
第二判断模块,用于当目标I/O栈对应的已申请内存使用完毕后,判断所述使用内存是否为所述预留内存;
第一释放模块,用于所述第二判断模块判断为是时,调用第二预设接口释放所述已使用内存;
第二释放模块,用于所述第二判断模块判断为否时,调用kfress或free_pages释放所述已使用内存。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4任一项所述的内存管理方法的步骤。
10.一种终端,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-4任一项所述的内存管理方法的步骤。
CN201811245448.4A 2018-10-24 2018-10-24 内核态系统中i/o栈的内存管理方法、系统及相关装置 Pending CN109445943A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811245448.4A CN109445943A (zh) 2018-10-24 2018-10-24 内核态系统中i/o栈的内存管理方法、系统及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811245448.4A CN109445943A (zh) 2018-10-24 2018-10-24 内核态系统中i/o栈的内存管理方法、系统及相关装置

Publications (1)

Publication Number Publication Date
CN109445943A true CN109445943A (zh) 2019-03-08

Family

ID=65547492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811245448.4A Pending CN109445943A (zh) 2018-10-24 2018-10-24 内核态系统中i/o栈的内存管理方法、系统及相关装置

Country Status (1)

Country Link
CN (1) CN109445943A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488316A (zh) * 2020-04-12 2020-08-04 杭州迪普科技股份有限公司 文件缓存回收方法及装置
CN111736997A (zh) * 2020-06-18 2020-10-02 北京达佳互联信息技术有限公司 内存分配方法、装置、电子设备及存储介质
CN112527490A (zh) * 2019-09-17 2021-03-19 广州虎牙科技有限公司 节点资源管控方法、装置、电子设备及存储介质
CN112764930A (zh) * 2021-01-22 2021-05-07 山东云海国创云计算装备产业创新中心有限公司 一种内存分配方法、装置、设备及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984417A (zh) * 2010-11-01 2011-03-09 中兴通讯股份有限公司 内存管理方法及装置
CN103136105A (zh) * 2011-11-28 2013-06-05 广东新岸线计算机系统芯片有限公司 一种内存管理方法、嵌入式系统和视频数据处理系统
CN106648907A (zh) * 2017-02-24 2017-05-10 郑州云海信息技术有限公司 一种提高内存复用的方法和装置
CN106776046A (zh) * 2017-01-13 2017-05-31 郑州云海信息技术有限公司 一种scst读写优化方法及系统
CN106776368A (zh) * 2016-11-29 2017-05-31 郑州云海信息技术有限公司 一种数据读取时的缓存管理方法、装置及系统
CN108337109A (zh) * 2017-12-28 2018-07-27 中兴通讯股份有限公司 一种资源分配方法及装置和资源分配系统
CN108519863A (zh) * 2018-04-12 2018-09-11 郑州云海信息技术有限公司 一种存储系统的io管理方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984417A (zh) * 2010-11-01 2011-03-09 中兴通讯股份有限公司 内存管理方法及装置
CN103136105A (zh) * 2011-11-28 2013-06-05 广东新岸线计算机系统芯片有限公司 一种内存管理方法、嵌入式系统和视频数据处理系统
CN106776368A (zh) * 2016-11-29 2017-05-31 郑州云海信息技术有限公司 一种数据读取时的缓存管理方法、装置及系统
CN106776046A (zh) * 2017-01-13 2017-05-31 郑州云海信息技术有限公司 一种scst读写优化方法及系统
CN106648907A (zh) * 2017-02-24 2017-05-10 郑州云海信息技术有限公司 一种提高内存复用的方法和装置
CN108337109A (zh) * 2017-12-28 2018-07-27 中兴通讯股份有限公司 一种资源分配方法及装置和资源分配系统
CN108519863A (zh) * 2018-04-12 2018-09-11 郑州云海信息技术有限公司 一种存储系统的io管理方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527490A (zh) * 2019-09-17 2021-03-19 广州虎牙科技有限公司 节点资源管控方法、装置、电子设备及存储介质
CN112527490B (zh) * 2019-09-17 2024-02-09 广州虎牙科技有限公司 节点资源管控方法、装置、电子设备及存储介质
CN111488316A (zh) * 2020-04-12 2020-08-04 杭州迪普科技股份有限公司 文件缓存回收方法及装置
CN111488316B (zh) * 2020-04-12 2023-09-22 杭州迪普科技股份有限公司 文件缓存回收方法及装置
CN111736997A (zh) * 2020-06-18 2020-10-02 北京达佳互联信息技术有限公司 内存分配方法、装置、电子设备及存储介质
CN112764930A (zh) * 2021-01-22 2021-05-07 山东云海国创云计算装备产业创新中心有限公司 一种内存分配方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US10552337B2 (en) Memory management and device
US8805902B2 (en) Managing snapshot storage pools
US9355028B2 (en) Data-storage device and flash memory control method
CN101997918B (zh) 异构san环境中的海量存储资源按需分配的实现方法
US7363456B2 (en) System and method of allocating contiguous memory in a data processing system
US20090210464A1 (en) Storage management system and method thereof
CN109445943A (zh) 内核态系统中i/o栈的内存管理方法、系统及相关装置
US20200192600A1 (en) Memory system and method for controlling nonvolatile
CN104407926B (zh) 一种云计算资源的调度方法
CN107783812B (zh) 虚拟机内存管理方法及装置
JP2009525555A (ja) 装置の非アクティブな期間の間、dramの未使用部分のリフレッシュを動作不能にすることによって電力消費量を低減すること
CN101702138A (zh) 一种内存管理方法、系统及服务器
WO2016112713A1 (zh) 一种对内存中内存页的处理方法及装置
CN103106150B (zh) 一种实现存储系统自动精简配置和精简分配的方法
CN111104219A (zh) 虚拟核心与物理核心的绑定方法、装置、设备及存储介质
CN103218305B (zh) 存储空间的分配方法
CN102063338A (zh) 一种请求独占资源的方法及装置
WO2021047425A1 (zh) 一种持久性内存的虚拟化方法及系统
CN109815005A (zh) 一种管理内存的方法、装置和存储系统
KR101061483B1 (ko) 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법
CN109960471A (zh) 数据存储方法、装置、设备以及存储介质
CN102567225A (zh) 一种管理系统内存的方法及装置
CN115168259A (zh) 一种数据存取方法、装置、设备和计算机可读存储介质
CN104111896A (zh) 大数据处理中的虚拟内存管理方法及其装置
US7793051B1 (en) Global shared memory subsystem

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190308

RJ01 Rejection of invention patent application after publication