读深入理解Linux内核 (第8章 内存管理, 第一部分 --- 页的管理)
来源:互联网 发布:买淘宝号一个多少钱 编辑:程序博客网 时间:2024/05/21 17:38
页的管理
每个内存页面对应一个页描述符,所有的页描述符存放在一个连续的内存区域。所以,通过页面的地址可以很方便得到描述符的地址,比如virt_to_page(addr),通过页地址得到页描述符地址。页描述符携带了该页的使用情况。
1. 内存访问的不一致性
我们通常以为内存里的单元是没差别的,事实上,不同的内存位置(结点)CPU访问时间可能不同。同一结点,不同的地址范围用途不同,比如有的是高端内存。因此同一内存结点下又分为不同的内存区域(Zone)。页面的申请需要声明从那个Zone里面申请。
2. 页的申请和释放
操作系统通过内存区域分配器(ZoneAllocator)管理着内存区域(Zone),比如alloc_pages(gfp_mask,order),gfp_mask指明了内存区域的类别等,而order是指,分配2的order次方个页面,这些页面是连续的。
3. Buddy(伙伴)系统
具体内存区域(Zone)里面的页面由Buddy系统管理。区域里的页面一开始被分配到11个组里面,1个page,2个page,4个,8个...直到1024个。分配时,找最小的满足需求的连续页面,剩余的页面放到其它组里面。所以,随着系统的运行,连续页面越来越少,如果驱动需要用到连续的物理页面,就应该在初始化时申请好。
0 0
- 读深入理解Linux内核 (第8章 内存管理, 第一部分 --- 页的管理)
- 读深入理解Linux内核 (第8章 内存管理, 第三部分 --- 虚拟内存分配)
- 读深入理解Linux内核 (第8章 内存管理, 第二部分 --- 任意长度内存分配)
- 读深入理解Linux内核 (第9章 进程地址空间, 第一部分 ---- 概念)
- 读深入理解Linux内核 (第9章 进程地址空间, 第二部分 ---- 内存区域)
- 《深入理解Linux内核》读书笔记:内存管理
- 深入理解Linux内核day07--内存管理
- 深入理解Linux内核个人小结8---内存区管理
- 读深入理解Linux内核 (第6章 时间管理)
- 深入理解linux内核架构(内存管理)
- 《深入理解LINUX内核》学习笔记——内存管理
- 深入理解Linux内核——内存管理
- 深入理解 Linux 内存管理
- 深入理解linux内存管理之 页表管理
- 《深入理解LINUX内存管理》学习笔记(一)0.02.01修正版,红字部分为修正后的内容
- 深入理解Linux内存管理 - 物理内存
- 深入理解Linux内核之内存管理
- 【Linux】深入理解Linux中内存管理
- python 入门学习之 python 入门指令
- CentOS yum安装mysql&&jdk&&tomcat
- 牛客网刷题之从上往下打印二叉树
- zabbix 监控zookeeper
- ubuntu 安装crossover
- 读深入理解Linux内核 (第8章 内存管理, 第一部分 --- 页的管理)
- 表达式语法分析——递归子程序法
- js获取textarea中的值
- ACM新生选拔赛第三场题解
- 点击linearlayout,改变背景颜色
- Lucas定理&&hdu3037
- How to use the function of assembly.
- iOS网页-加载网页(UIWebView)
- 捕捉存储过程错误