源码基于:Android 5.4
在上一篇博文 内存与内存分布 中重点分析了程序在编译和运行时的内存分布情况,从x86 64和arm 64 两种处理器的角度简单阐述了内存的分布,以及内核角度查看内存的分布。这一篇主要阐述现在计算机系统中,以内存为研究对象分成的两种架构:NUMA 和 UMA。以及与之对应产生的三种内存模型:FLATMEM、DISCONTIGMEM、SPARSEMEM。
Symmetrical Multi-Processing,简称SMP,即对称多处理技术,是指将多CPU汇集在同一总线上,各CPU间进行内存和总线共享的技术。将同一个工作平衡地(run in parallel)分布到多个CPU上运行,该相同任务在不同CPU上共享着相同的物理内存。在现行的SMP架构中,发展出三种模型:UMA、NUMA和COMA。
Uniform Memory Access,简称UMA,即统一内存访问架构。内存有统一的结构并且统一寻址。
目前大部分嵌入式系统、手机操作系统以及台式机操作系统等采用UMA 架构。
这里有四个CPU,都有L1 高速缓存,其中CPU0 和CPU1