1.vma_area_struct
vma_operations_struct
mm_struct
内存映射 MMAP系统调用
do_mmap
linux
缓存区高速缓存区 –写磁盘先写缓存,再写磁盘
sync()
页高速缓存区
交换高速缓存区
=======================================
1内存寻址
逻辑地址——》线性地址(虚拟)-》物理地址
mmu 分段-》分页
cs 代码段
ss 栈
ds 数据
GDT&LDT
代码段+数据段+kernel代码段+kernel数据段
页32bit 10+10+12(4K)
cr3存放页目录地址(10)
页地址(10)
扩展
TLB
两级 10+22(4M)
cache
linux 内核 从 0x00100000开始
临时前8M为临时内存
内核地址空间的最后128 MiB用于何种用途呢?如图3-15所示,该部分有3个用途.
虚拟内存中连续、但物理内存中不连续的内存区,可以在vmalloc区域分配。该机制通常用于用户过程,内核自身会试图尽力避免非连续的物理地址。内核通常会成功,因为大部分大的内存块都在启动时分配给内核,那时内存的碎片尚不严重。但在已经运行了很长时间的系统上,在内核需要物理内存时,就可能出现可用空间不连续的情况。此类情况,主要出现在动态加载模块时
持久映射用于将高端内存域中的非持久页映射到内核中
固定映射是与物理地址空间中的固定页关联的虚拟地址空间项,但具体关联的页帧可以自由
选择。它与通过固定公式与物理内存关联的直接映射页相反,虚拟固定映射地址与物理内存位置之间
的关联可以自行定义,关联建立后内核总是会注意到的
https://www.cnblogs.com/tolimit/p/4585803.html
kmap高端映射d