内核开发实战5物理内存管理.pdfVIP

  • 4
  • 0
  • 约1.57万字
  • 约 39页
  • 2019-06-13 发布于江苏
  • 举报
操作系统内核开发实战(5 ) 物理内存管理 伯松,阿里集团 王智通,阿里云 前序课程回顾 Ø  内核引导 Ø  保护模式基础 Ø  系统调用 Ø  进程调度 •  内核引导介绍了最基本的内核编译和加载的概念 •  保护模式基础介绍了理解x86架构下开发操作系统内核所需了解 的体系结构基本知识点 •  系统调用介绍了应用程序访问内核和与其它进程通信的接口与 基本实现原理 •  进程调度介绍了最基本的进程调度和进程切换算法与实现细节 本节课,我们开始进入内存管理的讨论话题,首先是内存管理中的 基础话题,即对物理内存的动态管理。 物理内存管理—— 引子 •  内存管理器如何知道有多少内存可以管理? •  内核初始化过程中也需要分配内存,这时内存管理器还没有初始 化完成,那是先有鸡还是先有蛋呢? •  大片连续物理内存,和小块内存对象在内核中是如何被管理和分 配的? •  物理内存管理和虚拟内存管理有什么区别和联系? •  物理内存管理典型的算法有哪些? 本节课主要阐述操作系统内核中对物理内存进行管理(分配和回收) 的基本原理与知识点,大家在学习完本节课后,会对上述问题做出 自己的理解和回答。 物理内存管理—— 内容概要 •  物理内存与虚拟内存管理 •  物理内存管理做什么 •  物理内存探测 •  物理内存管理初始化 •  物理内存页管理 •  内核数据对象管理 •  物理内存与虚拟内存的联系 物理内存管理——物理与虚拟内存管理 虚拟内存通过页表映射到物理内存 已分配的虚拟内存 已映射的虚拟内存页 未分配的地址空间 未分配的物理内存 已分配的物理内存 进程1地址空间 物理内存 进程2地址空间 虚拟内存 虚拟内存 物理内存管理——物理与虚拟内存管理 (Cont.) 虚拟内存管理 管理进程线性地址空间中的页与物理内存中的页之间的映射 •  内存映射 •  共享内存 •  缺页处理 •  内存交换与回写 上述内容将在第六节 《虚拟内存管理》中介绍,本节课不涉及虚拟 内存管理的主要内容。 物理内存管理——物理与虚拟内存管理 (Cont.) 物理内存管理 管理系统所有的物理内存,分配和释放物理内存 •  内核空间的内存申请和释放 •  用户空间实际请求和释放物理内存 •  与虚拟内存管理的互动 除了满足内核本身数据结构的内存管理外,物理内存管理是虚拟内 存管理的基础。当虚拟内存申请实际物理内存页或回收用户内存时, 会与物理内存管理系统交互。 虚拟内存和物理内存管理进行交互时的基本内存管理单位是页(在 32位x86系统下通常为4KB ) 物理内存管理——物理与虚拟内存管理 (Cont.) 关于页表 •  内核空间的物理内存分配和释放,不涉及页表操作 •  所有页表映射在内核初始化时已设置,可以直接访问 •  物理内存大于1GB时需要设置临时映射区 •  用户态申请物理内存时会涉及到修改页表建立地址映射的操作 •  可以分配大于1GB的物理内存区域 •  内核不能直接访问,如果要访问也需要查页表 物理内存管理——物理内存管理做什么 MLXOS物理内存管理主要的工作如下: •  探测系统可用物理内存地址空间分布 •  初始化物理内存管理系统 •  在内存管理器尚未初始化完毕之前,申请和释放物理内存 •  在内存管理器初始化完成后,申请和释放大片连续物理内存 •  在内存管理器初始化完成后,申请和释放内核数据结构 后续内容会就以上5点内

文档评论(0)

1亿VIP精品文档

相关文档