两个程序访问同一个虚拟地址
两个程序各有一张表,访问同一个虚拟地址,看它们落在哪儿、会不会撞上。
开始练习 →
共享一页的时候
两个程序故意映到同一个物理页(比如共享库)。看它们的虚拟地址不同、物理地址却相同。
开始练习 →
⚠️ 表填错了,隔离就没了
本该各用各的物理页,却把两张表都填成了同一页。⚠️ 程序照样跑,只是两个程序开始互相踩——把正确的和错误的都打出来。
开始练习 →
讲清一次翻译要讲哪几步
要把一次地址翻译讲清楚,至少要说明【0】。
开始练习 →
翻译失败有几种,怎么分
翻译没成功时,要分清是【0】。
开始练习 →
一次翻译的完整记录
运行下面这段程序,填写它打印出来的结果。 PAGE = 16 PT = {0: 3, 1: 0, 2: 5} def split(va): return va // PAGE, va % PAGE def translate(v
开始练习 →
自己写:一份翻译说明
把一次翻译的四步都记下来:虚拟地址 / 页号-偏移 / 物理页号 / 物理地址。
开始练习 →
加上失败的两种情况
让说明能处理三种结果:翻译成功、缺页、越权。
开始练习 →
算一次访问的真实代价
TLB 命中算 1,TLB 未命中要查页表算 2,缺页算 10000。给一串访问,算出总代价。
开始练习 →
⚠️ 平均值把那一次缺页藏起来了
一千次访问里有一次缺页。算出「平均代价 / 缺页占总代价的比例」(保留两位小数)。
开始练习 →