LINUX进阶(基础篇)之内存管理

简介: LINUX进阶(基础篇)之内存管理

LINUX采用4K页框大小作为标准标准的内存分配单元。


所有的页描述符存放在mem_map数组中。


页面描述符的字段:


_count:页的引用计数器。如果该字段为-1,则相应页框空闲,并可分配给任一进程或内核本身;如果该字段的值大于或等于0,则说明页框分配给一个或多个进程,或用于存放一些内核数据结构。page_conunt()函数返回_count加1后的值,也就是该页的使用者数目。


flags:包括多达32个也描述符框状态的标志。


内存管理区


ISA总线的直接内存存取处理器有一个严格的限制,只能对RAM的前16M寻址。


LINUX2.6把内存节点的物理 内存划分为三个管理区:


ZONE_DMA:低于16M的内存y页框


ZONE_NORMAL:16MB——896MB


ZONE_HIGHMEM:896开始高于896的内存页框。


每个页描述符都有内存节点和到节点ne内存管理区的链接。


为了节省空间,这些链接的存放方式与典型的指针不同,而是被编码成索引存放在flags字段的高位。


当内核调用一个内存分配函数时,必须指明请求页框所在的管理区。



目录
相关文章
|
2月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
179 6
|
13天前
|
算法 Linux 开发者
深入探究Linux内核中的内存管理机制
本文旨在对Linux操作系统的内存管理机制进行深入分析,探讨其如何通过高效的内存分配和回收策略来优化系统性能。文章将详细介绍Linux内核中内存管理的关键技术点,包括物理内存与虚拟内存的映射、页面置换算法、以及内存碎片的处理方法等。通过对这些技术点的解析,本文旨在为读者提供一个清晰的Linux内存管理框架,帮助理解其在现代计算环境中的重要性和应用。
|
19天前
|
存储 缓存 监控
|
1月前
|
存储 缓存 监控
Linux中内存和性能问题
【10月更文挑战第5天】
38 4
|
1月前
|
算法 Linux
Linux中内存问题
【10月更文挑战第6天】
41 2
|
16天前
|
缓存 算法 Linux
Linux内核中的内存管理机制深度剖析####
【10月更文挑战第28天】 本文深入探讨了Linux操作系统的心脏——内核,聚焦其内存管理机制的奥秘。不同于传统摘要的概述方式,本文将以一次虚拟的内存分配请求为引子,逐步揭开Linux如何高效、安全地管理着从微小嵌入式设备到庞大数据中心数以千计程序的内存需求。通过这段旅程,读者将直观感受到Linux内存管理的精妙设计与强大能力,以及它是如何在复杂多变的环境中保持系统稳定与性能优化的。 ####
24 0
|
1月前
|
存储 缓存 固态存储
|
1月前
|
Linux C++
Linux c/c++文件虚拟内存映射
这篇文章介绍了在Linux环境下,如何使用虚拟内存映射技术来提高文件读写的速度,并通过C/C++代码示例展示了文件映射的整个流程。
47 0
|
3月前
|
Linux 调度
深入理解Linux虚拟内存管理(七)(下)
深入理解Linux虚拟内存管理(七)
70 4
|
3月前
|
存储 Linux 索引
深入理解Linux虚拟内存管理(九)(中)
深入理解Linux虚拟内存管理(九)
38 2