操作系统课设报告页面置换算法

上传人:re****.1 文档编号:487294689 上传时间:2022-12-17 格式:DOC 页数:14 大小:70.50KB
返回 下载 相关 举报
操作系统课设报告页面置换算法_第1页
第1页 / 共14页
操作系统课设报告页面置换算法_第2页
第2页 / 共14页
操作系统课设报告页面置换算法_第3页
第3页 / 共14页
操作系统课设报告页面置换算法_第4页
第4页 / 共14页
操作系统课设报告页面置换算法_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《操作系统课设报告页面置换算法》由会员分享,可在线阅读,更多相关《操作系统课设报告页面置换算法(14页珍藏版)》请在金锄头文库上搜索。

1、武汉轻工大学数学与计算机学院操作系统课程设计说明书题 目: 页式虚拟存储管理页面置换算法 专 业: 班 级: 学 号: 姓 名: 指导老师: 2015年5月26日目录一、 设计目的二、 设计内容三、 基本原理和解决方案四、 实验内容 五、 流程图六、 源代码七、 运行结果八、 实验总结(心得体会)一、 设计目的通过请求页式存储管理中页面置换算法模拟程序,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。二、 设计内容阅读教材计算机操作系统第四章,掌握存储器管理相关概念和原理。模拟实现页式虚拟存储管理的三种页面置换算法(OPT、FIFO和LRU),并通过比较性能得出结论。前提:(1)页

2、面分配采用固定分配局部置换。(2)作业的页面走向和分得的物理块数预先指定。可以从键盘输入也可以从文件读入。(3)置换算法的置换过程输出可以在显示器上也可以存放在文件中,但必须清晰可读,便于检验。三、 基本原理和解决方案存储管理是操作系统进行资源管理的一个重要功能。现代操作系统广泛采用虚拟存储的技术对内存进行扩充。实现虚拟存储的一个主要技术手段就是将辅存和主存统一管理,在二者之间进行对换,从而形成物理上两级而逻辑上一级的存储管理系统。一个置换算法的好坏对这个逻辑上的单级虚存的性能起着极其重要的作用,而且会影响处理机的调度性能。 对于本任务规定的前提:页面分配采用固定分配局部置换,则置换发生的时机

3、是作业已经将操作系统分配的固定数目的物理块全部用完且发生缺页的时候。此时必须要将已经装入内存的部分逻辑页面换出以便将所缺的页面调入内存。置换算法就是一个决定将内存中“哪一个”页面换出的算法。四、 实验内容1.通过随机数产生一个指令序列,共320条指令,指令的地址按下述原则生产: 50的指令是顺序执行的;25的指令是均匀分布在前地址部分;25的指令是均匀分布在后地址部分。2.将指令序列变换成为页地址流 设页面大小为1K;用户内存容量为4页到32页;用户虚存容量为32K。 在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条至第9条指令为第0页;第10条至19

4、条指令为第1页;第310条至319条指令为第31页。3.计算并输出下述各种算法在不同内存容量下的命中率。 (1) 先进先出算法(FIFO) (2) 最近最少使用算法(LRU) (3) 最佳使用算(OPT) 命中率页面失效次数页地址流长度本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。五、 流程图将页号放入物理块中,编号加1引用串编号大于物理块数?载入页号序列,从第0个得到页号开始页号在物理块中?根据选择的置换算法完成置换页号序列载完?结束是否是是是是六、 源代码#include #include#include#include#define M

5、yprintf printf(|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|n) /*表格控制*/ #define bsize 4 /物理块大小#define psize 16 /进程大小typedef struct page int num; /*记录页面号*/ int time; /*记录调入内存时间*/ Page; /* 页面逻辑结构,结构为方便算法实现设计*/ Page bbsize; /*内存单元数*/ int cbsizepsize; /*暂保存内存当前的状态:缓冲区*/ int queue100; /*记录调入队列*/ int K; /*调入队列计数变量*

6、/ int phbbsize=0; /物理块标号int propsize=0; /进程序列号int flagbsize = 0; /进程等待次数(存放最久未被使用的进程标志)int i = 0, j = 0,k = 0; /i表示进程序列号,j表示物理块号int m = -1, n = -1; /物理块空闲和进程是否相同判断标志int max = -1,maxflag = 0; /标记替换物理块进程下标int count = 0; /统计页面缺页次数/*/*/随机产生序列号函数/*int* build()printf(随机产生一个进程序列号为:n);int i = 0; for(i=0; ip

7、size; i+) proi = 10*rand()/(RAND_MAX+1)+1; printf(%d ,proi); printf(n); return(pro);/*/查找空闲物理块/*int searchpb()for(j=0; jbsize; j+) if(phbj = 0) m = j; return m; break; return -1;/*/查找相同进程/*int searchpro()for(j = 0; j bsize; j+) if(phbj = proi) n = j; return j; return -1;/*/初始化内存/*void empty()for(i=0

8、;ibsize;i+)phbi=0; count=0; /计数器置零/*/先进先出页面置换算法/*void FIFO() for(i = 0; ipsize; i+) m=searchpb(); n=searchpro();/找flag值最大的 for(j = 0; j maxflag) maxflag = flagj; max = j; if(n = -1) /不存在相同进程 if(m != -1) /存在空闲物理块 phbm = proi; /进程号填入该空闲物理块 count+; flagm = 0; for(j = 0;j = m; j+) flagj+; m = -1; else /不存在空闲物理块 phbmax = proi; flagmax = 0; for(j = 0;j bsize; j+) flagj+; max = -1; maxflag = 0; count+; else /存在相同的进程 phbn = proi; for(j = 0;j bsize; j+) flagj+; n = -1; for(j = 0 ;j bsize;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号