-
Notifications
You must be signed in to change notification settings - Fork 1
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。