Skip to content

模型Model

局部与全局页面替换

Local page replacement · Global page replacement · 局部全局替换

在固定交错访问轨迹上比较全局LRU与局部配额,逐步复算缺页和淘汰对象,并用反向例子说明隔离与容量共享的取舍。

一个进程访问新页时,应该只淘汰自己的旧页,还是也能拿走其他进程的帧?页框所有权可以保持正确,另一进程的性能却仍被影响。页框分配的安全机制之外,还需要规定替换的候选范围。

形式陈述 ​

先固定候选域,再选其中最旧的一页 ​

本页从MEM-16中拿出4个可替换帧,其余12帧不参加实验。P和Q的页互不共享、只读、等大;引用按给定顺序执行。访问的页不在驻留集合时记一次缺页,调入后才继续下一项;忽略I/O耗时、脏页写回、预取和并发竞态。每次比较都从空驻留集独立重放。

全局替换允许缺页进程在全部4个帧中选牺牲页;空闲帧优先,满后在全体驻留页中淘汰最久未访问者。局部替换给P、Q各2帧固定配额;某进程用满自己的2帧后,只能淘汰自己的页,不能借用另一份配额,即使另一进程暂时不用。

两者都使用分页问题中的LRU规则作为候选域内部的工具:每次命中或调入都把该页移到“最近访问”端,满时删除另一端最旧页。比较的变量是候选域与配额,不是把一种LRU和另一种随机替换混比。局部策略也可以用Clock,全局策略也可以用别的排序;这些词本身不指定LRU。

直觉

一次扫描可能把别人的热页推远 ​

P反复用a、b;Q随后扫描此前没用过的z、w、u、v。全局LRU只看全机最近顺序,Q每访问一张新页,都可能让P的a、b显得更旧。即使P下次回来马上还要用它们,过去的全局顺序也不知道这个未来。

固定局部配额把影响限制在本进程内部。Q的扫描会反复替换自己的两帧,P的a、b可留在P的两帧中。代价是配额不能及时借给更需要空间的进程;隔离和共享不是同一个优化目标。

例子与边界

十二步轨迹,逐一交出受害者 ​

使用交错序列

Pa, Pb, Qx, Qy, Pa, Pb, Qz, Qw, Qu, Qv, Pa, Pb。

下表“缺页→某页”表示缺页且淘汰该页;“缺页→空”表示使用空闲帧。局部行分别维持各进程自己的LRU顺序。

步 引用 全局4帧 局部P2+Q2
1 Pa 缺页→空 缺页→空
2 Pb 缺页→空 缺页→空
3 Qx 缺页→空 缺页→空
4 Qy 缺页→空 缺页→空
5 Pa 命中 命中
6 Pb 命中 命中
7 Qz 缺页→Qx 缺页→Qx
8 Qw 缺页→Qy 缺页→Qy
9 Qu 缺页→Pa 缺页→Qz
10 Qv 缺页→Pb 缺页→Qw
11 Pa 缺页→Qz 命中
12 Pb 缺页→Qw 命中

前6步两者相同。第6步后,全局从旧到新为 Qx,Qy,Pa,Pb;第8步后变成 Pa,Pb,Qz,Qw;第9、10步Q继续扫描,才把P的页挤出。最后两步P回来,产生额外两次缺页。

用相同访问序列比较候选域

全局缺页10次,局部缺页8次。按进程拆开,全局是P4、Q6;局部是P2、Q6。Q的缺页数相同,差异全在P受到的跨进程干扰。只看总数能判断这条轨迹的代价,却看不出是谁承担了它。

反向例子:另一份配额空着也不能借 ​

重新从空状态开始,Q不再访问,P独自执行 a b c 四轮,共12次引用。全局4帧首次装入a、b、c后全命中,总缺页3。局部策略仍只给P2帧;每次回到一个页时,它都已成为上一轮被淘汰者,总缺页12。Q的2帧始终闲置也帮不上忙。

这个例子否定“局部替换总更好”,上一例则否定“全局LRU总更好”。两者的可用信息和限制不同,不能从单进程LRU随容量增大不多缺页的性质,直接推出一个多进程共享政策支配所有局部配额政策。全局容量变大并不等于每个进程获得了稳定的大配额。

固定轨迹比较的范围 ​

这两次实验固定了逻辑访问顺序。真实机器上,缺页会阻塞某进程,从而改变调度次序;不同策略可能生成不同的墙钟交错。要预测真实吞吐,需要把I/O队列、CPU调度与访问生成方式一同建模。本页的10比8是给定引用序列的确定结果,不是任意运行条件下的时间比。

页大小、页身份和共享处理也要一致。若P与Q都映射同一个只读页,不能在一个策略中把它算一帧、另一个策略里算两帧。脏页的淘汰成本不同,则相同缺页次数也未必对应相同I/O量。

推论与应用

配额可以调整,但需补上调整合同 ​

可以设计介于两端的政策:保留每进程最低保障,其余帧共享;或根据工作集估计动态改变目标驻留量。此时“局部”或“全局”的名称不足以复算结果,还要给出何时借帧、由谁让出、何时收回,以及配额变化是否触发立即淘汰。

给P从2帧提高到3帧,能修复第二例的周期缺页,但这第三帧若来自另一活跃进程,可能把压力转移过去。因此系统判断不只需要某个受益进程的缺页曲线,还要知道全体活跃需求是否能装进总预算。

一张完整实验记录至少包括访问序列、每次命中/缺页、被淘汰页、每进程缺页总数和最后驻留集。将本例P热页改为a、b、c而仍只给2帧,是一个有用迁移练习:配额隔离能防止Q夺帧,却不能修复P自己需求大于配额的问题。

参考资料
  • Arpaci-Dusseau与Arpaci-Dusseau,OSTEP, Ch.22, §§22.3–22.6及§22.11:页替换比较、访问历史与过载背景。本文两条多进程LRU轨迹及固定配额合同为自定实验,不引用它们为教材原例。
  • Peter J. Denning,“The Working Set Model for Program Behavior”,1968,pp.326、330–332,工作集、系统需求与平衡政策:驻留需求与并行活跃集合的联系,供动态配额扩展阅读。
关系图谱5 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系

使用的工具

被这些条目使用