一次访问序列里缺了几次页
运行下面这段程序,填写它打印出来的结果。 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 //
自己写:带权限的翻译
翻译时顺带检查权限:不在表里返回「缺页」,权限不够返回「拒绝」,否则返回物理地址。