wenchao1024
发布于

都2022年了,这个20篇Linux内存管理的期刊论文,你读了吗?

img

No1.《Linux内存管理分析与研究》

部分摘要: 内存管理系统是操作系统中最为重要的部分,因为系统的物理内存总是少于系 统所需要的内存数量。为发挥内存的最大作用,各种操作系统采用了不同的管理 策略。在 Linux 操作系统中采用分页式的内存管理方式,而它的内存管理算法采 用的是经典的伙伴算法。即:把所有的空闲页面分为 10 个块组,每组中块的大小 是 2 的幂次方个页面,例如,第 0 组中块的大小都为 20 (1 个页面),第 1 组中块 的大小为都为 21 (2 个页面),第 9 组中块的大小都为 29 (512 个页面)。也就是说, 每一组中块的大小是相同的,且这同样大小的块形成一个链表。

img

No2.《Linux内存管理的设计与实现》

部分摘要: Linux操作系统采用 分页式 内存管理方式 ,它的 内存管理算法 是经 典的伙伴算法 。 伙伴算法中对于伙伴内存块的定义要求互为伙伴块的两个内存块大小相等 、地址连续 并且 出 自同一个 更大的 内存块 。这样的要求使得 操作系统在整个 内存 的管理上 十分简洁 、 动态分配和 回收 内存 算法简便 。然而 , 在 一些情况下会 出现系统 中存在着 足够大 的连 续 内存 , 但 足这 样的连续 内存不符合伙 伴算法要 求因此无法 得到合并利 用 , 在 一定程度上 影响少 了整个 系统的 内存利用率 。

img

No3.《Linux内核中内存池的实现及应用》

部分摘要: Linux早期的内存管理由 get free page()、free page()、free page tables()、copy page tables()、put page()、do wp page()、do no page()和 get empty page()这几个定义在 memory.c中的函数来实现 , 并用 mem map[ ] 表对页面进行管理 [ 1] 。为了支持 虚拟存储器 , Linux系统采用 LRU分页替换算法载 入进程 。虚拟存储器由存储器管理机制及一个大容 量的快速硬盘存储器支持 ,它的实现基于局部性原 理 。早期的 Linux内存管理虽然没有 2.6.16版本 复杂, 但已经奠定了写时复制、需求加载等内存管理 的基本思想。 Linux是针对有 MMU的处理器设计 的 ,对具有 MMU的处理器而言, 虚拟地址被送到内 存管理单元 MMU,把虚拟地址映射为物理地址 。通 过赋予每个任务不同的虚拟地址到物理地址的转换 映射, 支持不同任务之间的保护 。每个用户进程 4 GB长度的虚拟内存被划分成固定大小的页面 。 其中 0至 3 GB是用户态空间, 由各进程独占 ;3 GB 到 4 GB是内核态空间, 由所有进程共享, 但只有内 核态进程才能访问。

img

No4.《Linux内核中动态内存检测机制的研究》

部分摘要: 近年来 , Linux 操作系 统 换源代码开放 、 功能齐全、 系统稳定等特性而从各种操 作系 统中脱颖而 出 , 也 越来越广泛的运用 于服务器领域中 。 隨着应用 的 越来越广, 其 安全问题不断地被曝露出 来 。 操作系 统作为整个软件系 统的基础, 其安全关系 到整个 系 统的安全 。 在操作系 统漏洞中 , 内 存 问 题首当其冲 , 研究表明 , 内 存 问题是造成漏 洞 的主 要原 因 。

img

No5.《Linux内核伙伴系统分析》

部分摘要: 本文针对 Linux 内核实现的伙伴系统进行了抽象分析, 并通过实例演示了算法的执行过程. 分析了用于物 理地址空间管理的三级数据结构及其关系. 在此基础上, 详细描述了用于分配和回收页框的伙伴算法. 对于待回收 的内存块而言, 计算其伙伴的索引及合并内存块的索引是回收操作的关键, 讨论了相关计算方法的几条结论并予以 证明。

img

No6.《基于内存池的空间数据调度算法》

部分摘要: 操作系统存储管理的主要目的是提高内存利用率,方便 用户使用内存。在多道程序环境中,多个作业须共享内存资 源,能否合理有效地利用内存对计算机整体性能影响很大。 目前操作系统大多采用页式或段页式内存管理方法[1],但这 种方法并不适用于调度 GIS 中具有尺度维的空间数据。由于 空间数据具有数据量大、类型复杂等特点,因此在浏览、导 航、编辑时,需要频繁申请释放内存空间,容易产生页面“抖 动”等问题[2]而降低 GIS 的效率。解决抖动问题最根本的方 法是控制多道程序的数量,使每个用户作业都有足够的内存 空间。但如果作业的个数太少,就会影响处理器的利用率[3]。 为了提高 GIS 调度空间数据的效率,本文提出基于内存池的 空间数据调度算法。

