如何进行分页存储器管理的实验?

小贝
预计阅读时长 8 分钟
位置: 首页 小红书 正文

分页存储器管理实验

一、实验目的与要求

分页存储器管理实验

1、学习i386处理器的二级页表硬件机制:通过实际操作,深入理解i386处理器在分页存储器管理中的工作原理。

2、理解分页存储器管理原理:掌握虚拟地址到物理地址的映射机制。

3、查看EOS应用程序进程和系统进程的二级页表映射信息:通过具体实验,观察和分析页目录和页表的管理方式。

4、编程修改页目录和页表的映射关系:实践分页地址变换原理,增强对分页存储管理的理解。

二、实验环境

1、操作系统:Windows XP

2、开发平台:Tevation OS Lab

3、实验对象:EOS操作系统

三、实验步骤

分页存储器管理实验

准备实验

1、启动OS Lab:打开Tevation OS Lab集成环境。

2、新建一个EOS应用程序项目:按照指导创建并配置一个新的EOS应用程序项目。

查看EOS应用程序进程的页目录和页表

1、使用memory.c文件替换源代码:将提供的memory.c文件中的源代码复制到EOS应用程序项目的EOSApp.c文件中。

2、添加getcr3.asm文件

右键点击“项目管理器”窗口中的“源文件”文件夹节点。

分页存储器管理实验

选择“添加”中的“添加新文件”,选择“asm源文件”模板。

在“名称”中输入文件名称“func”。

点击“添加”按钮,并将getcr3.asm文件中的源代码复制到func.asm文件中。

3、生成并启动调试

按F7生成修改后的EOS应用程序项目。

按F5启动调试。

4、查看输出信息

应用程序执行的过程中,会将该进程的二级页表映射信息输出到虚拟机窗口和OS Lab“输出”窗口中。

将“输出”窗口中的内容复制到一个文本文件中以备分析。

查看应用程序进程和系统进程并发时的页目录和页表

1、修改EOS应用程序:取消EOSApp.c第121行语句(该语句会让程序等待10秒)的注释。

2、生成并启动调试

按F7生成修改后的EOS应用程序项目。

按F5启动调试。

3、切换控制台查看系统进程信息

在“Console-1”中应用程序等待期间,按Ctrl+F2切换到“Console-2”。

输入命令“mm”后按回车,查看系统进程的二级页表映射信息。

将输出内容复制到文本文件中。

4、比较两个进程的页表信息:结合图示,分析应用程序进程和系统进程页目录和页表的差异与共性。

查看应用程序进程并发时的页目录和页表

1、再次修改EOS应用程序:取消EOSApp.c第201行语句(该语句会让程序再次等待10秒)的注释。

2、生成并启动调试

按F7生成修改后的EOS应用程序项目。

按F5启动调试。

3、创建并发进程

在“Console-1”中会自动执行EOSApp.exe,创建该应用程序进程。

利用等待时间,按Ctrl+F2切换到“Console-2”。

输入eosapp命令后按回车,再执行一个EOSApp.exe,创建第二个并发进程。

4、查看并发进程的页表信息

由EOSApp.exe创建的两个并发进程会先后在各自的控制台和OS Lab“输出”窗口中,输出各自的二级页表映射信息。

将输出内容复制到文本文件中。

5、比较并分析:结合图示,分析两个并发进程的用户地址空间和物理页映射情况。

在二级页表中映射新申请的物理页

1、验证第一个上文归纳

新建一个EOS Kernel项目。

打开ke/sysproc.c文件和本实验文件夹中的MapNewPage.c文件。

在sysproc.c文件的ConsoleCmdMemoryMap函数中找到“关中断”的代码行,将MapNewPage.c文件中的代码插入到“关中断”代码行的后面。

按F7生成该内核项目。

按F5启动调试。

在EOS控制台中输入命令“mm”后按回车,OS Lab会弹出一个调试异常对话框,选择“是”进行调试异常,黄色箭头指向访问虚拟地址0xE0000000的代码行,由于该虚拟地址没有映射物理内存,结束此次调试,然后删除或者注释会触发异常的该行代码。

2、验证其他上文归纳

按F7生成该内核项目。

按F5启动调试。

在EOS控制台中输入命令“mm”后按回车,在OS Lab的“输出”窗口中查看执行的结果,并将“输出”窗口中的内容复制到一个文本文件中。

四、实验小结

通过本次实验,学生能够更深入地理解分页存储器管理的机制,包括页目录和页表的管理方式、分页地址变换原理以及如何通过编程实现这些功能,也能够观察到不同进程之间的页表变化及其对系统资源的影响。

五、相关问题与解答栏目

问题1:在分页存储管理系统中,当访问的页不在内存时会发生什么?如何处理?

*解释:* 此问题旨在考察对分页系统中缺页中断处理的理解。

问题2:为什么需要二级页表?一级页表是否足够?

*解释:* 这个问题针对分页机制的设计原理,探讨二级页表的必要性和优势。

问题3:在实现页置换算法时,FIFO和LRU各自有何优缺点?在什么场景下会选择不同的置换算法?

*解释:* 此问题鼓励学生思考不同置换算法的特点及适用场景,提高对算法实际应用的理解。

到此,以上就是小编对于“分页存储器管理实验”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

-- 展开阅读全文 --
头像
当前网络现状如何?深度分析揭示真相!
« 上一篇 2024-11-29
如何申请APP网站的支付接口?详细流程解析!
下一篇 » 2024-11-29

相关文章

取消
微信二维码
支付宝二维码

发表评论

暂无评论,1人围观

目录[+]