深入理解Linux内核-进程地址空间

给内核分配内存和给用户态进程分配内存是有区别的:
1、内核的优先级最高,如果某个内核函数请求动态内存,不会被延时
2、内核信任自己,不必保护措施
3、用户态进程对动态内存的请求被认为不是紧迫的,总是被尽量推迟分配
4、用户进程总是不可信任的

进程的地址空间:
1、由允许进程使用的全部线性地址组成。
2、每个进程的线性地址集合是不同的。
3、每个进程允许有65536个不同的线性区
4、线性区由链表和红黑数保存
5、

内存的描述符:

内核线程的内存描述符:

线性区数据结构:

线性区的访问权限:

线性区的查找、插入、分配、释放

缺页异常处理:
1、处理地址空间以外的错误地址
2、处理地址空间以内的错误地址

请求调页

写时复制:

处理非连续内存区访问:

创建和删除进程的地址空间:

堆的管理:

原文地址:https://www.cnblogs.com/lipeil/p/4723275.html