img

No7.《Linux实时内存的研究与实现》

部分摘要: Linux系统采用了虚拟存储技术,当请求的页面不在内存中时触发缺页中断,由此带来的延迟不确定,故 不能满足实时应用程序的要求.此外,对于用户态和内核态存在大量数据传输的情况下,通用 Linux系统也不能满 足实时应用程序的需求.针对以上问题,讨论了 Linux的内存管理,并采用内存映射技术来解决虚拟内存的换页问 题以及实现用户态和内核态共享一块物理内存来满足实时应用程序的需求.在 文 章 的 最 后,测试和比较了采用内 存映射技术实现实时内存的性能.测试结果表明,采用该技术可以有效地为实时应用程序提供实时内存。

img

No8.《Linux操作系统内核分析与研究》

部分摘要: Linux 2. 4操作系统内核的四个基本功能:进程管理 与调度机制、存储管理机制、文件系统管理机制。

  1. 进程管理与调度机制描述数据结构进程控制块及 Linux 操作系统如何创建、 执行、调度管理和撤销系统中的进程。
  2. 存储管理机制描述物理内存管理器、内核缓冲区管理器、进程虚拟内存管理 器的工作原理。
  3. 文件管理机制描述 Linux 系统如何通过虚拟文件系统(VFS)支持多种不同的 物理文件系统,剖析了 Linux 文件系统中一个物理文件系统的注册与注销、 安装和卸载过程。

通过分析Linux 2. 4操作系统内核,掌握了操作系统的设计思想和实现方法, 为以后进一步定制特定的嵌入式操作系统打下了坚实的基础;今后的工作应在操 作系统内核改进上进行定性分析和理论创新。

img

No9.《内存管理机制的高效实现研究》

部分摘要: 为了高效地管理内存,防止内存泄漏、越界访问等问题的出现,在分析传统动态内存管理机制的基础上,提出了一 种基于 Windows 虚拟内存管理的高效动态内存管理机制。通过创建内存管理器来维护虚拟地址空间和处理内存申请和释放 请求,改进了传统动态内存分配与回收算法,并在 VC++6.0 开发平台上实现了该动态内存管理机制。测试结果分析表明,该 方法有效降低了申请与释放内存的时间耗费,减少了内存碎片的产生,提高了动态内存管理效率。

img

No10.《分页存储管理系统中内存有效访问时间的计算》

部分摘要: 针对分页存储管理中的内存有效访问时 间的计算问题,对基本分页存储系统和请求分页存储系统分别进行了探讨,总结了多种情况下内 存有效访问时间的计算公式,并通过案例加以分析应用。通过分析,使学生对分页存储管理系统 的实现过程更加清晰。

img

