OS161 Memory Management
Author: 咳嗽di小鱼 Date: November 20, 2011 Category: Sum Up 19 Comments
这次Assignment除了Physical Memory Management, 其他几个部分都相互关联. 所以在设计完成前几部分的时候, 最好将所有需要解决的问题都搞明白, 然后统一设计Address Space的结构.
TLB Management
和TLB有关的, 需要解决的问题有这么几个:
- Context Switch的时候, 如果不是两个不同的thread, 则不需要flush TLB
- 当TLB被占满的时候, 要替换最老的TLB entry
- TLB内保存read-only信息
然后一个一个说…
- 只要检查上一次flush TLB时候的thread, 和现在的是不是同一个thread即可
- 这部分这次Assignment已经把code写好大半了…`你需要做的就是把tlb_get_rr_victim return回来的那个entry替换掉
- 理解MIPS TLB的每个flag bits的用处, 然后把read-only flag放在对应的位置.
当程序试图写入一个read-only的memory时候, vm_fault拿到的faulttype是VM_FAULT_READONLY.
Don't PANIC!!!
TLB基本就这么多= =||`没啥东西…