操作系统 Lab2 实验报告
17373452 单彦博
一. 思考题
1. 请思考 cache 用虚拟地址来查询的可能性,并且给出这种方式对访存带来的
好处和坏处。另外,你能否能根据前一个问题的解答来得出用物理地址来查
询的优势
可以将 cache 改为用虚拟地址来查询,这种方式相当于把查询 cache 放在
TLB 和页表前面。好处是:如果 cache 命中,则访存速度会极大地加快;坏处
是:如果 cache 不命中,则访存速度会比之前还要慢,因为这种情况是必然会
进行主存访问的。用物理地址来查询,优势是访存时间相对稳定,既不会在
cache 命中的时候过快,也不会在 cache 未命中的时候过慢。
2. 请查阅相关资料,针对我们提出的疑问,给出一个上述流程的优化版本,新
的版本需要有更快的访存效率。(提示:考虑并行执行某些步骤)
将 cache 改为用虚拟地址查询,在 cache 查询的同时通过 MMU 将虚拟地址
转化为物理地址,可以有效加快方寸效率。
3. 在我们的实验中,有许多对虚拟地址或者物理地址操作的宏函数(详见
include/mmu.h ),那么我们在调用这些宏的时候需要弄清楚需要操作的地址是
物理地址还是虚拟地址,阅读下面的代码,指出 x 是一个物理地址还是虚拟
地址
int x;
char *value = return_a_pointer();
*value = 10;
x = (int) value;
x 是虚拟地址。
评论0