No11.[《基于C++ 的高效内存池的设计与实现》](https://github.com/0voice/kernel_memory_management/blob/main/📁论文/基于C 的高效内存池的设计与实现.pdf)

部分摘要: 为了高效、安全地利用计算机内存资源,在大型的软件设计中,往往要进行大量的内存分配与回收操 作,为此,C ++ 专门提供了 malloc 等相关函数进行操作,这些函数能够满足一般的使用,但由于它们调用了操 作系统 API,所以实际使用时会在操作系统中产生大量的内存碎片,让内存分配成为效率瓶颈,从而降低系统 性能. 基于此,通过对循环首次适应算法进行改进,设计并实现了基于 C ++ 的高效内存池,大幅提升了内存分 配与回收的效率. 同时,还为内存池编写了相关的分配子,使其能与 C ++ 标准库无缝对接,提供了若干具有垃 圾回收功能的智能指针,提高了内存管理与程序运行的效率。

img

No12.[《基于C++ 自定义内存分配器的实现》](https://github.com/0voice/kernel_memory_management/blob/main/📁论文/基于C 自定义内存分配器的实现.pdf)

部分摘要: 一些需要长时间可靠运行的特殊系统,在进行频繁的内存分配和释放操作的过程中,容易产 生内存碎片,影响内存分配的速度,降低内存利用率,导致系统运行越来越慢。虽然,静态分配内存 的方案可以解决部分问题,但容易造成内存空间的浪费。一个简单的自定义内存分配器,实现了在提 高内存使用率的同时,还能减少内存碎片的产生。

img

No13.《基于Linux内核的动态内存管理机制的实现》

部分摘要: 在软件开发过程中,共享内存经常会遇到一个进程消耗太多内存导致其他进程无法得到需要内存的潜在问题,针对该问题,基于 Linux 内核实现一种动态内存管理机制,该机制能够限制每个进程所能申请的最大内存数,同时可以避免进程内存泄露造成的系统崩溃。 实验结果表明,该机制效率高、且易用性好。

img

No14.《基于multimap映射的动态内存分配算法探究》

部分摘要: 对多种不同的动态内存分配算法的特点与优劣进行对比、分析,在兼顾效率和内存碎片率指标的要求下,提出了基 于multimap映射的动态内存分配算法。该算法以内存块的大小作为键,内存块的地址信息作为值,以键值对的形式存储 内存块的地址,并在内存块实体的首部与尾部添加标识信息。为检验算法效果,设计了多组数据对新算法和现有经典内 存管理算法效率进行比较,实验结果表明新算法在降低时间开销,保留较大连续空间,减少内存碎片等方面具有较明显的改善。

img

No15.《对linux伙伴系统及其反碎片机制的研究》

部分摘要: 首先介绍了linux伙伴系统的原理,然后提出了旧版本内核在解决碎片问题上的不足,并详细分析了内核对于该问题的 最新解决方法。

img

No16.[《有效的C++内存泄露检测方法》](https://github.com/0voice/kernel_memory_management/blob/main/📁论文/有效的C 内存泄露检测方法.pdf)

部分摘要: 提出了一个有效的 C++内存泄漏检测方法。方法在分析内存泄漏的基础上, 通过重新实现动态内存分配和释放函数, 记录内 存分配的确切位置并跟踪动态内存的使用情况。在程序结束时, 方法利用跟踪结果检测和定位内存泄漏。最后, 通过在 Windows 和 Linux 平台上的实验验证了本文方法的有效性。

img

No17.《浅析伙伴系统的分配与回收》

部分摘要: 分配效率、碎片问题是操作系统中内存分配的两大问题。一个好的分配器应该 能够快速地满足各种大小的分配要求,同时不能产生大量的碎片浪费空间。基于数据 结构中的伙伴系统的分配与回收思想给出了一个有效的算法。

img

No18.《用户态内存管理关键技术研究》

部分摘要: 在软件开发中 , 动态内 存管理是一 项很重要 的 内容 。 相 比不需要 开发人员干预的 静 态 内存管理方 式, 动态 内 存需要开发人员 自 己管理内 存 的 申请、 释放等操作 。 虽然动 态 内 存管理机制 非常强大, 但是 同时 由 于动态 内 存管 理复杂性, 由此也带来了 很多 问 题。 在这些问 题中 , 内 存碎片和 内 存泄漏成为其中最显著 的两个问 题 。 内 存碎片是 由 于频繁 的 申请和释放, 导致一 些小 的 内存块无法被程序使用 , 同 时也无法被系统回 收导致 。 内 存碎片积累首先会浪费 系统内 存, 同 时它也增加 了 动态内 存管理的 负 担 , 增 加程序 申 请 内 存块的 时 间 。 内 存 泄漏是指在 开发人员 申 请使用 了 内 存块之后 , 由 于各种 原因 没有释 放 内 存块, 同时操作系统也无法回收该 内 存块 , 造成程序使用 内 存持续增加 , 最终耗尽 系统内 存。

img

No19.《虚拟化系统中的内存管理优化》

部分摘要: 在 服 务器虚拟化中 , 多个虚拟机共 享 同 一 机器 的 物理 内 存 。 由 于 内 存 的读 写 速度通 常要 比磁盘等 外存设 备 高 出 1 ? 2 个 数量级 , 因 此将虚拟机的 数据 尽量放 入 内 存 可 以提升系 统 性 能 。 然 而 研 宄表 明 , 服务器 有 限 的 内 存容 量 正在 成 为 限 制 虚 拟机部署 密 度 和 系 统性 能提升 的 瓶颈 。 内 存 重 删 和 动态 内 存 调 节 是提 高虚 拟化系 统 内 存 利 用 率 的两个 重要 技术 。 内 存 重删 通过 消 除 重 复数 据 减少 虚拟机 的 内 存 占 用量 。 动 态 内 存调 节通过 回收虚拟 机空 闲 内 存 提高宿 主 机内 存 利用 率 。 本 文 分析 了 现有方法 的不 足 , 提 出 了 相 应的优化 方案 。

img

No20.《页面分配器的研究与实现》

部分摘要: 大部分现代操作系统实现了基于分页的虚拟存储器系统。物理内存被划分成大小相同 的页帧‚页面分配器管理所有的页帧‚负责分配和释放物理页面。页面级操作是内核代码 的关键路径‚页面分配器的评价标准首先是必须快‚其次是外部碎片和内部碎片必须少。

img

本文涉及的资料全部打包放到我Github仓:

GitHub:【内存管理】的资料,包含100论文,100文章,20视频,以及应用程序的内存泄露,内存池相关

有需要的可以前去下载,或者觉得还不错,请给我Star,感谢支持!

浏览 (197)
点赞
收藏
评论