内核-内存管理
文章平均质量分 87
小槿12358
这个作者很懒,什么都没留下…
展开
-
实际物理内存16G,但可用的只有2G,远小于实际物理内存
1、X86 架构机器在上电之后,BIOS 会初始化并探测系统可用和预留的内存信息,并将其存储在指定位置,内核在初始 话过程中,可以通过 BIOS 提供的一系列中断来获得内存相关的信息。[ 0.000000] e820: BIOS-provided physical RAM map:[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x00000000000997ff] usable[ 0.000000] BIOS-e820: [mem 0x原创 2022-02-15 10:59:45 · 7755 阅读 · 0 评论 -
linux内存源码分析 - SLAB分配器概述
在页框分配器中主要是管理物理内存,将物理内存的页框分配给申请者,而且我们知道也可页框大小为4K(也可设置为4M),这时候就会有个问题,如果我只需要1KB大小的内存,页框分配器也不得不分配一个4KB的页框给申请者,这样就会有3KB被白白浪费掉了。为了应对这种情况,在页框分配器上一层又做了一层SLAB层,SLAB分配器的作用就是从页框分配器中拿出一些页框,专门把这些页框拆分成一小块一小块的小内存,当申请者申请的是小内存时,系统就会从SLAB中获取一小块分配给申请者。它们的整个关系如下图:...转载 2021-09-30 14:07:57 · 199 阅读 · 0 评论 -
linux内存管理源码分析 - 页框分配器
转载自linux内存管理源码分析 - 页框分配器 - tolimit - 博客园 (cnblogs.com)内存的分段和分页实际中编码时遇到的内存地址并不是对应于实际内存上的地址,我们编码中使用的地址是一个逻辑地址,会通过分段和分页这两个机制把它转为物理地址。而由于linux使用的分段机制有限,可以认为,linux下的逻辑地址=线性地址。也就是,我们编码使用的是线性地址,之后只需要经过一个分页机制就可以把这个地址转为物理地址了。所以我们更重要的可能是去说明一下linux的分页模型。 .转载 2021-09-30 09:48:00 · 257 阅读 · 0 评论