作业一:《内存管理》
截止时间: 2021年3月26号23时59分
提交方式: 好大学在线 《操作系统》 2021年春- ->第五章- ->本章练习
注意: 我们已经将选课的同学名单导入到好大学在线的操作系统课程中,大家可以在“我的课程”栏目中看到《操作系统》课程,请注意课程的学期是2021春。本门课程的作业均使用好大学在线的方式进行提交,此外,每位同学还需要批改两份其他同学的作业,批改参与情况以及批改得分将作为作业成绩的参考,并不作为最终的作业成绩。
ChCore运行在64位的机器上,并且配置了4级页表,第四级为PGD,第三级为PUD,第二级为PMD,第一级为PTE。请回答以下问题:
- 在32位的机器中,巨页的大小是4M;在64位机器中,巨页的大小是2M,为什么巨页的大小不一致。
- 为什么OS/MMU使用多级页表映射虚拟地址到物理地址中?使用4级页表的最大内存空间消耗是多少?
- 在ARM-mmu架构中,mmu是如何区分页条目是否被使用。
- 使用巨页的优点和缺点分别是什么?
- 内存的属性位AP和UXN已经能够隔离用户态和内核态,为什么还需要两个ttbr寄存器?
- TLB能够缓存虚拟地址到物理地址的映射,当发生进程间的上下文切换的时候,需要刷掉所有的TLB条目,这是为什么?你能想出一种解决方式,使得TLB条目在上下文切换的时候不需要被刷掉吗?
- 在ARMv8结构之前,内存属性中没有DBM(Dirty Bit Modifier)位。这意味着硬件不支持脏页。所以OS需要如何模拟并且记录脏页呢?给出一种可行的解决办法。