- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验八 分页存储器管理
实验目的
·学习 i386 处理器的二级页表硬件机制,理解分页存储器管理原理。
·查看 EOS 应用程序进程和系统进程的二级页表映射信息,理解页目录和页表的管理方式。
·编程修改页目录和页表的映射关系,理解分页地址变换原理。
实验内容
执行了实验指导书3.2的步骤,观察到了EOS 应用程序进程的页目录和页表,
说明了页目录所在的物理页框号是从 CR3 寄存器中取得的,并且在页目录中显示了所有有效的 PDE 的下标和 PDE 的值。在各个页表中也同样显示了所有有效的PTE 的下标和值。在下标为 0x200 的 PDE 对应的页表中,所有的 1024 个 PTE都映射了物理页,且这 1024 个物理页的物理页框号是连续的。页目录和物理页中都标记了它们所在的逻辑地址,也就是说通过访问这些逻辑地址,就可以访问这些物理页中的数据。但是,在页表中却标记了每个页表所能够映射的 4MB 逻辑地址空间的基址,这样可以方便用户从页表信息中迅速掌握进程在 4GB 逻辑地址空间中的布局。当EOS操作系统启动i386处理器的分页机制后,就只能使用逻辑地址(虚拟地址)来访问物理内存,所以只有知道了页目录和页表的虚拟地址,才能够访问它们。
针对实验指导书3.2中提出的问题,进行以下尝试和回答:
应用程序进程的页目录和页表一共占用了几个物理页?页框号分别是多少?
答:页目录占用一个物理页,页框号是0x409;页表占用5个物理页,页框号分别是是0x41D、0x401、0x403、0x404、0x402。
映射用户地址空间(低 2G)的页表的物理页框号是多少?该页表有几个有效的 PTE,或者说有几个物理页用来装载应用程序的代码和数据?物理页框号分别是多少?
答:映射用户地址空间的页表的页框号是0x41D;该页表有11个有效的PTE;物理页框号分别是0x41E、0x41F、0x420、0x421、0x422、0x423、0x424、0x425、0x426、0x427、0x428。
3、 执行了实验指导书3.3的步骤,观察到了应用程序进程和系统进程并发时系统进程的页目录和页表。学到了页目录在虚拟地址空间中的基址的获得方式:页目录的第0x300个PDE映射的页表就是页目录本身,这样页表(页目录)的第0x300个PTE又映射到页目录,所以用PDE标号(0x300)做32位线性地址的高10位,用PTE标号(0x300)做12-22位,就得到了地址0xC0300000。同理,页表在虚拟地址空间中基址的获得方式:页目录的第0x300个PDE映射的页表是页目录本身,而且页目录的第0x0个PDE映射了第0x0个页表,所以页表(页目录)的第0x0个PTE就映射到第0x0个页表。用PDE标号(0x300)做32位线性地址的高10位,用PTE标号(0x0)做12-22位,就得到了地址0xC0000000。
4、 针对实验指导书3.3中提出的问题,进行以下尝试和回答:
EOS 启动后系统进程是一直运行的,所以当创建应用程序进程后,系统中就同时存在了两个进程,这两个进程是否有各自的页目录?在页目录映射的页表中,哪些是应用程序进程和系统进程共享的,哪些是独占的?分析其中的原因。
答:系统进程和应用程序进程一定有各自的页目录;映射了用户地址空间的页表被应用程序进程独占,页框号是0x41D,映射了内核地址空间的页表都是共享的。
统计当应用程序进程和系统进程并发时,总共有多少物理页被占用?
答:系统进程占用的物理页只有页目录与其不同,所以应用程序进程占用的1066物理页,系统进程页目录占用的1物理页,总共1067物理页被占用。
思考为什么系统进程(即内核地址空间)占用的物理页会减少?
答:应用程序结束后,EOS内核会删除应用程序进程在内核地址空间中占用的内存,例如删除PCB对象等。这些内存必须要回收,否则如果一个应用程序反复运行多次,内核空间就有可能被耗尽,操作系统就失去了可靠性。
5、 执行了实验指导书3.4的步骤,观察到了同一个应用程序的可执行文件创建的两个应用程序进程在并发时各自的页目录和页表,学习到了多个应用程序进程是如何共享内核空间的,以及同一个应用程序的不同进程是如何拥有各自独立的用户空间,从而完成隔离的。
同一个应用程序创建的两个并发的进程,它们的用户虚拟地址空间完全相同,而映射的物理页完全不同,从而保证相同的行为(执行过程)可以在独立的空
间内完成。
6、 针对实验指导书3.4中提出的问题,进行以下尝试和回答:
假设进程一使用的 0x416 和 0x417 物理页保存了应用程序的可执行代码,由于可执行代码通常是不变的、只读的,现在假设优化过的 EOS 允许同一个应用程序创建的多个进程可以共享那些保存了可执行代码的物理页,尝试结合图 16-3 写出共
文档评论(0)