CN108038002B - 一种嵌入式软件内存管理方法 - Google Patents
一种嵌入式软件内存管理方法 Download PDFInfo
- Publication number
- CN108038002B CN108038002B CN201711347959.2A CN201711347959A CN108038002B CN 108038002 B CN108038002 B CN 108038002B CN 201711347959 A CN201711347959 A CN 201711347959A CN 108038002 B CN108038002 B CN 108038002B
- Authority
- CN
- China
- Prior art keywords
- memory
- block
- idle
- partition
- linked list
- 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
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
- 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
-
- 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
Abstract
本发明涉及一种嵌入式软件内存管理方法,涉及嵌入式软件内存管理技术领域。本发明采用静态分配的方式,预先设定好系统内存区中的分区数量和各个分区中内存块的数量和大小,然后基于池式内存管理机制对用户内存区采用动态内存分配的方式,通过创建内存分配器处理内存申请和释放请求,并对传统的动态内存分配和释放算法进行了改进。该方法采用静态分配系统内存区和动态分配用户内存区相结合的方式,增加了系统的灵活性,同时也限制了大量碎片的产生,避免了内存泄露的出现,且该方法能够有效降低申请和释放内存的时间耗费,提高动态内存管理效率。
Description
技术领域
本发明涉及嵌入式软件内存管理技术领域,具体涉及一种嵌入式软件内存管理方法。
背景技术
由于嵌入式系统的实时性、灵活性和稳定性要求,对内存管理有着特殊的策略。良好的程序性能部分依赖于其有效的内存管理能力,而常规的堆内存管理器的性能会受到内存碎片和内存回收需求的影响,尤其是在内存频繁分配和释放的应用环境中,更容易成为系统性能的瓶颈。不仅如此,潜在的内存泄露可能会使长时间运行的系统内存耗尽,导致系统性能急剧下降直至最后宕机。为解决嵌入式系统在内存分配时带来的堆中内存有碎片,同时在分配与回收时所需时间不确定等问题,一般采用内存池分配内存。传统内存池管理机制只能分配大小固定的内存块,灵活性差;其它的内存池管理方法虽然可以实现动态分配内存块,但是内存池管理的内存空间通过定义全局数组的方法创建,将数组名作为内存池地址指针传递给生成函数,这种做法显然不够灵活。
为了克服现有内存池管理机制存在的不足,需要提出一种嵌入式软件内存管理方法。
发明内容
(一)要解决的技术问题
本发明是克服现有内存池管理机制存在的不足,提出一种嵌入式软件内存管理方法。
(二)技术方案
为了解决上述技术问题,本发明提供了一种嵌入式软件内存管理方法,包括以下步骤:
步骤1、系统内存区的静态内存分配
所述系统内存区的静态内存分配的方法中,系统内存区通过Partition_Create()函数创建内存分区,每个块内存的第一部分存储分区对象,其后才是各个内存块,且在内存区中设置一个全局链表来存储所有的内存分区指针,内存分区的数量可动态定义,对链表中的分区按照每个分区中内存块的大小进行排序,内存块小的分区排在前面,内存块大的分区排在后面;
在申请内存块时,采用first-fit方法从系统内存区的分区链表中找到合适大小的内存分区,如果该分区空闲内存链表不为空,则返回该链表的第一个内存块地址,如果为空则查看下一块分区;如果找不到合适大小的内存分区,则返回空指针;
步骤2、用户内存区的动态内存分配
在用户内存区的动态内存分配的方法中,采用池式内存分配方法在程序运行前在内存池中预先分配好一块内存区,然后对内存进行分配,空闲内存块在内存池中按照从小到大的顺序以双向链表进行组织,内存池的结构由两部分组成:内存块管理头节点和可供用户读写的内存;所述内存块管理头节点包括内存池的起始地址、内存池的总大小、最大可用连续空间的大小、指向内存块双向链表的指针、指向空闲内存块的双向链表的指针和指向下一个内存池的指针;
当用户程序申请内存时,为每块内存池设置失败因子和跳转指针两个字段,所述失败因子用于记录“查找满足需求的内存池”的次数,所述跳转指针用于表示扫描内存池时下一个要跳转的节点,在顺序查找该内存池的空闲内存块双向链表时,对于失败因子高于预设阈值的节点则直接跳过;若查找到第一个满足分配字节大小要求的空闲块,将该空闲块从双向链表上移除;若未找到合适大小的空闲内存块,则重新创建一块新的内存池;如果查找到的空闲内存块大小除了能够满足用户程序所申请的字节数要求外还有一定大小的可用空闲空间,则将其分割为两个新的内存块,其中一块是为用户程序分配的内存,将其占用标志置为“占用”,另一块是可供用户程序后续申请分配的新空闲块,将其占用标志置为“空闲”,并将其作为新的空闲块按照一定方式插入到空闲块双向链表中;否则,直接将该内存块返回给用户程序。
优选地,所述系统内存区的静态内存分配的方法中,在回收或释放内存块时,首先检查内存块属于哪个内存分区,在找到所属的内存分区后,直接把该内存块放到该分区空闲内存链表的尾部。
优选地,所述一定方式为向前查找插入法:由于分割后得到的新空闲块的大小一定小于原空闲块,因此从原空闲块在空闲块链表中的位置向前查找到合适的位置,将新的空闲块插入到该位置上即可。
优选地,所述用户内存区的动态内存分配的方法中,在对用户的内存进行动态回收或释放时,首先对待回收或释放的内存块向前偏移内存块管理头节点大小的字节数,找到内存块管理头节点,将其中的占用标志置为空闲;通过内存块管理头节点找到其所属内存池的内存池管理头节点,然后检测与待回收或释放内存块相邻的块是否为空闲块,若是空闲块,则进行内存块的合并操作,将合并后的空闲块按照预设方法插入到所属内存池的空闲内存块链表的合适位置;否则,直接将待回收或释放内存块作为一个新空闲块从头查找并插入到所属内存池的空闲块链表中,回收或释放完成后更新内存池管理头节点中的最大可用连续空间的值。
优选地,所述预设方法为向后查找插入法:由于合并后得到的新空闲块的大小一定大于原相邻空闲块,因此从原空闲块在空闲块链表中的位置向后查找到合适的位置,将新空闲块插入到该位置上即可。
(三)有益效果
本发明采用静态分配的方式,预先设定好系统内存区中的分区数量和各个分区中内存块的数量和大小,然后基于池式内存管理机制对用户内存区采用动态内存分配的方式,通过创建内存分配器处理内存申请和释放请求,并对传统的动态内存分配和释放算法进行了改进。该方法采用静态分配系统内存区和动态分配用户内存区相结合的方式,增加了系统的灵活性,同时也限制了大量碎片的产生,避免了内存泄露的出现,且该方法能够有效降低申请和释放内存的时间耗费,提高动态内存管理效率。
附图说明
图1是本发明中创建系统内存区流程图;
图2是本发明中用户内存区内存分配流程图;
图3是本发明中用户内存区内存回收/释放流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为了提高嵌入式系统内存的利用率,有效解决内存碎片和内存泄露问题,并实现内存的快速分配和释放,本发明提出一种嵌入式软件内存管理方法。该方法采用静态分配的方式,预先设定好系统内存区中的分区数量和各个分区中内存块的数量和大小,然后基于池式内存管理机制对用户内存区采用动态内存分配的方式,通过创建内存分配器处理内存申请和释放请求,并对传统的动态内存分配和释放算法进行了改进。该方法采用静态分配系统内存区和动态分配用户内存区相结合的方式,增加了系统的灵活性,同时也限制了大量碎片的产生,避免了内存泄露的出现,且该方法能够有效降低申请和释放内存的时间耗费,提高动态内存管理效率。
步骤1、系统内存区的静态内存分配
系统内存区通过Partition_Create()函数创建内存分区,创建系统内存区流程图如图1所示。
每个块内存的第一部分存储该分区对象,其后才是各个内存块。在系统内存区中设置一个全局链表来存储所有的内存分区指针,系统内存分区的数量可以动态定义。对链表中的分区需按照每个分区中内存块的大小进行排序,内存块小的分区排在前面,内存块大的分区排在后面,这样做的好处是在采用了经典的first-fit算法后,可以减少内存浪费。
在申请内存块时,采用first-fit方法从系统内存区的分区链表中找到合适大小的内存分区,如果该分区空闲内存链表不为空,则返回该链表第一个内存块地址,否则查看下一块分区。如果找不到合适的内存块,则返回空指针。
回收/释放内存块时,首先检查该内存块属于哪个内存分区,在找到所属的内存分区后,直接把该内存块放到该分区空闲内存链表的尾部。
步骤2、用户内存区的动态内存分配
传统的动态内存分配需要频繁调用malloc/free函数,这样会产生大量的内存碎片。采用池式内存分配方法可在程序运行前在内存池中预先分配好一块内存区,然后采用高效的内存管理算法对内存进行分配,可以有效降低内存碎片的产生,提高内存利用率。
和传统的池式内存分配方法相比,本发明提出的动态内存分配方法的优势在于能够明显提高空闲内存块链表的查找效率,减少内存申请与回收/释放的时间耗费,进而减少内存碎片。
空闲内存块在内存池中按照从小到大的顺序以双向链表进行组织。内存池的结构由两部分组成:内存块管理头节点和可供用户读写的内存。内存块管理头节点包括内存池的起始地址、内存池的总大小、最大可用连续空间的大小、指向内存块双向链表的指针、指向空闲内存块的双向链表的指针和指向下一个内存池的指针。
1)动态内存分配方法
当用户程序申请内存时,为每块内存池设置失败因子和跳转指针两个字段,失败因子用于记录“查找满足需求的内存池”的次数,跳转指针用于表示扫描内存池时下一个要跳转的节点。在顺序查找该内存池的空闲内存块双向链表时,对于失败因子过高(具体数值可根据实际需要设置)的节点则直接跳过,这样做可避免大量无效的扫描和判断,大大提高扫描的成功率,降低平均扫描时间;若查找到第一个满足分配字节大小要求的空闲块,将该空闲块从双向链表上移除;若未找到合适大小的空闲内存块,则重新创建一块新的内存池。
如果查找到的空闲内存块大小除了能够满足用户程序所申请的字节数要求外还有一定大小的可用空闲空间,则将其分割为两个新的内存块,其中一块是为用户程序分配的内存,将其占用标志置为“占用”,另一块是可供用户程序后续申请分配的新空闲块,将其占用标志置为“空闲”,并将其作为新的空闲块按照“向前查找插入法”插入到空闲块双向链表中;否则,直接将该内存块返回给用户程序。
“向前查找插入法”的思想是:由于分割后得到的新空闲块的大小一定小于原空闲块,因此从原空闲块在空闲块链表中的位置向前查找到合适的位置,将新空闲块插入到该位置上即可。这样做的好处是不必从头遍历整个空闲块链表,从而提高了空闲块链表的查找效率。
用户内存区内存分配的流程图如图2所示。
2)动态内存回收/释放方法
如图3所示,在对用户的内存进行动态回收/释放时,首先对待回收/释放的内存块向前偏移内存块管理头节点大小的字节数,找到内存块管理头节点,将其中的占用标志置为空闲;通过内存块管理头节点找到其所属内存池的内存池管理头节点,然后检测与待回收/释放内存块相邻的块是否为空闲块,若是空闲块,则进行内存块的合并操作,将合并后的空闲块按照“向后查找插入法”插入到所属内存池的空闲内存块链表的合适位置;否则,直接将待回收/释放内存块作为一个新空闲块从头查找并插入到所属内存池的空闲块链表中。回收/释放完成后更新内存池管理头节点中的最大可用连续空间的值。
“向后查找插入法”的思想是:由于合并后得到的新空闲块的大小一定大于原相邻空闲块,因此从原空闲块在空闲块链表中的位置向后查找到合适的位置,将新空闲块插入到该位置上即可。这样做的好处是不必从头遍历整个空闲块链表,从而提高了空闲块链表的查找效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (5)
1.一种嵌入式软件内存管理方法,其特征在于,包括以下步骤:
步骤1、系统内存区的静态内存分配
所述系统内存区的静态内存分配的方法中,系统内存区通过Partition_Create()函数创建内存分区,每个块内存的第一部分存储分区对象,其后才是各个内存块,且在内存区中设置一个全局链表来存储所有的内存分区指针,内存分区的数量可动态定义,对链表中的分区按照每个分区中内存块的大小进行排序,内存块小的分区排在前面,内存块大的分区排在后面;
在申请内存块时,采用first-fit方法从系统内存区的分区链表中找到合适大小的内存分区,如果该分区空闲内存链表不为空,则返回该链表的第一个内存块地址,如果为空则查看下一块分区;如果找不到合适大小的内存分区,则返回空指针;
步骤2、用户内存区的动态内存分配
在用户内存区的动态内存分配的方法中,采用池式内存分配方法在程序运行前在内存池中预先分配好一块内存区,然后对内存进行分配,空闲内存块在内存池中按照从小到大的顺序以双向链表进行组织,内存池的结构由两部分组成:内存块管理头节点和可供用户读写的内存;所述内存块管理头节点包括内存池的起始地址、内存池的总大小、最大可用连续空间的大小、指向内存块双向链表的指针、指向空闲内存块的双向链表的指针和指向下一个内存池的指针;
当用户程序申请内存时,为每块内存池设置失败因子和跳转指针两个字段,所述失败因子用于记录“查找满足需求的内存池”的次数,所述跳转指针用于表示扫描内存池时下一个要跳转的节点,在顺序查找该内存池的空闲内存块双向链表时,对于失败因子高于预设阈值的节点则直接跳过;若查找到第一个满足分配字节大小要求的空闲块,将该空闲块从双向链表上移除;若未找到合适大小的空闲内存块,则重新创建一块新的内存池;如果查找到的空闲内存块大小除了能够满足用户程序所申请的字节数要求外还有一定大小的可用空闲空间,则将其分割为两个新的内存块,其中一块是为用户程序分配的内存,将其占用标志置为“占用”,另一块是可供用户程序后续申请分配的新空闲块,将其占用标志置为“空闲”,并将其作为新的空闲块按照一定方式插入到空闲块双向链表中;否则,直接将该内存块返回给用户程序。
2.如权利要求1所述的方法,其特征在于,所述系统内存区的静态内存分配的方法中,在回收或释放内存块时,首先检查内存块属于哪个内存分区,在找到所属的内存分区后,直接把该内存块放到该分区空闲内存链表的尾部。
3.如权利要求1所述的方法,其特征在于,所述一定方式为向前查找插入法:由于分割后得到的新空闲块的大小一定小于原空闲块,因此从原空闲块在空闲块链表中的位置向前查找到合适的位置,将新的空闲块插入到该位置上即可。
4.如权利要求1所述的方法,其特征在于,所述用户内存区的动态内存分配的方法中,在对用户的内存进行动态回收或释放时,首先对待回收或释放的内存块向前偏移内存块管理头节点大小的字节数,找到内存块管理头节点,将其中的占用标志置为空闲;通过内存块管理头节点找到其所属内存池的内存池管理头节点,然后检测与待回收或释放内存块相邻的块是否为空闲块,若是空闲块,则进行内存块的合并操作,将合并后的空闲块按照预设方法插入到所属内存池的空闲内存块链表的合适位置;否则,直接将待回收或释放内存块作为一个新空闲块从头查找并插入到所属内存池的空闲块链表中,回收或释放完成后更新内存池管理头节点中的最大可用连续空间的值。
5.如权利要求4所述的方法,其特征在于,所述预设方法为向后查找插入法:由于合并后得到的新空闲块的大小一定大于原相邻空闲块,因此从原空闲块在空闲块链表中的位置向后查找到合适的位置,将新空闲块插入到该位置上即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711347959.2A CN108038002B (zh) | 2017-12-15 | 2017-12-15 | 一种嵌入式软件内存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711347959.2A CN108038002B (zh) | 2017-12-15 | 2017-12-15 | 一种嵌入式软件内存管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108038002A CN108038002A (zh) | 2018-05-15 |
CN108038002B true CN108038002B (zh) | 2021-11-02 |
Family
ID=62102797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711347959.2A Active CN108038002B (zh) | 2017-12-15 | 2017-12-15 | 一种嵌入式软件内存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108038002B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445724B (zh) * | 2018-10-12 | 2022-03-01 | 森大(深圳)技术有限公司 | 打印内存管理方法、装置及设备 |
CN109857814A (zh) * | 2018-12-28 | 2019-06-07 | 北京东方国信科技股份有限公司 | 一种内存数据处理方法及存储介质 |
CN110532198B (zh) * | 2019-09-09 | 2023-08-08 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
CN113127181B (zh) * | 2019-12-30 | 2024-02-20 | 杭州海康威视数字技术股份有限公司 | 内存管理方法、装置及存储介质 |
CN111984425B (zh) * | 2020-09-30 | 2024-04-02 | 浙江省北大信息技术高等研究院 | 用于操作系统的内存管理方法、装置及设备 |
CN112231101B (zh) * | 2020-10-16 | 2024-03-01 | 北京中科网威信息技术有限公司 | 内存分配方法、装置及可读存储介质 |
CN112463355A (zh) * | 2020-10-22 | 2021-03-09 | 北京航空航天大学 | 基于哈希的用户态内存申请固定缓存方法 |
CN112612425B (zh) * | 2020-12-30 | 2021-08-13 | 北京北方华创微电子装备有限公司 | 数据读写方法及半导体加工设备的控制装置 |
CN113168349A (zh) * | 2021-03-26 | 2021-07-23 | 珠海全志科技股份有限公司 | Ai处理器的内存分配方法、计算机装置及计算机可读存储介质 |
CN113311998A (zh) * | 2021-05-28 | 2021-08-27 | 山东英信计算机技术有限公司 | 分布式系统集群数据持久化方法、系统、装置及存储介质 |
CN113220604B (zh) * | 2021-05-31 | 2021-12-07 | 深圳华云信息系统有限公司 | 内存申请方法、装置、电子设备和计算机可读存储介质 |
CN113391922A (zh) * | 2021-06-16 | 2021-09-14 | 天津津航计算技术研究所 | 一种嵌入式软件内存申请和释放方法 |
CN113419715A (zh) * | 2021-06-17 | 2021-09-21 | 吕锦柏 | 一种基于链表的动态内存管理方法和设备 |
CN117130949A (zh) * | 2023-08-28 | 2023-11-28 | 零束科技有限公司 | 内存管理方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
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 | 锐捷网络股份有限公司 | 一种缓存管理方法及装置 |
CN106681829A (zh) * | 2016-12-09 | 2017-05-17 | 上海斐讯数据通信技术有限公司 | 一种内存管理方法及系统 |
CN106681842A (zh) * | 2017-01-18 | 2017-05-17 | 迈普通信技术股份有限公司 | 一种多进程系统中共享内存的管理方法及装置 |
Family Cites Families (3)
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 |
US8359361B2 (en) * | 2010-05-06 | 2013-01-22 | Microsoft Corporation | Techniques to share media files through messaging |
CN104063328A (zh) * | 2014-04-04 | 2014-09-24 | 浪潮电子信息产业股份有限公司 | 一种缓解碎片产生的内存管理方法 |
-
2017
- 2017-12-15 CN CN201711347959.2A patent/CN108038002B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式系统的内存控制方法 |
CN104412233A (zh) * | 2013-05-30 | 2015-03-11 | 英特尔公司 | 流水线调度中混叠寄存器的分配 |
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 |
---|
"A Hardware/Software Approach for Database Query Acceleration with FPGAs";Bharat Sukhwani;《International Journal of Parallel Programming》;20151201;第43卷(第6期);第1129-1159页 * |
"内存池的实现(一)";jackjoe;《https://www.cnblogs.com/blueoverflow/p/4906944.html》;20151024;第1-5页 * |
"面向可重构云计算系统的FPGA小文件系统的设计与实现";刘浩洋;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150615(第06期);第I137-46页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108038002A (zh) | 2018-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108038002B (zh) | 一种嵌入式软件内存管理方法 | |
CN108132842B (zh) | 一种嵌入式软件内存管理系统 | |
CN109690498B (zh) | 内存管理方法和设备 | |
JP3611305B2 (ja) | 永続的且つロバストな記憶割当てシステム及び方法 | |
CN100530140C (zh) | 应用程序级的内存管理方法 | |
CN107066498B (zh) | 键值kv存储方法和装置 | |
CN102446139B (zh) | 一种数据存储方法及装置 | |
KR102077149B1 (ko) | 메모리 관리 방법 및 장치 | |
CN103425435B (zh) | 磁盘存储方法及磁盘存储系统 | |
CN107209716B (zh) | 内存管理装置和方法 | |
JP2005108216A (ja) | 客体志向プログラムの動的メモリ管理方法及び装置 | |
CN104731799A (zh) | 内存数据库管理装置 | |
CN109753361A (zh) | 一种内存管理方法、电子设备及存储装置 | |
US7853627B2 (en) | Dense prefix generation for garbage collection | |
WO2007097581A1 (en) | Method and system for efficiently managing a dynamic memory in embedded system | |
KR101077901B1 (ko) | 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 | |
US20060236065A1 (en) | Method and system for variable dynamic memory management | |
US8990537B2 (en) | System and method for robust and efficient free chain management | |
CN107632944B (zh) | 一种读取数据的方法及装置 | |
CN113434438B (zh) | 一种提高智能卡flash写入寿命的方法 | |
CN102609485B (zh) | 基于Linux文件系统的NFS数据I/O加速方法 | |
CN100557571C (zh) | 一种资源分配方法和系统 | |
CN111813708B (zh) | 用于存储装置的块映射系统和方法 | |
CN109284234A (zh) | 一种存储地址分配方法及系统 | |
CN117435352B (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 |