Skip to content

7月21日笔记

lirui edited this page Jul 21, 2020 · 1 revision

7.4 Belady现象和局部置换算法比较

Belady现象:采用FIFO等算法时,可能出现分配的物理页面数增加,缺页次数反而升高的异常现象

原因:FIFO算法的置换特征与进程访问内存的动态特征矛盾;被它置换出去的页面并不一定是进程近期不会访问的

LRU算法和FIFO本质上都是先进先出的思路

LRU依据页面的最近访问时间排序,LRU需要动态地调整顺序

FIFO依据页面进入内存的时间排序,FIFO的页面进入时间是固定不变的

LRU可退化成FIFO

如页面进入内存后没有被访问,最近访问时间与进入内存的时间相同

LRU算法性能较好,但系统开销较大

FIFO算法系统开销较小,会发生Belady现象

Clock算法是它们的折中

页面访问时,不动态调整页面在链表中的顺序,仅做标记

缺页时,再把它移动到链表末尾

对于未被访问的页面,Clock和LRU算法的表现一样好

对于被访问过的页面,Clock算法不能记录准确访问顺序,而LRU算法可以

7.5 页表自映射

页表自映射

x86-32页表自映射

riscv32页表自映射

RISCV页表项中的flags,明确表示它指向的是数据页(VRW),还是下层页表(V);在访问一级页表虚地址期间,将它对应的二级页表项flags置位VRW;访问二级页表本身,还需要再加一个自映射的二级页表项,其flags为VRW。

Clone this wiki locally