读深入理解Linux内核 (第9章 进程地址空间, 第二部分 ---- 内存区域)
2016-11-01 21:46
961 查看
内存区域
内存区域(数据结构:vm_area_struct)定义一段线性区域。下图是进程地址空间,内存描述符和内存区域的关系图。内存描述符指向一个内存区域的链表,链表上的内存区域表达了进程的地址空间。红黑树
为了支持内存区域的高效检索,插入和删除,linux2.6同时引入红黑树来存储内存区域。内存区域访问权限
内存区域由多个页面组成。内存区域的访问权限,比如是否可写,可执行等。这些信息必须同步到页对应的页表项里面,这样权限的检测可以通过硬件(页单元电路)执行。因此,每次增加一个页面到内存区域,都需要根据内存区域的访问权限来设置该页对应的页表项。
内存区域的操作
主要是do_mmap()和do_munmap(),分别扩大和收缩地址空间。do_mmap()为当前进程创建和初始化一个内存区域,当然该内存区域创建后,也可能和其他内存区域合并。该函数包括参数,文件和偏移(当map一个文件到地址空间时),起始地址,长度,和访问标志等。
相关文章推荐
- 读深入理解Linux内核 (第9章 进程地址空间, 第一部分 ---- 概念)
- 深入理解Linux内核个人小结9---进程地址空间
- 读深入理解Linux内核 (第8章 内存管理, 第二部分 --- 任意长度内存分配)
- 深入理解Linux内核-进程地址空间
- 深入理解Linux内核之内存管理
- 深入理解Linux 内核 chp 2 内存寻址
- 深入理解LINUX 内核 之 进程学习
- 深入理解linux内核之(二)进程
- 深入理解Linux内核个人小结3--进程
- [翻译]内存 - 第二部分:理解进程内存
- 深入理解SELinux SEAndroid 第二部分
- 深入理解Linux内核---进程
- 深入理解Linux内核-进程调度
- 深入理解linux内核---进程(上)
- 深入理解Linux内核 chap 7 进程调度
- 深入理解Linux内核之内存寻址笔记-2
- 深入理解SELinux SEAndroid(第二部分)
- 读书笔记--深入理解Linux内核-第七章 进程调度
- 深入理解Linux内核个人小结8---内存区管理
- 深入理解linux内核之内存寻址