【操作系统原理实验】页面替换策略模拟实现

您所在的位置:网站首页 操作系统pba 【操作系统原理实验】页面替换策略模拟实现

【操作系统原理实验】页面替换策略模拟实现

2023-03-09 14:47| 来源: 网络整理| 查看: 265

选择一种高级语言如C/C++等,编写一个页面替换算法的模拟实现程序。1) 设计内存管理相关数据结构;2) 随机生成一个页面请求序列;3) 设置内存管理模拟的关键参数;4) 实现该页面置换算法;5) 模拟实现给定配置请求序列的换页过程,计算换页率。

(1)设计思想: 1、设置结构体页面信息,包括页面号和被访问标记,对物理块分配初值,使物理块页面号为-1,表示没有放入,被访问标记为0。分配页面,输入页面数量和页面号。 2、选择算法: (1)opt最佳置换算法 1、opt算法:需要发生页面置换时,算法总是选择在将来最不可能访问的页面进行置换。 2、对内存进行遍历,寻找内存中时是否有该页面,有该页面则显示该页面已经在内存中,当没有该页面时,查找是否有空闲块,如果物理块有空位则直接插入,使count++,表示页面插入,没有空位,则选择未来没有出现的或者出现最晚的页面,通过for循环找到物理块中保存的页面号在页面中对应的位置,查找要置换的页面,找到位置最远的物理块保存的页面号,将该页面置换出去,使change++,表示页面置换,然后显示置换完一次后的物理块。 3、输出缺页次数、置换次数和缺页率。 在这里插入图片描述

(2)fifo先进先出算法 1、fifo算法:算法总是选择在队列中等待时间最长的页面进行置换。 2、对内存进行遍历,寻找内存中时是否有该页面,有该页面则显示该页面已经在内存中,当没有该页面时,查找是否有空闲块,如果物理块有空位则直接插入,使count++,表示页面插入,没有空位,找到访问量最大的物理块对应的页面号,将它置换出去,change++,页面进入后,每个再进入一个页面停留的时间+1。 3、输出缺页次数、置换次数和缺页率。 在这里插入图片描述

(3)lru最近最久未使用或者最少使用置换算法 1、lru算法:如果某一个页面被访问了,它很可能还要被访问;相反,如果它长时间不被访问,那么,在最近未来是不大可能被访问的。 2、对内存进行遍历,寻找内存中时是否有该页面,有该页面则显示该页面已经在内存中,当没有该页面时,查找是否有空闲块,如果物理块有空位则直接插入,将该物理块页面号停留时间重置,使count++,表示页面插入,没有空位,找到停留时间最大的物理块,将它置换出去,change++,页面进入后,每个再进入一个页面停留的时间+1。 3、输出缺页次数、置换次数和缺页率。 在这里插入图片描述

(2)功能函数设计: void convertopage()//分配页面 void blockclear()//物理块分配初值 int findspage()//查找是否有空闲块 int findexist(int curpage)//寻找内存中时是否有该页面 int findreplace()//查找要置换的页面 void showall()//显示整体置换玩的页面 void show()//显示置换完一次后的block void opt()//最佳置换算法 void FIFO()//先进先出算法 void lur()//最近最久未使用或者最少使用置换算法 (3)结果演示: 1、opt最佳置换算法 在这里插入图片描述

2、fifo先进先出算法 在这里插入图片描述

3、lru最近最久未使用或者最少使用置换算法 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3