一次访问序列里缺了几次页

运行下面这段程序,填写它打印出来的结果。 PAGE = 16 PT = {0: 3, 1: 0, 2: 5} def split(va): return va // PAGE, va % PAGE def translate(v

开始练习 →

装进来之后就不缺了

运行下面这段程序,填写它打印出来的结果。 PAGE = 16 PT = {0: 3, 1: 0, 2: 5} faults = 0 for va in (50, 51, 52): vp = va // PAGE if vp

开始练习 →

自己写:按需装入

缺页时把那一页装进内存(分配一个新的物理页),再重试。数出「访问次数 / 缺页次数」。

开始练习 →

算一算缺页的平均代价

普通访问算 1,缺页算 10000。算出「缺页率 0 / 千分之一」两种情况的平均代价。

开始练习 →

⚠️ 内存超卖,赌输了会怎样

答应给程序 8 页,实际只有 4 页物理内存。⚠️ 程序真的把 8 页都用上时,缺页会开始反复发生——把「只用 4 页 / 用满 8 页」两种情况的缺页次数打出来。

开始练习 →

隔离是怎么来的

两个程序之间的内存隔离,靠的是【0】。

开始练习 →

页表项里的权限位管什么

页表项里除了物理页号,还有几个权限位。它们管的是【0】。

开始练习 →

越权访问被拦下来

运行下面这段程序,填写它打印出来的结果。 PAGE = 16 PT = {0: (3, "r"), 1: (0, "rw")} def check(va, want): vp = va //

开始练习 →

三种结果各是什么

运行下面这段程序,填写它打印出来的结果。 PAGE = 16 PT = {0: (3, "r"), 1: (0, "rw")} def check(va, want): vp = va //

开始练习 →

自己写:带权限的翻译

翻译时顺带检查权限:不在表里返回「缺页」,权限不够返回「拒绝」,否则返回物理地址。

开始练习 →