首页 > 编程知识 正文

页面置换算法课程设计,第二次机会页面置换算法

时间:2023-05-06 04:21:36 阅读:163075 作者:3462

如果在地址映射过程中注意到内存中没有页面中要访问的页面,则会发生页面错误。 发生页面错误时,如果操作系统的内存中没有空闲页面,则操作系统需要从内存中选择页面并将其移出内存,以确保要调用的页面的可用空间。 选择丢弃哪个页面的规则是页面置换算法

一、先进先出(FIFO)

1)原理:丢弃驻留时间最长的页面替换算法

2)举例:

在寻呼中,在物理块为3的情况下,使用FIFO页置换算法、序列4、3、2、1、4、5、4、3、2、1、5来计算丢失次数和丢失率?

算法执行如下操作步骤:

运行程序时,首先将4、3、2三页加载到内存中。 如果进程随后尝试访问页面1,则会发生缺页。 此时,根据先进先出置换算法,页面4首先进入内存,所以交换页面4。 同样,4 3 5分别替换3、2、1。 进程4在尝试访问时,因为它已经存在于存储器中,所以没有必要发生缺页; 页面2试图访问时,又引起页面不足而废弃4; 按顺序类推直到访问最后一页。 图为使用先进先出置换算法的置换图。 从图中可以看出,使用先进先出置换算法发生了9次缺页。 先进先出的页面置换正好比最优置换算法的页面置换多一倍;

如果数字不在框内,在旁边找(擦掉)最长的连续数字,填写新数字

如果数字在框中,则不进行更改。 也就是说,是空白列

缺页次数=总列数-空白列数=9

缺页率=不足页数/总列数=75%

(3)特点

优点先进的先进先出算法实现简单,是最直观的算法

缺点:先进先出的性能最差,不符合普通页面的使用规则,因此实用较少

二、最近最久未使用(LRU)

(1)原理:选择最近和最早使用的页面并丢弃

(2)举例:

在寻呼中,利用LRU页面替换算法,在序列7、0、1、2、0、3、0、4、2、3、0、3、2、0、1、7、0、1物理块为3的情况下,页面缺失次数和页面

运行程序时,首先将7、0、1三页加载到内存中。 如果进程随后尝试访问页面2,则会发生缺页。 此时,根据最近未使用置换算法,由于页7最近不使用,因此丢弃页7; 如果进程0进行访问,则不需要发生缺页,因为内存中已经存在该错误。 进程尝试访问页面3时,页面1最近不常用,因此将丢弃页面1; 按顺序类推直到访问最后一页。 下图是采用最近最不使用的替换算法的替换图。 从图中可以看出,使用最近最早的未使用的置换算法发生了9次缺页。算法执行如下操作步骤:

如果数字不在框中,请从头开始查找并替换第一个未剪切的数字

数字在框中,从前到后切与数字相同数量的第一个数字

3)特点

优点实用多

缺点:实施需要大量硬件支持,这会增加硬件成本

三、最佳置换算法(OPT)

(1)原理:每次选择并丢弃以后长期不访问或以后不再使用的页面。

(2)举例:假设系统为进程分配了三个物理块,并且有以下页面:

7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,0,1

算法执行如下操作步骤:

运行程序时,首先将7、0、1三页加载到内存中。 如果进程随后尝试访问页面2,则会发生缺页。 在这种情况下,根据最佳替换算法,页7被第十八次访问,页0被第五次访问,页1被第十四次访问,由于页7不是最长使用的,页7被丢弃; 如果进程0进行访问,则不需要发生缺页,因为内存中已经存在该错误。 页3试图访问时,又引起页不足而废弃1; 按顺序类推直到访问最后一页。 下图为采用最佳置换算法的置换图。 从图中可以看出,使用最佳的置换算法发生了6次缺页。 如果数字不在框中,请查找并替换当前到最后一个要访问的数字

如果数字在框中,则不进行更改,而是向后移动

(3)特点

缺点:最优置换算法是理想化算法,虽然具有很好的性能,但是实际上无法实现(无法预测一个进程内的几个页面中哪个页面最长不会被访问)

优点:最佳替换算法可保证最小的页面错误率

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。