oslab oranges 一个操作系统的实现 实验三 认识保护模式(二):分页
实验目的: 掌握内存分页机制 对应章节: 3.3 实验内容: 1.认真阅读章节资料,掌握什么是分页机制 2. 调试代码,掌握分页机制基本方法与思路 – 代码3.22中,212行---237行,设置断点调试这几个循环,分析究竟在这里做了什么? 3. 掌握PDE,PTE的计算方法 – 动手画一画这个映射图 4. 熟悉如何获取当前系统内存布局的方法 5. 掌握内存地址映射关系的切换 – 画出流程图 6. 基础题:依据实验的代码, – 自定义一个函数,给定一个虚拟地址,能够返回该地址从虚拟地址到物理地址的计算 过程,如果该地址不存在,则返回一个错误提示。 – 完善分页管理功能,补充alloc_pages, free_pages两个函数功能 7. 进阶题(选做) – 设计一个内存管理器,选择其一实现:首次适应算法、最佳适应算法、伙伴算法,要 求实现内存的分配与回收。(提示,均按照页为最小单位进行分配、对于空闲空间管 理可采用位图法或者双向链表法管理) 完成本次实验要思考的问题: 1. 分页和分段有何区别?在本次实验中,段页机制是怎么搭配工作 的? 2. PDE、PTE,是什么?例程中如何进行初始化?CPU是怎样访问 到 PDE、PTE,从而计算出物理地址的? 3. 为什么PageTblBase初始值为2M+4K? 4. 怎么读取本机的实际物理内存信息? 5. 如何进行地址映射与切换? 6.