首页 > 编程语言 >页面置换算法练习题

页面置换算法练习题

时间:2022-11-23 15:32:26浏览次数:49  
标签:练习题 下标 填入 置换 列表 算法 缺页 页面


例:在一个请求分页存储系统中,一个进程的页面走向为4,3,2,1,4,3,5,3,2,1,设分配给该进程的内存块数M=4,采用FIFO和LRU页面置换算法(每调进一个新页认为发生一次缺页中断)。计算缺页次数和缺页率(写出计算过程)。

页面置换算法练习题_缺页

下面简单的把计算方法解释一下:

FIFO(先进先出置换算法)

首先要根据页面走向和内存块数画出表格,行数为页面走向的数量,列数为内存块数的数量(本题中为10行4列的表格)

依次填入一个数据,所以可以填入四次,到第五个页面走向就要进行判断,也就是4,我们看到,4已经存在,则将列表空置,继续进行下一个判断,下一个为3,依旧在列表中存在,仍然置空,来到下一个数,5.我们看到5没有,根据先进先出算法,需要将第一次进入的数进行置换,也就是把4换成5,并填入到表格中,然后下面依次是3,2,1,的判断,皆存在在表格中。所以都置空。(这里补充一下,如果下次再遇到不存在的数,如6,则将第二次进入的3进行置换,也就是把3置换成6填入,以此类推)

然后进行缺页次数和缺页率的计算。

缺页次数=列总数-空白列               缺页率=缺页次数/总列数

 

LRU(最近最久未使用算法)

由于算法的不同,采用置换的方式也会不一样。这里我们引入下标来计时(实际做题中不可以写,这里写出是便于大家理解)。

我们首先填入4,下标为0,也就是在该列表中的存在时间,随着填入的数依次增大。

然后填入3,下标为0,我们这时就要把4的下标变为1

然后填入2,下标为0,此时4的下标为2,      3的下标为1

然后填入1,下标为0,此时4的下标为3,    3的下标为2,     2的下标为1

第五个数4,在该列表中存在,这时需要置空,并对4的下标进行更新,变为0,其它的继续下标加1(也就是4(0),3(3),2(2),1(1))

第六个数3,在该列表中存在,这时需要置空,并对3的下标进行更新,变为0,其它的继续下标加1(也就是4(1),3(0),2(3),1(2))

第七个数5,不存在该列表,这时需要将下标最大的进行置换,也就是2的下标最大,将2置换成5,此时为(4(2),3(1),5(0),1(3))

第八个数3,在该列表中存在,这时需要置空,并对3的下标进行更新,变为0,其它的继续下标加1(也就是4(3),3(0),5(1),1(4))

第九个数2,不存在该列表,这时需要将下标最大的进行置换,也就是1的下标最大,将1置换成2,其它的继续下标加1,(也就是4(4),3(1),5(2),2(0))

第十个数1,不存在该列表,这时需要将下标最大的进行置换,也就是4的下标最大,将4置换成1,其它的继续下标加1,(也就是1(0),3(2),5(3),2(1))

然后进行缺页次数和缺页率的计算。

缺页次数=列总数-空白列               缺页率=缺页次数/总列数

 

最后再补充一下OPT(最佳页面置换算法)

先说一下最佳页面置换算法的做题思路:就是当遇到不存在列表中的页面走向数字时,需要进行判断需要替换的数字,这里的替换是根据列表中的数字中最远的那个,就是后面的一串数中最晚出现的那个,如果出现有个数在后面没有出现过就选这个没出现的数,不会出现两个不存在的数,给的数都是比较有规律的。

回到该题,由于给的数字较少,当遇到第7个数字5的时候,需要进行判断,此时页面中的是4,3,2,1.而后面的数字依次是3,2,1.我们可以看到4,没有存在,所以直接将4替换,如果顺序是4,3,2,。那么替换的就是1了,同理,怎样变数都是这样判断的。

所以这里的数据和FIFO的数据是一样,但是原理不一样。大家要特备注意,注意替换的思路!!!

4

4

4

4

 

 

5

 

 

 

 

3

3

3

 

 

3

 

 

 

 

 

2

2

 

 

2

 

 

 

 

 

 

1

 

 

1

 

 

 

数据既然一样,那么缺页次数和缺页率也是一样的,主要是题型大家这种算法的思路!

标签:练习题,下标,填入,置换,列表,算法,缺页,页面
From: https://blog.51cto.com/u_15888443/5881378

相关文章

  • 数据结构与算法测试题
    1.完全二叉树的第5层有9个节点,该完全二叉树总计有多少个节点( B   ).A.41B.24C.40D.25完全二叉树,说明前四层都是满结点,第五层有九个结点,故有:2^4 -1=15     ......
  • P8835 [传智杯 #3 决赛] 子串 ----- KMP算法、字符串匹配、字母大小写转换
    题目背景disangan233喜欢字符串,于是disangan333想让你找一些disangan233喜欢的串。题目描述在传智的开发课堂上,希望您开发一款文档处理软件。给定 TT 组询问......
  • disjkstra算法
    图的两种表示方式邻接矩阵优点:方便查找,方便操作缺点:需要空间过大#defineMAX_N1000#defineufr(i,x,y)for(inti=x;i<=y;++i)#definelfr(i,x,y)f......
  • 6种常见排序算法实现
    importjava.util.Arrays;/***解法1:冒泡排序*解法2:插入排序*解法3:选择排序*解法4:归并排序*解法5:快速排序*解法6:堆排序*///leetcodesubmitregio......
  • node.js 实现国密算法
    node.js实现国密算法搭建node环境node.js下载官网下载:http://nodejs.cn/download/解压tar-xvfnode-v18.12.1-linux-x64.tar.xz配环境变量vi/etc/profile最......
  • 搜索引擎的那些事(32位MD5算法)
      对于学过密码学的同学来说,md5算法肯定不会很陌生。但是,对于我来说,md5是一个新的命题。那什么是md5呢?md5就是对已有的数据进行加密处理。当然,它还有别的用处,什么呢?比如......
  • 银行家算法(Java)
    系统安全状态安全状态指系统能按某种进程推进顺序(P1,P2,...,Pn)未每个进程Pi分配器所需资源,直至满足每个进程对资源的最大需求,使每个进程都可以顺利的完成,此时成(P1,P2,...,Pn)为......
  • vue 2 中防抖节流在当前页面里写
    isfilter(val){   //过滤   this.debounce(()=>{    this.init(val);   },1000);  },  debounce(fn,delay){   v......
  • wpf 子页面调用父窗口方法
     参考:http://www.360doc.com/content/17/1113/11/24811_703389993.shtml//1)子页面后台定义委托(namespace下class外)//定义委托internaldelegatevoidColorChange(o......
  • 嵌入式操作系统内核原理和开发(固定内存分配算法)
       固定内存方式是最简单的方法,也是最容易想到的方法。所谓的固定内存,就是所有分配的内存单元都是一致的。不管你申请的内存大小是多少,它都有一个最小的内存。因此,你申......