全文预览

分页存储器管理

上传者:梦&殇 |  格式:docx  |  页数:8 |  大小:0KB

文档介绍
(第413行),将MapNewPage.c文件中的代码插入到“关中断”代码行的后面。Р按F7生成该内核项目。Р按F5启动调试。Р在E。腔制台中输入命令“mn”后按回车。РOSLab会弹出一个调试异常对话框,选择“是”调试异常。Р黄色箭头指向访问虚拟地址OxEOOOOOOO的代码行。由于该虚拟地址没有映射物理内存(图16・2和图16-3中都未映射该虚拟地址),所以对该虚拟地址的访问会触发异常。Р结束此次调试,然后删除或者注释会触发异常的该行代码。按照下面的步骤验证其它结论:Р按F7生成该内核项目。Р按F5启动调试。Р在EO腔制台中输入命令“mn”后按回车。Р在OSLab的“输出”窗口中查看执行的结果,并将“输出”窗口中的内容复制到一个文本文件中。Р结合插入的源代码和执行的结果理解上面的结论。注意,在代码中修改了虚拟地址OxEOOOOOOO处的内存的值,然后从虚拟地址OxEOOOIOOO处读取到了相同的值,原因是这两处虚拟地址映射到了相同的物理页。Р四、思考与练习Р观察之前输出的页目录和页表的映射关系,可以看到页目录的第0x300个PD耿射的页框号就是页目录РР本身,说明页目录被复用为了页表。而恰恰就是这种映射关系决定了4K的页目录映射在虚拟地址空间的РOxCO3OOOOO・OxCO3OOFFF,4M的页表映射在OxCOOOOOOO-OxCO3FFFFF。现在,假设修改了页目录,使其第0x1。。个PD映射的页框号是页目录本身,此时页目录和页表会映射在4G虚拟地址空间的什么位置呢?说明计算方法。Р修改EOSApp.C中的源代码,通过编程的方式统计并输出用户地址空间占用的内存数目。Р修改EOSApp.C中的源代码,通过编程的方式统计并输出页目录和页表的数目。注意页目录被复用为页表。Р在EOSB动时,软盘引导扇区被加载到从OX7COO开始的512个字节的物理内存中,计算一下其所在的物

收藏

分享

举报
下载此文档