读书笔记之深入理解Linux虚拟内存管理
New_Worms
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mlock函数的2.4内核实现
Linux可以通过系统调用mlock()锁住给定地址范围的内存。由sys_mlock()=>do_mlock()函数实现。1、创建VMA.2、设置VM_LOCKED.3、make_pages_present()函数保证所有的页都在内存中。与之相对应的解锁函数:munlock()由sys_munlock实现。与之类似的一对函数:mlockall()和munlockall()。只不过mlockall()实现对线程内所有的vma的锁定。...原创 2020-05-22 06:36:51 · 927 阅读 · 0 评论 -
第二章 描述物理内存(Describing Physical Memory)
This chapter describes the structrures used to keep account of memory banks(nodes), pages and flags that affect VM behavior.Node:typedef struct pglist_data {____zone_t node_zones[MAX_NR_ZONES];...原创 2020-06-01 06:10:59 · 310 阅读 · 0 评论 -
第四章 进程地址空间(Process Address Space)
第四章主要讨论如下问题:1、线性地址空间的构成及其各个部分的用途。(4.1)2、与进程相关的结构mm_struct以及mm_struct的配置、初始化和释放。(4.2,4.3)3、如何创建进程地址空间中的私有区域以及与之相关的函数,同时涉及到与进程相关的异常处理、缺页中断等。4、介绍内核与用户空间之间如何相互正确地拷贝数据。4.1 Linear Address Space...原创 2020-02-08 22:38:36 · 790 阅读 · 0 评论 -
第三章 页表管理(Page Table Management)
3.7 地址和struct page之间的映射Linux使用mem_map全局数组,实现快速虚拟地址到物理地址的映射(或者struct page 映射到他们的物理地址)。在x86中,Linux把从0开始的物理地址直接映射成从PAGE_OFFSET(3G)开始的虚拟地址。#define __PAGE_OFFSET_______(0xC0000000)#define __pa(x)__...原创 2020-02-07 16:22:43 · 1490 阅读 · 0 评论
分享