[linux内存管理] 第004章 内存架构和内存模型 9月前查看 评论
[linux内存管理] 第004章 内存架构和内存模型

您好!根据您提供的文档内容,我为您总结出以下要点: **架构概述**: * 服务器架构主要分为三类:SMP、NUMA、MPP。 * 共享存储型多处理机有UMA和NUMA两种模型。 **基本概念**: * PFN:物理内存页帧编号,用于标识每个物理页。 * PF:线性地址被分成固定长度的页,例如4K。 * Page Frame:内存被分成固定长度的存储区域,包含一个页。 * UMA:所有CPU访问内存的时间相同,共享同一块物理内存。 * NUMA:CPU访问本地内存速度快于远端内存,有多个内存节点和CPU簇。 * COMA:NUMA的一种特例,只用高速缓存访问架构。 **内存架构总结**: | 概念 | 描述 | 特点 | |---|---|---| | SMP | 共享存储型多处理机 | 可伸缩性有限 | | UMA | 均匀存储器存取 | 所有处理器对所有存储字具有相同的存取时间 | | NUMA | 非均匀存储器存取 | 访问时间随存储字的位置不同而变化 | | COMA | 只用高速缓存的存储器结构 | 每个处理机结点上没有存储器层次结构 | **内存模型**: * FLATMEM:适用于具有连续或大部分连续物理内存的非NUMA系统,使用全局数组mem_map组织物理页。 * DISCONTIGMEM:适用于管理多块非连续的物理内存,通过node节点管理连续物理内存页,避免内存空洞造成的空间浪费。 * SPARSEMEM:适用于内存热拔插场景,使用section对粒度更小的连续内存块进行精细管理。 **内存模型转换逻辑**: * FLATMEM:基于mem_map数组进行偏移操作。 * DISCONTIGMEM:先定位page所在node,再通过node_mem_map定位PFN。 * SPARSEMEM:先定位page或PFN所在section,再通过section_mem_map定位page或PFN。 **总结**: 文档详细介绍了计算机系统中以内存为研究对象的两种架构:NUMA和UMA,以及对应的内存模型:FLATMEM、DISCONTIGMEM、SPARSEMEM。并对内存管理发展过程中,与UMA和NUMA对应的三种内存模型进行了简述。 希望以上总结对您有所帮助!如有任何疑问,请随时提出。