文档详情

请求页式存储管理中常用页面置换算法.doc

发布:2019-03-30约8.1千字共15页下载文档
文本预览下载声明
PAGE PAGE 1 计算机操作系统 实 验 报 告 课程名称 计算机操作系统 实验项目名称 请求页式存储管理中常用页面置换算法模拟 学号 20111214034 班级 计1103 姓名 韩瑶 专业 计算机科学与技术 实验地点 12J-661实验室 济南大学 信息科学与技术学院 2013年xx月xx日 一、实验概述 1. 实验名称 请求页式存储管理中常用页面置换算法管理 2. 实验目的 (1)了解内存分页管理策略 (2)掌握调页策略 (3)掌握一般常用的调度算法 (4)学会各种存储分配算法的实现方法。 (5)了解页面大小和内存实际容量对命中率的影响 3. 实验内容 (1)采用页式分配存储方案,通过分别计算不同算法的命中率来比较算法的优劣,同时也考虑页面大小及内存实际容量对命中率的影响; (2)实现OPT 算法 (最优置换算法)?、LRU 算法 (Least Recently)?、 FIFO 算法 (First IN First Out)的模拟; (3)使用某种编程语言模拟页面置换算法。 二、实验环境 C语言 三、实验过程 1. 设计思路和流程图 选择置换算法,先输入所有页面号,为系统分配物理块,依次进行置换 将页号放入物理块中,编号加1 将页号放入物理块中,编号加1 引用串编号大于物理块数? 载入页号序列,从第0个得到页号 开始 页号在物理块中? 根据选择的置换算法完成置换 页号序列载完? 结束 是 否 是 是 是 是 2. 算法实现 (1)OPT基本思想: 是用一维数组page[pSIZE]存储页面号序列,memery[mSIZE]是存储装入物理块中的页面。数组next[mSIZE]记录物理块中对应页面的最后访问时间。每当发生缺页时,就从物理块中找出最后访问时间最大的页面,调出该页,换入所缺的页面。 (2)FIFO基本思想: 是用队列存储内存中的页面,队列的特点是先进先出,与该算法是一致的,所以每当发生缺页时,就从队头删除一页,而从队尾加入缺页。或者借助辅助数组time[mSIZE]记录物理块中对应页面的进入时间,每次需要置换时换出进入时间最小的页面。 (3)LRU基本思想: 是用一维数组page[pSIZE]存储页面号序列,memery[mSIZE]是存储装入物理块中的页面。数组flag[10]标记页面的访问时间。每当使用页面时,刷新访问时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的页面。 3.源程序并附上注释 #include stdio.h #include stdlib.h /*全局变量*/ int mSIZE; /*物理块数*/ int pSIZE; /*页面号引用串个数*/ static int memery[10]={0}; /*物理块中的页号*/ static int page[100]={0}; /*页面号引用串*/ static int temp[100][10]={0}; /*辅助数组*/ /*置换算法函数*/ void FIFO(); void LRU(); void OPT(); /*辅助函数*/ void print(unsigned int t); void designBy(); void download(); void mDelay(unsigned int Delay); /*主函数*/ void main() { int i,k,code; system(color 0A); designBy(); printf(┃请按任意键进行初始化操作... ┃\n); printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n); printf( ); getch(); system(cls); system(color 0B); printf(请输入物理块的个数(M=10):); scanf(%d,mSIZE); printf(请输入页面号引用串的个数(P=100):); scanf(%d,pSIZE); puts(请依次输入页面号引用串(连续输入,无需隔开):); for(i=0;ipSIZE;i++) scanf(%1d,page[i]); download(); system(cls); system(color 0E); do{ puts(输入的页面号引用串为:); for(k=0;k=(pSIZE-1)/20;k++) { for(i=20*k;(ipSIZE)(i20*(k+1));i+
显示全部
相似文档