Linux中有关地址机制的思维导图,包括地址机制概念、MM_STRUCT 结构、VM_AREA_STRUCT 结构、红黑树结构
树图思维导图提供 地址机制思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 地址机制思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:7b3e71c297215a0e8bd2ef759a54e5b3
地址机制思维导图思维导图模板大纲
建立几种存储媒介(内存,辅存,虚存)间的关联,完成地址间的相互转换
磁盘文件到虚拟内存的映射
虚拟内存到物理内存的映射
用来描述一个进程的虚拟地址空间
每个进程只有一个 mm_struct 结构
在每个进程的 task_struct 结构中,有一个指向该进程的结构
mm_struct 结构是对整个用户空间的描述
一个进程的虚拟空间中可能有多个虚拟区间
当虚拟区间较少时采用单链表,由 mmap 指针指向这个链表
当虚拟区间多时采用“红黑树(red_black tree)”结构,由 mm_rb 指向这颗树
vm_area_struct 描述进程的一个虚拟地址区间
vm_flag 是描述对虚拟区间的操作的标志
VM_DENYWRITE
在这个区间映射一个打开后不能用来写的文件
VM_EXEC
页可以被执行
VM_EXECUTABLE
页含有可执行代码
VM_GROWSDOWN
这个区间可以向低地址扩展
VM_GROWSUP
这个区间可以向高地址扩展
VM_IO
这个区间映射一个设备的 I/O 地址空间
VM_LOCKED
页被锁住不能被交换出去
VM_MAYEXEC
VM_EXEC 标志可以被设置
VM_MAYREAD
子主题 1VM_READ 标志可以被设置
VM_MAYSHARE
VM_SHARE 标志可以被设置
VM_MAYWRITE
VM_WRITE 标志可以被设置
VM_READ
页是可读的
VM_SHARED
页可以被多个进程共享
VM_SHM
页用于 IPC 共享内存
VM_WRITE
页是可写的
较高层次的结构 vm_area_struct 是由双向链表连接起来的,它们是按虚地址的降顺序来排列的,每个这样的结构都对应描述一个相邻的地址空间范围
每个节点着有颜色,或者为红,或者为黑
根节点为黑色
如果一个节点为红色,那么它的子节点必须为黑色
从一个节点到叶子节点上的所有路径都包含有相同的黑色节点数