CN108132842A - 一种嵌入式软件内存管理系统 - Google Patents
一种嵌入式软件内存管理系统 Download PDFInfo
- Publication number
- CN108132842A CN108132842A CN201711347960.5A CN201711347960A CN108132842A CN 108132842 A CN108132842 A CN 108132842A CN 201711347960 A CN201711347960 A CN 201711347960A CN 108132842 A CN108132842 A CN 108132842A
- Authority
- CN
- China
- Prior art keywords
- memory
- block
- free
- pool
- size
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
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 (AREA)
Abstract
本发明涉及一种嵌入式软件内存管理系统,涉及嵌入式软件内存管理技术领域。本发明采用静态分配的方式,预先设定好系统内存区中的分区数量和各个分区中内存块的数量和大小,然后基于池式内存管理机制对用户内存区采用动态内存分配的方式,通过创建内存分配器处理内存申请和释放请求,并对传统的动态内存分配和释放算法进行了改进。该方法采用静态分配系统内存区和动态分配用户内存区相结合的方式,增加了系统的灵活性,同时也限制了大量碎片的产生,避免了内存泄露的出现,且该方法能够有效降低申请和释放内存的时间耗费,提高动态内存管理效率。
Description
技术领域
本发明涉及嵌入式软件内存管理技术领域,具体涉及一种嵌入式软件内存管理系统。
背景技术
由于嵌入式系统的实时性、灵活性和稳定性要求,对内存管理有着特殊的策略。良好的程序性能部分依赖于其有效的内存管理能力,而常规的堆内存管理器的性能会受到内存碎片和内存回收需求的影响,尤其是在内存频繁分配和释放的应用环境中,更容易成为系统性能的瓶颈。不仅如此,潜在的内存泄露可能会使长时间运行的系统内存耗尽,导致系统性能急剧下降直至最后宕机。为解决嵌入式系统在内存分配时带来的堆中内存有碎片,同时在分配与回收时所需时间不确定等问题,一般采用内存池分配内存。传统内存池管理机制只能分配大小固定的内存块,灵活性差;其它的内存池管理方法虽然可以实现动态分配内存块,但是内存池管理的内存空间通过定义全局数组的方法创建,将数组名作为内存池地址指针传递给生成函数,这种做法显然不够灵活。
为了克服现有内存池管理机制存在的不足,需要提出一种嵌入式软件内存管理方案。
发明内容
(一)要解决的技术问题
本发明是克服现有内存池管理机制存在的不足,提出一种嵌入式软件内存管理方案。
(二)技术方案
为了解决上述技术问题,本发明提供了一种嵌入式软件内存管理系统,包括系统内存区的静态内存分配模块和用户内存区的动态内存分配模块;
所述系统内存区的静态内存分配模块用于通过如下方式进行系统内存区的静态内存分配:
系统内存区通过Partition_Create()函数创建内存分区,每个块内存的第一部分存储分区对象,其后才是各个内存块,且在内存区中设置一个全局链表来存储所有的内存分区指针,内存分区的数量可动态定义,对链表中的分区按照每个分区中内存块的大小进行排序,内存块小的分区排在前面,内存块大的分区排在后面;
在申请内存块时,采用first-fit方法从系统内存区的分区链表中找到合适大小的内存分区,如果该分区空闲内存链表不为空,则返回该链表的第一个内存块地址,如果为空则查看下一块分区;如果找不到合适大小的内存分区,则返回空指针;
所述用户内存区的动态内存分配用于通过如下方式进行用户内存区的动态内存分配:
采用池式内存分配方法在程序运行前在内存池中预先分配好一块内存区,然后对内存进行分配,空闲内存块在内存池中按照从小到大的顺序以双向链表进行组织,内存池的结构由两部分组成:内存块管理头节点和可供用户读写的内存;所述内存块管理头节点包括内存池的起始地址、内存池的总大小、最大可用连续空间的大小、指向内存块双向链表的指针、指向空闲内存块的双向链表的指针和指向下一个内存池的指针;
当用户程序申请内存时,为每块内存池设置失败因子和跳转指针两个字段,所述失败因子用于记录“查找满足需求的内存池”的次数,所述跳转指针用于表示扫描内存池时下一个要跳转的节点,在顺序查找该内存池的空闲内存块双向链表时,对于失败因子高于预设阈值的节点则直接跳过;若查找到第一个满足分配字节大小要求的空闲块,将该空闲块从双向链表上移除;若未找到合适大小的空闲内存块,则重新创建一块新的内存池;如果查找到的空闲内存块大小除了能够满足用户程序所申请的字节数要求外还有一定大小的可用空闲空间,则将其分割为两个新的内存块,其中一块是为用户程序分配的内存,将其占用标志置为“占用”,另一块是可供用户程序后续申请分配的新空闲块,将其占用标志置为“空闲”,并将其作为新的空闲块按照一定方式插入到空闲块双向链表中;否则,直接将该内存块返回给用户程序。
优选地,所述系统内存区的静态内存分配模块还用于,在回收或释放内存块时,首先检查内存块属于哪个内存分区,在找到所属的内存分区后,直接把该内存块放到该分区空闲内存链表的尾部。
优选地,所述一定方式为向前查找插入法:由于分割后得到的新空闲块的大小一定小于原空闲块,因此从原空闲块在空闲块链表中的位置向前查找到合适的位置,将新的空闲块插入到该位置上即可。
优选地,所述用户内存区的动态内存分配模块还用于,在对用户的内存进行动态回收或释放时,首先对待回收或释放的内存块向前偏移内存块管理头节点大小的字节数,找到内存块管理头节点,将其中的占用标志置为空闲;通过内存块管理头节点找到其所属内存池的内存池管理头节点,然后检测与待回收或释放内存块相邻的块是否为空闲块,若是空闲块,则进行内存块的合并操作,将合并后的空闲块按照预设方法插入到所属内存池的空闲内存块链表的合适位置;否则,直接将待回收或释放内存块作为一个新空闲块从头查找并插入到所属内存池的空闲块链表中,回收或释放完成后更新内存池管理头节点中的最大可用连续空间的值。
优选地,所述预设方法为向后查找插入法:由于合并后得到的新空闲块的大小一定大于原相邻空闲块,因此从原空闲块在空闲块链表中的位置向后查找到合适的位置,将新空闲块插入到该位置上即可。
(三)有益效果
本发明采用静态分配的方式,预先设定好系统内存区中的分区数量和各个分区中内存块的数量和大小,然后基于池式内存管理机制对用户内存区采用动态内存分配的方式,通过创建内存分配器处理内存申请和释放请求,并对传统的动态内存分配和释放算法进行了改进。该方法采用静态分配系统内存区和动态分配用户内存区相结合的方式,增加了系统的灵活性,同时也限制了大量碎片的产生,避免了内存泄露的出现,且该方法能够有效降低申请和释放内存的时间耗费,提高动态内存管理效率。
附图说明
图1是本发明中创建系统内存区流程图;
图2是本发明中用户内存区内存分配流程图;
图3是本发明中用户内存区内存回收/释放流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为了提高嵌入式系统内存的利用率,有效解决内存碎片和内存泄露问题,并实现内存的快速分配和释放,本发明提出一种嵌入式软件内存管理系统。该系统采用静态分配的方式,预先设定好系统内存区中的分区数量和各个分区中内存块的数量和大小,然后基于池式内存管理机制对用户内存区采用动态内存分配的方式,通过创建内存分配器处理内存申请和释放请求,并对传统的动态内存分配和释放算法进行了改进。该系统采用静态分配系统内存区和动态分配用户内存区相结合的方式,增加了系统的灵活性,同时也限制了大量碎片的产生,避免了内存泄露的出现,且该系统能够有效降低申请和释放内存的时间耗费,提高动态内存管理效率。
该系统包括系统内存区的静态内存分配模块和用户内存区的动态内存分配模块;
系统内存区的静态内存分配模块用于按照如下方式进行系统内存区的静态内存分配:
系统内存区通过Partition_Create()函数创建内存分区,创建系统内存区流程图,如图1所示。
每个块内存的第一部分存储该分区对象,其后才是各个内存块。在系统内存区中设置一个全局链表来存储所有的内存分区指针,系统内存分区的数量可以动态定义。对链表中的分区需按照每个分区中内存块的大小进行排序,内存块小的分区排在前面,内存块大的分区排在后面,这样做的好处是在采用了经典的first-fit算法后,可以减少内存浪费。
在申请内存块时,采用first-fit方法从系统内存区的分区链表中找到合适大小的内存分区,如果该分区空闲内存链表不为空,则返回该链表第一个内存块地址,否则查看下一块分区。如果找不到合适的内存块,则返回空指针。
回收/释放内存块时,首先检查该内存块属于哪个内存分区,在找到所属的内存分区后,直接把该内存块放到该分区空闲内存链表的尾部。
用户内存区的动态内存分配模块用于按照如下方式进行用户内存区的动态内存分配:
传统的动态内存分配需要频繁调用malloc/free函数,这样会产生大量的内存碎片。本发明采用池式内存分配方法可在程序运行前在内存池中预先分配好一块内存区,然后采用高效的内存管理算法对内存进行分配,可以有效降低内存碎片的产生,提高内存利用率。
和传统的池式内存分配方法相比,本发明提出的动态内存分配方法的优势在于能够明显提高空闲内存块链表的查找效率,减少内存申请与回收/释放的时间耗费,进而减少内存碎片。
空闲内存块在内存池中按照从小到大的顺序以双向链表进行组织。内存池的结构由两部分组成:内存块管理头节点和可供用户读写的内存。内存块管理头节点包括内存池的起始地址、内存池的总大小、最大可用连续空间的大小、指向内存块双向链表的指针、指向空闲内存块的双向链表的指针和指向下一个内存池的指针。
1)动态内存分配方法
当用户程序申请内存时,为每块内存池设置失败因子和跳转指针两个字段,失败因子用于记录“查找满足需求的内存池”的次数,跳转指针用于表示扫描内存池时下一个要跳转的节点。在顺序查找该内存池的空闲内存块双向链表时,对于失败因子过高(具体数值可根据实际需要设置)的节点则直接跳过,这样做可避免大量无效的扫描和判断,大大提高扫描的成功率,降低平均扫描时间;若查找到第一个满足分配字节大小要求的空闲块,将该空闲块从双向链表上移除;若未找到合适大小的空闲内存块,则重新创建一块新的内存池。
如果查找到的空闲内存块大小除了能够满足用户程序所申请的字节数要求外还有一定大小的可用空闲空间,则将其分割为两个新的内存块,其中一块是为用户程序分配的内存,将其占用标志置为“占用”,另一块是可供用户程序后续申请分配的新空闲块,将其占用标志置为“空闲”,并将其作为新的空闲块按照“向前查找插入法”插入到空闲块双向链表中;否则,直接将该内存块返回给用户程序。
“向前查找插入法”的思想是:由于分割后得到的新空闲块的大小一定小于原空闲块,因此从原空闲块在空闲块链表中的位置向前查找到合适的位置,将新空闲块插入到该位置上即可。这样做的好处是不必从头遍历整个空闲块链表,从而提高了空闲块链表的查找效率。
用户内存区内存分配的流程图如图2所示。
2)动态内存回收/释放方法
如图3所示,在对用户的内存进行动态回收/释放时,首先对待回收/释放的内存块向前偏移内存块管理头节点大小的字节数,找到内存块管理头节点,将其中的占用标志置为空闲;通过内存块管理头节点找到其所属内存池的内存池管理头节点,然后检测与待回收/释放内存块相邻的块是否为空闲块,若是空闲块,则进行内存块的合并操作,将合并后的空闲块按照“向后查找插入法”插入到所属内存池的空闲内存块链表的合适位置;否则,直接将待回收/释放内存块作为一个新空闲块从头查找并插入到所属内存池的空闲块链表中。回收/释放完成后更新内存池管理头节点中的最大可用连续空间的值。
“向后查找插入法”的思想是:由于合并后得到的新空闲块的大小一定大于原相邻空闲块,因此从原空闲块在空闲块链表中的位置向后查找到合适的位置,将新空闲块插入到该位置上即可。这样做的好处是不必从头遍历整个空闲块链表,从而提高了空闲块链表的查找效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (5)
1.一种嵌入式软件内存管理系统,其特征在于,包括系统内存区的静态内存分配模块和用户内存区的动态内存分配模块;
所述系统内存区的静态内存分配模块用于通过如下方式进行系统内存区的静态内存分配:
系统内存区通过Partition_Create()函数创建内存分区,每个块内存的第一部分存储分区对象,其后才是各个内存块,且在内存区中设置一个全局链表来存储所有的内存分区指针,内存分区的数量可动态定义,对链表中的分区按照每个分区中内存块的大小进行排序,内存块小的分区排在前面,内存块大的分区排在后面;
在申请内存块时,采用first-fit方法从系统内存区的分区链表中找到合适大小的内存分区,如果该分区空闲内存链表不为空,则返回该链表的第一个内存块地址,如果为空则查看下一块分区;如果找不到合适大小的内存分区,则返回空指针;
所述用户内存区的动态内存分配用于通过如下方式进行用户内存区的动态内存分配:
采用池式内存分配方法在程序运行前在内存池中预先分配好一块内存区,然后对内存进行分配,空闲内存块在内存池中按照从小到大的顺序以双向链表进行组织,内存池的结构由两部分组成:内存块管理头节点和可供用户读写的内存;所述内存块管理头节点包括内存池的起始地址、内存池的总大小、最大可用连续空间的大小、指向内存块双向链表的指针、指向空闲内存块的双向链表的指针和指向下一个内存池的指针;
当用户程序申请内存时,为每块内存池设置失败因子和跳转指针两个字段,所述失败因子用于记录“查找满足需求的内存池”的次数,所述跳转指针用于表示扫描内存池时下一个要跳转的节点,在顺序查找该内存池的空闲内存块双向链表时,对于失败因子高于预设阈值的节点则直接跳过;若查找到第一个满足分配字节大小要求的空闲块,将该空闲块从双向链表上移除;若未找到合适大小的空闲内存块,则重新创建一块新的内存池;如果查找到的空闲内存块大小除了能够满足用户程序所申请的字节数要求外还有一定大小的可用空闲空间,则将其分割为两个新的内存块,其中一块是为用户程序分配的内存,将其占用标志置为“占用”,另一块是可供用户程序后续申请分配的新空闲块,将其占用标志置为“空闲”,并将其作为新的空闲块按照一定方式插入到空闲块双向链表中;否则,直接将该内存块返回给用户程序。
2.如权利要求1所述的系统,其特征在于,所述系统内存区的静态内存分配模块还用于,在回收或释放内存块时,首先检查内存块属于哪个内存分区,在找到所属的内存分区后,直接把该内存块放到该分区空闲内存链表的尾部。
3.如权利要求1所述的系统,其特征在于,所述一定方式为向前查找插入法:由于分割后得到的新空闲块的大小一定小于原空闲块,因此从原空闲块在空闲块链表中的位置向前查找到合适的位置,将新的空闲块插入到该位置上即可。
4.如权利要求1所述的系统,其特征在于,所述用户内存区的动态内存分配模块还用于,在对用户的内存进行动态回收或释放时,首先对待回收或释放的内存块向前偏移内存块管理头节点大小的字节数,找到内存块管理头节点,将其中的占用标志置为空闲;通过内存块管理头节点找到其所属内存池的内存池管理头节点,然后检测与待回收或释放内存块相邻的块是否为空闲块,若是空闲块,则进行内存块的合并操作,将合并后的空闲块按照预设方法插入到所属内存池的空闲内存块链表的合适位置;否则,直接将待回收或释放内存块作为一个新空闲块从头查找并插入到所属内存池的空闲块链表中,回收或释放完成后更新内存池管理头节点中的最大可用连续空间的值。
5.如权利要求4所述的系统,其特征在于,所述预设方法为向后查找插入法:由于合并后得到的新空闲块的大小一定大于原相邻空闲块,因此从原空闲块在空闲块链表中的位置向后查找到合适的位置,将新空闲块插入到该位置上即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711347960.5A CN108132842B (zh) | 2017-12-15 | 2017-12-15 | 一种嵌入式软件内存管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711347960.5A CN108132842B (zh) | 2017-12-15 | 2017-12-15 | 一种嵌入式软件内存管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108132842A true CN108132842A (zh) | 2018-06-08 |
CN108132842B CN108132842B (zh) | 2021-11-02 |
Family
ID=62389523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711347960.5A Active CN108132842B (zh) | 2017-12-15 | 2017-12-15 | 一种嵌入式软件内存管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108132842B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144718A (zh) * | 2018-07-06 | 2019-01-04 | 北京比特大陆科技有限公司 | 一种内存分配方法、内存释放方法以及相关设备 |
CN109445724A (zh) * | 2018-10-12 | 2019-03-08 | 森大(深圳)技术有限公司 | 打印内存管理方法、装置及设备 |
CN109471771A (zh) * | 2018-10-19 | 2019-03-15 | 许昌许继软件技术有限公司 | 一种Nucleus系统的动态内存池监测方法及装置 |
CN109918203A (zh) * | 2019-03-18 | 2019-06-21 | 深圳市网心科技有限公司 | 接入服务器内存管理优化方法、接入服务器及通信系统 |
CN110109677A (zh) * | 2019-05-07 | 2019-08-09 | 北京善讯互动科技有限公司 | 一种动态对象缓存池分配方法 |
CN110532198A (zh) * | 2019-09-09 | 2019-12-03 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
CN110928680A (zh) * | 2019-11-09 | 2020-03-27 | 上交所技术有限责任公司 | 一种适用于证券交易系统的订单内存分配方法 |
CN111007986A (zh) * | 2019-11-04 | 2020-04-14 | 厦门天锐科技股份有限公司 | 一种基于内存的文本分段传递的方法及装置 |
CN111309289A (zh) * | 2019-11-19 | 2020-06-19 | 上海金融期货信息技术有限公司 | 一种内存池管理组件 |
CN111414254A (zh) * | 2020-03-19 | 2020-07-14 | Oppo广东移动通信有限公司 | 设备管理方法、装置、存储介质及电子设备 |
CN111984425A (zh) * | 2020-09-30 | 2020-11-24 | 杭州未名信科科技有限公司 | 用于操作系统的内存管理方法、装置及设备 |
CN112463355A (zh) * | 2020-10-22 | 2021-03-09 | 北京航空航天大学 | 基于哈希的用户态内存申请固定缓存方法 |
CN113010453A (zh) * | 2021-04-12 | 2021-06-22 | 杭州和利时自动化有限公司 | 一种内存管理的方法、系统、设备及可读存储介质 |
CN113051081A (zh) * | 2021-06-01 | 2021-06-29 | 广东省新一代通信与网络创新研究院 | 基于内存池的事件状态管理方法、系统及存储介质 |
CN113419715A (zh) * | 2021-06-17 | 2021-09-21 | 吕锦柏 | 一种基于链表的动态内存管理方法和设备 |
CN117724991A (zh) * | 2023-12-21 | 2024-03-19 | 北京凯思昊鹏软件工程技术有限公司 | 嵌入式系统的动态内存管理方法、系统、终端及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154851A1 (en) * | 2004-01-14 | 2005-07-14 | Charles Andrew A. | Fast, high reliability dynamic memory manager |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
US20130104053A1 (en) * | 2010-05-06 | 2013-04-25 | Microsoft Corporation | Techniques to share media files through messaging |
CN104063328A (zh) * | 2014-04-04 | 2014-09-24 | 浪潮电子信息产业股份有限公司 | 一种缓解碎片产生的内存管理方法 |
CN104412233A (zh) * | 2013-05-30 | 2015-03-11 | 英特尔公司 | 流水线调度中混叠寄存器的分配 |
CN105718319A (zh) * | 2016-02-23 | 2016-06-29 | 中国科学院微电子研究所 | 一种内存池版图解析方法和内存池装置 |
CN106294190A (zh) * | 2015-05-25 | 2017-01-04 | 中兴通讯股份有限公司 | 一种存储空间管理方法及装置 |
CN106445691A (zh) * | 2016-11-25 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种面向虚拟化云计算平台的内存优化的方法 |
CN106649150A (zh) * | 2016-12-26 | 2017-05-10 | 锐捷网络股份有限公司 | 一种缓存管理方法及装置 |
CN106681842A (zh) * | 2017-01-18 | 2017-05-17 | 迈普通信技术股份有限公司 | 一种多进程系统中共享内存的管理方法及装置 |
CN106681829A (zh) * | 2016-12-09 | 2017-05-17 | 上海斐讯数据通信技术有限公司 | 一种内存管理方法及系统 |
-
2017
- 2017-12-15 CN CN201711347960.5A patent/CN108132842B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154851A1 (en) * | 2004-01-14 | 2005-07-14 | Charles Andrew A. | Fast, high reliability dynamic memory manager |
US20130104053A1 (en) * | 2010-05-06 | 2013-04-25 | Microsoft Corporation | Techniques to share media files through messaging |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
CN104412233A (zh) * | 2013-05-30 | 2015-03-11 | 英特尔公司 | 流水线调度中混叠寄存器的分配 |
CN104063328A (zh) * | 2014-04-04 | 2014-09-24 | 浪潮电子信息产业股份有限公司 | 一种缓解碎片产生的内存管理方法 |
CN106294190A (zh) * | 2015-05-25 | 2017-01-04 | 中兴通讯股份有限公司 | 一种存储空间管理方法及装置 |
CN105718319A (zh) * | 2016-02-23 | 2016-06-29 | 中国科学院微电子研究所 | 一种内存池版图解析方法和内存池装置 |
CN106445691A (zh) * | 2016-11-25 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种面向虚拟化云计算平台的内存优化的方法 |
CN106681829A (zh) * | 2016-12-09 | 2017-05-17 | 上海斐讯数据通信技术有限公司 | 一种内存管理方法及系统 |
CN106649150A (zh) * | 2016-12-26 | 2017-05-10 | 锐捷网络股份有限公司 | 一种缓存管理方法及装置 |
CN106681842A (zh) * | 2017-01-18 | 2017-05-17 | 迈普通信技术股份有限公司 | 一种多进程系统中共享内存的管理方法及装置 |
Non-Patent Citations (3)
Title |
---|
BHARAT SUKHWANI: ""A Hardware/Software Approach for Database Query Acceleration with FPGAs"", 《INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING》 * |
JACKJOE: ""内存池的实现(一)"", 《HTTPS://WWW.CNBLOGS.COM/BLUEOVERFLOW/P/4906944.HTML》 * |
刘浩洋: ""面向可重构云计算系统的FPGA小文件系统的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144718A (zh) * | 2018-07-06 | 2019-01-04 | 北京比特大陆科技有限公司 | 一种内存分配方法、内存释放方法以及相关设备 |
CN109445724B (zh) * | 2018-10-12 | 2022-03-01 | 森大(深圳)技术有限公司 | 打印内存管理方法、装置及设备 |
CN109445724A (zh) * | 2018-10-12 | 2019-03-08 | 森大(深圳)技术有限公司 | 打印内存管理方法、装置及设备 |
CN109471771A (zh) * | 2018-10-19 | 2019-03-15 | 许昌许继软件技术有限公司 | 一种Nucleus系统的动态内存池监测方法及装置 |
CN109918203A (zh) * | 2019-03-18 | 2019-06-21 | 深圳市网心科技有限公司 | 接入服务器内存管理优化方法、接入服务器及通信系统 |
CN110109677B (zh) * | 2019-05-07 | 2023-08-29 | 北京善讯互动科技有限公司 | 一种动态对象缓存池分配方法 |
CN110109677A (zh) * | 2019-05-07 | 2019-08-09 | 北京善讯互动科技有限公司 | 一种动态对象缓存池分配方法 |
CN110532198A (zh) * | 2019-09-09 | 2019-12-03 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
CN110532198B (zh) * | 2019-09-09 | 2023-08-08 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
CN111007986A (zh) * | 2019-11-04 | 2020-04-14 | 厦门天锐科技股份有限公司 | 一种基于内存的文本分段传递的方法及装置 |
CN111007986B (zh) * | 2019-11-04 | 2022-09-30 | 厦门天锐科技股份有限公司 | 一种基于内存的文本分段传递的方法及装置 |
CN110928680A (zh) * | 2019-11-09 | 2020-03-27 | 上交所技术有限责任公司 | 一种适用于证券交易系统的订单内存分配方法 |
CN110928680B (zh) * | 2019-11-09 | 2023-09-12 | 上交所技术有限责任公司 | 一种适用于证券交易系统的订单内存分配方法 |
CN111309289B (zh) * | 2019-11-19 | 2023-04-25 | 上海金融期货信息技术有限公司 | 一种内存池管理组件 |
CN111309289A (zh) * | 2019-11-19 | 2020-06-19 | 上海金融期货信息技术有限公司 | 一种内存池管理组件 |
CN111414254A (zh) * | 2020-03-19 | 2020-07-14 | Oppo广东移动通信有限公司 | 设备管理方法、装置、存储介质及电子设备 |
CN111984425A (zh) * | 2020-09-30 | 2020-11-24 | 杭州未名信科科技有限公司 | 用于操作系统的内存管理方法、装置及设备 |
CN111984425B (zh) * | 2020-09-30 | 2024-04-02 | 浙江省北大信息技术高等研究院 | 用于操作系统的内存管理方法、装置及设备 |
CN112463355A (zh) * | 2020-10-22 | 2021-03-09 | 北京航空航天大学 | 基于哈希的用户态内存申请固定缓存方法 |
CN113010453A (zh) * | 2021-04-12 | 2021-06-22 | 杭州和利时自动化有限公司 | 一种内存管理的方法、系统、设备及可读存储介质 |
CN113051081B (zh) * | 2021-06-01 | 2021-10-29 | 广东省新一代通信与网络创新研究院 | 基于内存池的事件状态管理方法、系统及存储介质 |
CN113051081A (zh) * | 2021-06-01 | 2021-06-29 | 广东省新一代通信与网络创新研究院 | 基于内存池的事件状态管理方法、系统及存储介质 |
CN113419715A (zh) * | 2021-06-17 | 2021-09-21 | 吕锦柏 | 一种基于链表的动态内存管理方法和设备 |
CN117724991A (zh) * | 2023-12-21 | 2024-03-19 | 北京凯思昊鹏软件工程技术有限公司 | 嵌入式系统的动态内存管理方法、系统、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108132842B (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108132842A (zh) | 一种嵌入式软件内存管理系统 | |
CN108038002A (zh) | 一种嵌入式软件内存管理方法 | |
CN101470665A (zh) | 一种无mmu平台的应用系统内存管理的方法及系统 | |
CN101968772B (zh) | 嵌入式系统高效内存池的实现方法 | |
CN101221536B (zh) | 嵌入式系统的内存管理方法及装置 | |
CN100530140C (zh) | 应用程序级的内存管理方法 | |
CN109690498B (zh) | 内存管理方法和设备 | |
CN104731799B (zh) | 内存数据库管理装置 | |
CN104778126B (zh) | 非易失性主存中事务数据存储优化方法及系统 | |
CN103425435B (zh) | 磁盘存储方法及磁盘存储系统 | |
CN110347336A (zh) | 一种基于nvm与ssd混合存储结构的键值存储系统 | |
CN106681842A (zh) | 一种多进程系统中共享内存的管理方法及装置 | |
CN102915276A (zh) | 一种用于嵌入式系统的内存控制方法 | |
CN107544756B (zh) | 基于SCM的Key-Value日志型本地存储方法 | |
CN1963788A (zh) | 一种内存管理方法 | |
CN101320351A (zh) | 内存的分配、清理和释放方法及内存管理的装置 | |
CN111984425B (zh) | 用于操作系统的内存管理方法、装置及设备 | |
CN101110043A (zh) | 一种多核系统的资源管理方法和控制核 | |
CN104850505B (zh) | 基于链式堆叠的内存管理方法与系统 | |
CN108959113A (zh) | 用于闪存感知堆存储器管理的方法和系统 | |
CN107133182A (zh) | 一种内存管理方法及装置 | |
CN110727517A (zh) | 一种基于分区设计的内存分配方法和装置 | |
TW201935223A (zh) | 記憶體系統及其控制方法 | |
CN102279810A (zh) | 一种网络存储服务器及其缓存数据的方法 | |
CN110688345A (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 |