资源描述:
《FIFO算法实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告课程名称学生所在系部年级专业、班级学生姓名学号任课教师实验成绩软件工程系制一、实验题目:先进先出(FIFO)页面置换算法和最近最久未使用(LRU)置换算法程序设计二、实验目的:通过对FIFO,LRU算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。三、实验设备及环境:1.硬件设备:PC机一台2.软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发环境,如CC++Java等编程语言环境。四、实验内容及要求:(1)用C语言编程实现对FIFO,LRU算法的模拟。(2
2、)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段:五、实验方法内容1.算法流程图开始检查内存是否有空闲块选择最先进入的页面置换读入访问页面信息存入页面输出置换出的页面序号结束未读完已读完有无1.主要的常量变量chara;intm=4,n=12,i,y[12]={1,2,3,4,1,2,5,1,2,3,4,5};主要模块voidFIFO(void);voidLRU(void);voidXunhuan()voidmain()四.代码#include"stdio.h"#include"stdlib.h"#include"tim
3、e.h"voidFIFO(void);voidLRU(void);chara;intm=4,n=12,i,y[12]={1,2,3,4,1,2,5,1,2,3,4,5};/*m为物理块数,n为要访问的页面数*/typedefstructpage{intnum;inttime;}Page;Pagex[10];intGetMax(page*x){inti;intmax=-1;inttag=0;for(i=0;imax){max=x[i].time;tag=i;}}returntag;}voidXun
4、huan(){printf("Pleaseselect1:FIFO算法2:LRU算法");scanf("%s",&a);printf("物理块数:4");//scanf("%d",&m);for(i=0;i5、置换步骤如下:");switch(a){case'1':FIFO();break;case'2':LRU();break;}}voidmain(){chara;Xunhuan();while(1){printf("ContinueorExit:C/Anykey:");scanf("%s",&a);if(a=='c'
6、
7、a=='C')Xunhuan();elsebreak;}exit(0);}voidFIFO(void){inti,j,u;for(i=0;i8、.time=1;printf("%d",x[0].num);for(i=1;i9、m!=-1)x[j].time++;for(j=0;j10、=0;u=1;break;}if(u!=1&&x[m-1].num!=-1){j=GetMax(x);x[j].num=y[i];x[j].time=0;}if(u!=1&&x[m-1].num==-1){