- 1
- 0
- 约小于1千字
- 约 6页
- 2026-01-27 发布于北京
- 举报
Linux内核?
第九讲Linux内存子系统主讲人:赵亚华章培训网、[]华章培训网
概述第2页一、内存子系统 1、4G地址空间 1.1.Linux进程有4G的虚拟地址空间,其中最上面1G 是属于内核的,下面3G是属于各个进程。 1.2.cpu执行指令时按照虚拟地址寻址,通过隐藏在 程序员后面的MMU生成物理地址。 1.3.MMU中最重要的是可编程的页表,它提供了虚拟 地址到物理地址的映射。 1.4.最终的结果是系统中可以有多个或者多段且不共 享相同的虚拟地址,只要它们通过MMU映射在不 同的物理地址即可
概述第3页 2、内核的任务 2.1.内核需要为每一个进程提供一套页表,从而为各 个进程配置不同的页表映射。 比如进程1的虚拟地址100映射到物理地址200, 而进程2的虚拟地址100则映射到物理地址300, 以此类推。 2.2.内核需要为各个进程提供内存动态分配机制。 2.3.堆和栈。 2.4.内核需要动态回收不需要的物理内存,其原则是 为了更高效的执行效率。
分配与回收第4页二、内存分配与回收 1、内存分配 1.1.基于栈的自动分配。 1.2.基于堆的动态分配。 1.3.动态分配流程 首先要分配虚拟地址空间,也就是生成并填充 vm_area_struct数据结构。 其次等待该地址首次被访问,根据页表项映射寻 址物理页面或者发生缺页。 1.4.缺页中断(异常)
分配与回收第5页 2、内存回收 1.1.回收时机。 1.2.回收策略。 1.3.进程exit时的回收 回收task_struct中的字段指示的资源。 回收task_struct本身。 1.4.lru与缓存 1.5.奇怪的free
感谢您对华章培训网的支持!.
原创力文档

文档评论(0)