图解Linux内存管理_整体架构

如题所述

大家好,这里是物联网心球。

前面我们学习了很多Linux内存方面的知识,如虚拟地址空间,进程空间,内存映射,页表机制等,然而为什么我们对Linux内存管理还是似懂非懂呢?原因在于我们缺乏对物理内存的了解,由于缺乏物理内存管理相关的知识,我们对内存管理没有形成体系。

本文我们将以一种创新的方式来学习Linux内存管理,基于物理地址来学习。

1. UMA和NUMA架构:

UMA(Uniform Memory Access)和NUMA(Non-Uniform Memory Access)是两种不同的内存访问架构。

1.1 UMA架构:

UMA是一种对称多处理(SMP)系统的内存访问架构,所有处理器对内存的访问具有相同的延迟。

在UMA系统中,所有处理器共享同一总线或交叉点,可以直接访问共享内存。

1.2 NUMA架构:

NUMA是一种非对称多处理(NUMA)系统的内存访问架构,不同处理器对内存的访问延迟可能不同。

在NUMA系统中,每个处理器都有自己的本地内存和本地内存控制器。

小节:

精品文章推荐:

图解Linux虚拟文件系统(VFS)之关系篇

8张图讲清楚mmap实现原理(爆款)

一篇文章让你真正搞懂epoll机制(爆款)

图文详解io_uring高性能异步IO架构(原理篇)

图解Linux select机制_从内核到应用

2. 物理内存管理:

我们围绕物理地址来理解物理内存,物理内存管理其实是对物理地址的管理。

2.1 物理地址:

物理地址是物理内存中每个字节的身份信息,我们要对物理内存进行读写必须要知道物理地址。

2.2 page有什么用?:

页机制的核心是页(page),page为物理内存管理的最小单位。

2.3 page,PFN,物理地址之间的关系?:

PFN和物理地址相互转换,page和PFN相互转换需要结合内存模型讨论,page和物理地址转换需要借助PFN完成。

3. 三种内存模型:

Linux内存模型分为平坦内存模型,非连续内存模型,稀疏内存模型。

3.1 平坦内存模型:

平坦内存模型是指在Linux操作系统中,物理内存被视为一个连续的、线性的地址空间。

3.2 非连续内存模型:

不连续内存模型是指内存空间被分割成多个不连续的区域。

3.3 稀疏内存模型:

稀疏内存模型是一种用于管理大容量内存的机制,它允许系统在物理内存不连续的情况下有效地使用内存空间。

4. 总结:

Linux内存管理非常复杂,我们要掌握Linux内存管理,首先得了解页机制,通过页机制了解页,PFN,物理地址之间的关系,有了这个基础,我们再去学习Linux内存管理,我们的思路才会清晰。
温馨提示:内容为网友见解,仅供参考
无其他回答

linux内存管理子系统架构图
内存管理是Linux内核中复杂且关键的部分,它涉及三个主要层次:用户空间、内核空间和硬件空间。用户空间层,主要由Linux内核为用户提供的一系列系统调用接口组成,如brk、mmap等,这些接口被封装在libc库中,从而在C语言中以标准函数的形式呈现,例如mmap()和malloc。内核空间层包含多种模块,主要负责处理用户...

图解Linux内存管理_整体架构
1.1 UMA架构:UMA是一种对称多处理(SMP)系统的内存访问架构,所有处理器对内存的访问具有相同的延迟。在UMA系统中,所有处理器共享同一总线或交叉点,可以直接访问共享内存。1.2 NUMA架构:NUMA是一种非对称多处理(NUMA)系统的内存访问架构,不同处理器对内存的访问延迟可能不同。在NUMA系统中,每个...

内存管理:一文读懂Linux内存组织结构及页面布局
1) 内存又称主存,是 CPU 能直接寻址的存储空间,由半导体器件制成;2) 内存的特点是存取速率快,断电一般不保存数据,非持久化设备;2、内存的作用 1) 暂时存放 cpu 的运算数据 2) 硬盘等外部存储器交换的数据 3) 保障 cpu 计算机的稳定性和高性能 1、linux 内存地址空间 Linux 内存管理全貌 2...

20 张图揭开「内存管理」的迷雾,瞬间豁然开朗
Linux 内存管理 Linux系统中的虚拟地址空间被划分为内核空间和用户空间。内核空间关联相同的物理内存,便于内核态进程访问。用户空间则包含代码段、全局变量、BSS、函数栈、堆内存和映射区。总结 通过隔离虚拟地址空间,操作系统使得进程之间互不干扰,物理内存紧张时通过内存交换管理。内存分段与分页机制提供了...

linux内存管理(详解)
Linux通过虚拟内存管理技术,每个进程都有4GB独立的虚拟地址空间,就像虚拟网盘,看似大空间,实则在需要时动态分配。用户空间(0x00000000~0xBFFFFFFF,3GB)和内核空间(0xC0000000~0xFFFFFFFF,1GB)各有分工,后者用于存放内核镜像等。内存管理的核心是地址转换,通过MMU将虚拟地址映射到物理地址,分为DMA...

linux内核分析:linux内核的整体架构和子系统划分
Linux内核架构分为五大子系统,分别为进程调度、内存管理、虚拟文件系统、网络子系统和设备管理(IPC子系统略)。其中,进程调度子系统负责CPU资源的分配与管理,确保应用程序能有效利用CPU时间。该子系统包括四个模块,专门针对任务优先级、时间片分配、抢占策略及调度算法进行设计。内存管理子系统则提供对内存...

linux内核由哪几部分组成,简述各部分作用?
一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、虚拟文件系统和网络接口。1、内存管理 内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。Linux内存管理支持虚拟内存,而多余出的这部分内存就是通过磁盘申请得到的,平时...

简述linux的体系结构
Linux体系结构的精髓 Linux作为一款自由开放的操作系统,其架构独具特色,由内核、实用工具和应用软件三大部分构建而成。接下来,让我们深入剖析。心脏——内核 Linux内核是操作系统的基石,它肩负着管理硬件资源和提供系统接口的重要职责。内核由众多模块构建,如进程管理、内存管理、文件系统和设备驱动,它们...

深入解析Linux架构层掌握操作系统的核心机制linux架构层
Linux架构层模型共分为5层,这五层分别为:硬件层、核心层、应用程序框架层、用户接口层和应用程序层。硬件层:硬件层是整个Linux系统的基础,它包括中央处理器(CPU)、内存、存储设备、外设等。Linux操作系统中的守护进程也是位于硬件层。守护进程是根据`\/etc\/inittab`中的配置来启动的,它会自动在系统...

linux的内核参数详解linux的内核参数
一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、虚拟文件系统和网络接口。 1、内存管理 内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。 Linux内存管理支持虚拟内存,而多余出的这部分内存就是通过磁盘申请得到的,平时系统只把当...

相似回答
大家正在搜