• 友链

  • 首页

  • 文章归档
h u a n b l o g
h u a n b l o g

欢

HI,Friend

01月
23
操作系统

页面置换算法

发表于 2022-01-23 • 字数统计 3510 • 被 1,515 人看爆

OPT

理想页面置换算法(Optimal replacement,OPT)
OPT算法淘汰以后不再需要的或者在最长时间以后才会用到的页面

页面走向可以从左往右看

例题

某程序在内存中分配三个页面,初始为空,所需页面的走向为4,3,2,1,4,3,5,4,3,2,1,5。采用OPT算法,计算缺页次数。

列表

页面走向432143543215
时间短-页432111555211
时间中-页 43333333522
时间长-页 4444444355
是否缺页 否否 否否 否

解题过程:

   开始时,内存中三个页面都是空的,故产生第一个缺页异常,需要把页面4调入。同样也产生第二个缺页异常,需要把页面3调入;产生第三个缺页异常,需要把页面2调入
   此时,三个页面都已满了,根据OPT的原则,发现页面2比页面3,4需要更长时间才会出现,把页面2替换成页面1,继续走向页面4,发现有页面4存在,无需替换,则没有缺页情况;
   继续,直到走到页面5,发现没有页面5存在,查找当前存在的页面,发现页面1需要很长时间才会用到,替换页面1;走到页面4,发现有页面4存在,无缺页情况;继续,直到走到页面2,发现内存中没有页面2存在,然后查找,发现除了页面5后面要用到,其它都不需要,那么选一个替换(两个都可以,这里选中时间长的),后面也是上面步骤
   缺页异常为7次

FIFO

先进先出页面置换算法(First-In First-Out,FIFO)
总是选择最先装入内存的页面调出,或者说,把驻留在内存中时间最长的那一页调出。

页面走向可以从右往左看

例题1

某程序在内存中分配三个页面,初始为空,所需页面的走向为4,3,2,1,4,3,5,4,3,2,1,5。采用FIFO算法,计算缺页次数。

列表

页面走向432143543215
时间短-页432143555211
时间中-页 43214333522
时间长-页 4321444355
是否缺页 否否 否

解题过程

基本思路和OPT一样,只不过淘汰的是存在时间最长的(OPT是淘汰很长时间不用的)
缺页异常9次

例题2

某程序在内存中分配m个页面,初始为空,所需页面的走向为1,2,3,4,1,2,5,1,2,3,4,5。m=3,m=4时,使用FIFO算法,计算缺页次数。说明所出现的现象

解题过程
m = 3时

走向123412512345
时间短-页123412555344
时间中-页 12341222533
时间长-页 1234111255
是否缺页 否否 否

缺页异常9次

m = 4时

走向123412512345
时间短-页123444512345
时间中-页 12333451234
时间长-页 1222345123
时间长最页 111234512
是否缺页 否否

缺页异常10次

Belady现象:

当分配给进程的页面数增加时,缺页次数反而增加

LRU

最近最少使用算法(Least Recently Used,LRU)
总是选择距离现在最长时间内没有被访问过的页面先调出。

页面走向可以从右往左看

例题

某程序在内存中分配三个页面,初始为空,所需页面的走向为4,3,2,1,4,3,5,4,3,2,1,5。采用FIFO算法,计算缺页次数。

列表
时间短中长页面为:没有被访问过的时间长短

页面走向432143543215
时间短-页432143543215
时间中-页 43214354321
时间长-页 4321435432
是否缺页 否否

解题过程

   基本过程和FIFO一样,只是每次要按没被访问过的时间排列。
   向上面的无缺页那项,按照没被访问过的时间重新排列,长时间没被访问过的放在最下面(也就是具体该页面最远的),其次是最近时间访问过的
   产生10次缺页异常

缺页率

f = F / A
F为缺页次数,A为页面总访问次数

参考

  • 英俊帅比林-页面置换算法(OPT,FIFO,LRU)
  • fkissx-操作系统之页面置换算法
分享到:
Unity编辑器扩展二
Unity编辑器扩展一
  • 文章目录
  • 站点概览
欢

网红 欢

你能抓到我么?

Email RSS
看爆 Top5
  • mac系统版本与Xcode版本有冲突 4,082次看爆
  • JAVA_HOME环境配置问题 3,733次看爆
  • AssetBundle使用 3,501次看爆
  • VSCode配置C++开发环境 3,259次看爆
  • Lua反射 3,135次看爆

Copyright © 2025 欢 粤ICP备2020105803号-1

由 Halo 强力驱动 · Theme by Sagiri · 站点地图