计算机操作系统——页面置换算法

一、 实验目的

1、用C语言编写OPT、FIFO、LRU,LFU四种置换算法。
2、熟悉内存分页管理策略。
3、了解页面置换的算法。
4、掌握一般常用的调度算法。
5、根据方案使算法得以模拟实现。
6、锻炼知识的运用能力和实践能力。

二、 实验仪器设备

Microsoft Visual C++ 6.0

三、 实验原理或算法

  1. OPT基本思想:
    是用一维数组page[pSIZE]存储页面号序列,memery[mSIZE]是存储装入物理块中的页面。数组next[mSIZE]记录物理块中对应页面的最后访问时间。每当发生缺页时,就从物理块中找出最后访问时间最大的页面,调出该页,换入所缺的页面。
  2. FIFO基本思想:
    是用队列存储内存中的页面,队列的特点是先进先出,与该算法是一致的,所以每当发生缺页时,就从队头删除一页,而从队尾加入缺页。或者借助辅助数组time[mSIZE]记录物理块中对应页面的进入时间,每次需要置换时换出进入时间最小的页面。
  3. LRU基本思想:
    是用一维数组page[pSIZE]存储页面号序列,memery[mSIZE]是存储装入物理块中的页面。数组flag[10]标记页面的访问时间。每当使用页面时,刷新访问时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的页面。

四、 程序代码及验证过程

实验代码调试:
在这里插入图片描述

  1. 程序模拟演示
    程序初始化:
    在这里插入图片描述
    载入相关数据;
    在这里插入图片描述
    进入选择置换算法界面:
    在这里插入图片描述
    进入选择置换算法界面:
    在这里插入图片描述
    选择先进先出算法,得出缺页次数、缺页率、置换次数以及访问命中率:
    在这里插入图片描述
  2. 根据模拟过程计算教材书课后习题13:
    在一个请求分页系统中,采用FIFO页面置换算法时,加入一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果:
    (1)当分配3个物理块时:
    程序初始化,由题载入相关数据:在这里插入图片描述

进入选择置换算法界面,选择先进先出算法,得出缺页次数9、缺页率9/12、置换次数6以及访问命中率25%:在这里插入图片描述
(2)当分配4个物理块时:
重新运行程序,由题载入相关数据:
在这里插入图片描述
进入选择置换算法界面,选择先进先出算法,得出缺页次数10、缺页率10/12、置换次数6以及访问命中率16%:在这里插入图片描述
(3) 通过不同物理块数所得缺页次数和缺页率,比较两次程序运行结果:
M=3,M=4表格:
在这里插入图片描述
缺页次数9、缺页率9/12、置换次数6以及访问命中率25%
在这里插入图片描述
缺页次数10、缺页率10/12、置换次数6以及访问命中率16%

结论:
在页面走向为4、3、2、1、4、3、5、4、3、2、1、5的一个作业中,采用FIFO页面置换算法时,分配3个物理块时的缺页次数和缺页率,效果更理想。由此可见,增加分配给作业的内存块数,反而增加了缺页次数,提高了缺页率,这种线性被称为Belady现象。

五、 实验总结

  1. 在进程运行过程中,若其访问的页面不在内存而需把它们调入内存,但内存以无空闲空间时,为了保证该进程能正常的运行,系统必须从内存中调出一页程序或数据送磁盘的兑换区中,但应将哪个页面调出,需根据一定的算法来确定。通常,把选择换成页面的算法称为页面置换算法。
  2. 页面置换算法主要有以下置换算法:OPT(最佳置换算法)、FIFO(先进先出置换算法)、LRU(最近最久未使用算法)。每种算法都有各自的优缺点,OPT算法是实际中不能实现的,但是可以利用该算法去评价其它算法;FIFO算法与进程实际运行的规律不相适用因为在进程中,有些页面经常被访问:LRU算法是根据页面调入内存后的使用情况进行决策的。
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值