LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

随笔分类 -  Linux内存管理

Linux内存管理 (10)缺页中断处理
摘要:专题:Linux内存管理专题 关键词:数据异常、缺页中断、匿名页面、文件映射页面、写时复制页面、swap页面。 malloc()和mmap()等内存分配函数,在分配时只是建立了进程虚拟地址空间,并没有分配虚拟内存对应的物理内存。 当进程访问这些没有建立映射关系的虚拟内存时,处理器自动触发一个缺页异常 阅读全文

posted @ 2018-01-31 23:01 ArnoldLu 阅读(18998) 评论(0) 推荐(0) 编辑

Linux内存管理 (9)mmap
摘要:专题:Linux内存管理专题 关键词:文件映射、匿名映射、私有映射、共享映射 mmap/munmap是常用的一个系统调用,使用场景是:分配内存、读写大文件、连接动态库文件、多进程间共享内存。 更详细解读参考《Linux内存管理 (9)mmap(补充)》。 1. mmap/munmap介绍 mmap/ 阅读全文

posted @ 2018-01-27 21:59 ArnoldLu 阅读(7900) 评论(0) 推荐(0) 编辑

Linux内存管理 (8)malloc
摘要:专题:Linux内存管理专题 关键词:malloc、brk、VMA、VM_LOCK、normal page、special page。 每章问答: malloc()函数是C函数库封装的一个核心函数,对应的系统调用是brk()。 1. brk实现 要了解brk的实现首先需要知道进程用户空间的划分,以及 阅读全文

posted @ 2018-01-27 21:57 ArnoldLu 阅读(6399) 评论(0) 推荐(1) 编辑

Linux内存管理 (7)VMA操作
摘要:专题:Linux内存管理专题 关键词:VMA、vm_area_struct、查找/插入/合并VMA、红黑树。 用户进程可以拥有3GB大小的空间,远大于物理内存,那么这些用户进程的虚拟地址空间是如何管理的呢? malloc()或mmap()操作都会要求在虚拟地址空间中分配内存块,但这些内存在物理上往往 阅读全文

posted @ 2018-01-27 21:56 ArnoldLu 阅读(8181) 评论(0) 推荐(0) 编辑

Linux内存管理 (6)vmalloc
摘要:专题:Linux内存管理专题 关键词:vmalloc、页对齐、虚拟地址连续、物理不连续 至此,已经介绍了集中内核中内存分配函数,在开始简单做个对比总结Linux中常用内存分配函数的异同点,然后重点介绍了vmalloc相关的hole查找,页面分配等等。 vmalloc的核心是在vmalloc区域中找到 阅读全文

posted @ 2018-01-21 22:19 ArnoldLu 阅读(16770) 评论(0) 推荐(3) 编辑

Linux内存管理 (5)slab分配器
摘要:专题:Linux内存管理专题 关键词:slab/slub/slob、slab描述符、kmalloc、本地/共享对象缓冲池、slabs_partial/slabs_full/slabs_free、avail/limit/batchcount。 从Linux内存管理框架图可以知道:slab/slub/s 阅读全文

posted @ 2018-01-09 22:57 ArnoldLu 阅读(9324) 评论(1) 推荐(0) 编辑

Linux内存管理 (4)分配物理页面
摘要:专题:Linux内存管理专题 关键词:分配掩码、伙伴系统、水位(watermark)、空闲伙伴块合并。 我们知道Linux内存管理是以页为单位进行的,对内存的管理是通过伙伴系统进行。 从Linux内存管理框架图可知,页面分配器是其他林林总总内存操作的基础。 这也是为什么在介绍了《Linux内存管理 阅读全文

posted @ 2018-01-09 22:55 ArnoldLu 阅读(7027) 评论(0) 推荐(0) 编辑

Linux内存管理 (3)内核内存的布局图
摘要:专题:Linux内存管理专题 关键词:内核内存布局图、lowmem线性映射区、kernel image、ZONE_NORMAL、ZONE_HIGHMEM、swapper_pg_dir、fixmap、vector、pkmap。 内核内存布局图对于理解内存管理至关重要,有了布局图对于理解内存管理初始化, 阅读全文

posted @ 2017-12-30 22:44 ArnoldLu 阅读(20625) 评论(2) 推荐(0) 编辑

Linux内存管理 (2)页表的映射过程
摘要:专题:Linux内存管理专题 关键词:swapper_pd_dir、ARM PGD/PTE、Linux PGD/PTE、pgd_offset_k。 Linux下的页表映射分为两种,一是Linux自身的页表映射,另一种是ARM32 MMU硬件的映射。 1. ARM32页表映射 由于ARM32和Linu 阅读全文

posted @ 2017-12-30 22:41 ArnoldLu 阅读(21437) 评论(1) 推荐(0) 编辑

Linux内存管理 (1)物理内存初始化
摘要:专题:Linux内存管理专题 关键词:用户内核空间划分、Node/Zone/Page、memblock、PGD/PUD/PMD/PTE、lowmem/highmem、ZONE_DMA/ZONE_NORMAL/ZONE_HIGHMEM、Watermark、MIGRATE_TYPES。 物理内存初始化是 阅读全文

posted @ 2017-12-30 22:40 ArnoldLu 阅读(19552) 评论(0) 推荐(3) 编辑

Linux内存管理专题
摘要:Linux的内存管理涉及到的内容非常庞杂,而且与内核的方方面面耦合在一起,想要理解透彻非常困难。 在开始学习之前进行了一些准备工作《如何展开Linux Memory Management学习?》, 1. 参考资料 遂决定以如下资料作为参考,进行Linux内存管理的研究: 《奔跑吧 Linux内核》: 阅读全文

posted @ 2017-12-17 23:12 ArnoldLu 阅读(23785) 评论(2) 推荐(7) 编辑

阅读ARM Memory(L1/L2/MMU)笔记
摘要:《ARM Architecture Reference Manual ARMv8-A》里面有Memory层级框架图,从中可以看出L1、L2、DRAM、Disk、MMU之间的关系,以及他们在整个存储系统中扮演的角色。 涉及到的相关文档有: 《ARM Architecture Reference Man 阅读全文

posted @ 2017-11-23 10:41 ArnoldLu 阅读(18224) 评论(0) 推荐(2) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示