ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:272.80KB ,
资源ID:1854832      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1854832.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统实验 虚拟存储管理最佳置换先进先出最近最久未使用.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统实验 虚拟存储管理最佳置换先进先出最近最久未使用.docx

1、操作系统实验 虚拟存储管理最佳置换先进先出最近最久未使用学号 P7* 专业 计算机科学与技术 姓名 实验日期 2017/11/30 教师签字 成绩 实验报告【实验名称】 虚拟存储管理 【实验目的】 模拟请求分页虚拟存储管理技术中的硬件地址变换、缺页中断以及页式淘汰算法,处理缺页中断。 清楚认识请求分页管理。 采用最佳置换算法实现分页管理的缺页调度。 采用先进先出算法实现分页管理的缺页调度。 采用LRU算法实现分页管理的缺页调度。【实验原理】 C语言程序设计 数据结构 最佳置换算法: 其所选择的淘汰页面将是以后永不使用的,或许是在最长(未来)时间内不再被访问的页面。采用最佳置换算法通常可保证获得

2、最低的缺页率。 先入先出置换算法: 该算法总是淘汰最先进入内存的页面。 最近最久未被访问算法: 选取过去中最久未被访问的页面进行替换。【实验内容】数据结构和符号说明a) 数据结构2 struct PAGE_LIST3 4 int id;/ 块号5 int flag;/ 自适应标志6 page_listMAX;7 int N = 0;/ 页面表大小8 int orderMAX;/ 调用串9 / 调用长度10 int M = 0;/ 定义输出内容11 int GMAXMAX;/ 输出置换图12 int I, J;/ 置换图扫描指针13 int LLMAX;/ 缺页序列14 int LI;/ 缺页序

3、列扫描指针15 int RLMAX;/ 置换序列16 / 置换序列扫描指针17 int RI;函数说明:void init();/ 初始化函数void print();/ 输出函数void Optimal();/ 最佳置换算法void FIFO()/ 先进先出算法void LRU();/ 最近最久未使用算法流程图最佳置换算法:先进先出置换算法:最近最久未被访问算法:代码:#include #define MAX 100struct PAGE_LIST int id;/ 块号 int flag;/ 自适应标志 page_listMAX;int N = 0;/ 页面表大小int orderMAX;

4、/ 调用串 / 调用长度int M = 0;/ 定义输出内容int GMAXMAX;/ 输出置换图int I, J;/ 置换图扫描指针int LLMAX;/ 缺页序列int LI;/ 缺页序列扫描指针int RLMAX;/ 置换序列 / 置换序列扫描指针int RI;/ 初始化函数void init() int i; I = 0; J = 0; LI = 0; RI = 0; for (i = 0; i100; i+) page_listi.id = -1; page_listi.flag = 999; printf(请输入页表的大小:); scanf(%d, &N); printf(请输入调

5、用长度:); scanf(%d, &M); printf(请输入调用串:n); for (i = 0; iM; i+) scanf(%d, &orderi);/ 输出函数void display() int i, j; float x; printf(置换图为:n); for (i = 0; iN; i+) printf(n); for (j = 0; jJ; j+) printf(= ); printf(n); for (j = 0; jJ; j+) printf(%3d , Gij); printf(n); printf(n缺页序列为:n); for (i = 0; iLI; i+) pr

6、intf(%3d , LLi); printf(n置换序列为:n); for (i = 0; iRI; i+) printf(%3d , RLi); x = (float)J / (float)M; x *= 100; printf(n缺页率为:n%3.2f%n, x);/ 判断页是否在页表内int IsExist(int x) int i; for (i = 0; iN; i+) if (page_listi.id = x) return 1; return 0;/ 最佳置换算法/ 此算法中自适应标志代表后面序列中是否访问到了此位置void Optimal() int i, j, k; in

7、t cou; init(); for (i = 0; iN; i+) page_listi.id = orderi; for (j = 0; jN; j+) GIJ = page_listj.id; I+; I = 0; J+; LLLI = orderi; LI+; for (; iM; i+) if (!IsExist(orderi) cou = 0; for (j = i + 1; jM; j+) if (cou = N - 1) break; for (k = 0; kN; k+) if (page_listk.id = orderj & page_listk.flag != 0) p

8、age_listk.flag = 0; cou+; for (j = 0; jN; j+) if (page_listj.flag != 0) page_listj.id = orderi; break; for (j = 0; jN; j+) GIJ = page_listj.id; I+; I = 0; J+; LLLI = orderi; LI+; RLRI = orderi; RI+; for (j = 0; jN; j+) page_listj.flag = 999; / 先进先出算法/ 此算法中自适应标志不需要使用void FIFO() int i, j; int pos = 0;

9、 init(); for (i = 0; iM; i+) if (!IsExist(orderi) page_listpos.id = orderi; pos = (pos + 1) % N; for (j = 0; j= N) RLRI = orderi; RI+; / 最近最久未使用算法/ 此算法中自适应标志为起未被使用的次数void LRU() int i, j; int pos, max; init(); for (i = 0; iM; i+) if (!IsExist(orderi) pos = 0; max = 0; for (j = 0; j max) pos = j; max

10、= page_listj.flag; page_listpos.id = orderi; page_listpos.flag = 0; for (j = 0; j= N) RLRI = orderi; RI+; else for (j = 0; jN; j+) if (page_listj.id = orderi) page_listj.flag = 0; break; for (j = 0; jN; j+) if (page_listj.id = orderi) continue; else page_listj.flag+; int main() int select; do printf

11、( 页面置换算法n); printf( 1.最佳置换算法(Optimal)n 2.先进先出算法(FIFO) n); printf( 3.最近最久未使用算法(LRU)n 4.退出程序 n); printf(请输入您想要执行的操作:); scanf(%d, &select); switch (select) case 1: Optimal(); display(); break; case 2: FIFO(); display(); break; case 3: LRU(); display(); break; case 4: return 0; default: printf(输入有误,请重新输入!n); while (1); return 0;结果截图最佳置换算法先进先出算法:最近最久未使用算法:【小结或讨论】三种算法的主要区别是确定替换物理块的方式不同:1、对于先进先出置换算法,设置一个指针,循环从block的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1