FIFO算法实验报告.doc

上传人:scccc 文档编号:14866342 上传时间:2022-02-22 格式:DOC 页数:9 大小:115KB
返回 下载 相关 举报
FIFO算法实验报告.doc_第1页
第1页 / 共9页
FIFO算法实验报告.doc_第2页
第2页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《FIFO算法实验报告.doc》由会员分享,可在线阅读,更多相关《FIFO算法实验报告.doc(9页珍藏版)》请在三一文库上搜索。

1、精品文档 实验报告 课程名称 _ 学生所在系部 _ 年级 _ 专业、班级 _ 学生姓名 _ 学号 _ 任课教师 _ 实验成绩 _ 软件工程系制精品文档 一、 实验题目: 先进先出(FIFO)页面置换算法和最近最久未使用( LRU )置换算法程序设计 二、实验目的: 通过对FIFO, LRU算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程 调度过程、调度算法的理解。 三、实验设备及环境: 1.硬件设备:PC机一台 2.软件环境:安装 Windows操作系统或者Linux操作系统,并安装相关的程序开发环境, 如C C+Java等编程语言环境。 四、实验内容及要求: (1 )用C语言编

2、程实现对 FIFO,LRU算法的模拟。 (2)每个用来标识进程的进程控制块 PCB可用结构来描述,包括以下字段: 五、实验方法内容 1.算法流程图 精品文档 2.主要的常量变量 char a; in t m=4, n=12,i,y12=1,2,3,4,1,2,5,1,2,3,4,5; 主要模块 void FIFO(void); void LRU(void); void Xun hua n() void mai n() 四代码 #i ncludestdio.h #i ncludestdlib.h #i ncludetime.h void FIFO(void); void LRU(void); c

3、har a; int m=4,n=12,i,y12=1,2,3,4,1,2,5,1,2,3,4,5; /*m 为物理块数, 页面数*/ typedef struct page int num; int time; Page; Page x10; int GetMax(page *x) int i; int max=-1; int tag=0; for(i=0;imax) max=xi.time; tag=i; return tag; void Xun hua n() printf(Please select 1:FIFO 算法n sea nf(%s,&a); printf(物理块数:4n);

4、/scan f(%d,&m); for(i=0;im;i+) xi. num=-1; prin tf(所要访问的页面数:12n); /scan f(%d,&n); /sran d(time(NULL); printf(所要访问的页面号序列为:); for(i=0;i n ;i+) prin tf(%d ,yi); prin tf(n); prin tf(页面置换步骤如下:n); switch(a) case 1:FIFO();break; case 2:LRU(); break; void mai n() char a; Xun hua n(); while(1) printf(Continu

5、e or Exit:C/Anykey:n); scan f(%s,&a); if(a=c|a=C) Xun hua n(); else break; exit(O); 2:LRU 算法n); 精品文档 void FIFO(void) int i,j,u; for(i=0;im;i+) xi.time=0; x0. num=y0; x0.time=1; printf( %d n,x0. nu m); for(i=1;i n;i+) u=0; for(j=0;jm;j+) if(xj. num=yi) u=1; break; if(u!=1 & xm-1. nu m!=-1) j=GetMax(x

6、); xj. nu m=yi; xj.time=0; if(u!=1 & xm-1. nu m=-1) for(j=0;jm;j+) if(xj. num=-1) xj. num=yi; break; for(j=0;jm;j+) if(xj. nu m!=-1) xj.time+; for(j=0;jm;j+) if(xj. num=-1) prin tf(%2c ,32); else printf(%2d 刈.num); prin tf(n); void LRU() int i,j,u; for(i=0;im;i+) xi.time=0; x0. num=y0; x0.time=1; 精品

7、文档 printf( %d n,x0 .n um); for(i=1;i n;i+) u=0; for(j=0;jm;j+) if(xj. num=yi) xj.time=0; u=1; break; if(u!=1 & xm-1. nu m!=-1) j=GetMax(x); xj. nu m=yi; xj.time=0; if(u!=1 & xm-1. nu m=-1) for(j=0;jm;j+) if(xj. num=-1) xj. num=yi; break; for(j=0;jm;j+) if(xj. nu m!=-1) xj.time+; for(j=0;jm;j+) if(xj

8、. num=-1) prin tf(%2c ,32);精品文档 else prin tf(n); 五、实验结果 1.执行结果 lease select FIFO冥法 2:LHU算法 4 4 4 4 4 3 3 3 or Exit:C/Anykeu: 2.结果分析 由结果可以看出,使用FIFO算法,总是淘汰最先进入内存的页面, 即 即选择在内存中驻留时间最久的页面予以淘汰。 使用LRU算法则是选择 最近最久未使用的页面予以淘汰。 printf(%2d 刈 .num); 为 1212列 :序: 数号5 5 4 4 3 3 2 2 11111111 lease select 丄:FIFO耳;: 2:

9、 LRU算法 :的的步 块访書 理要要面 面幕 4 4页页骤 1212呕 ;序: 数号下 1 1 1 1 1 1 1 1 1 1 4 4 ontinue 精品文档 七、实验总结 这次实验让我深刻理解了 FIFO和LRU算法。由于FIFO所依据的条件 是各个页面存入的时间,而页面调入的先后并不能反映页面的使用情况, 所以FIFO算法的性能较差。LRU算法相对较好。 通过这个实验我体会到了编程的思路流程,结构流程图的作用。一个程序 如果一开始计划的好,结构设计完善,才可能顺利进行。精品文档 教 师 评 价 评定项目 A B C D 评定项目 A B C D 算法正确 界面美观,布局合理 程序结构合理 操作熟练 语法、语义正确 解析完整 实验结果正确 文字流畅 报告规范 题解正确 其他: 评价教师签名: 年 月曰

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1