两个程序访问同一个虚拟地址

两个程序各有一张表,访问同一个虚拟地址,看它们落在哪儿、会不会撞上。

开始练习 →

共享一页的时候

两个程序故意映到同一个物理页(比如共享库)。看它们的虚拟地址不同、物理地址却相同。

开始练习 →

⚠️ 表填错了,隔离就没了

本该各用各的物理页,却把两张表都填成了同一页。⚠️ 程序照样跑,只是两个程序开始互相踩——把正确的和错误的都打出来。

开始练习 →

讲清一次翻译要讲哪几步

要把一次地址翻译讲清楚,至少要说明【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。给一串访问,算出总代价。

开始练习 →

⚠️ 平均值把那一次缺页藏起来了

一千次访问里有一次缺页。算出「平均代价 / 缺页占总代价的比例」(保留两位小数)。

开始练习 →