2024年FIFO算法实验报告_第1页
2024年FIFO算法实验报告_第2页
2024年FIFO算法实验报告_第3页
2024年FIFO算法实验报告_第4页
2024年FIFO算法实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告課程名称學生所在系部年级专业、班级學生姓名學号任課教師试验成绩软件工程系制试验題目:先進先出(FIFO)页面置换算法和近来最久未使用(LRU)置换算法程序设计试验目的:通過對FIFO,LRU算法的模拟,深入理解進程的基本概念,加深對進程运行状态和進程调度過程、调度算法的理解。试验设备及环境:1.硬件设备:PC机一台2.软件环境:安装Windows操作系统或者Linux操作系统,并安装有关的程序開发环境,如C\C++\Java等编程語言环境。试验内容及规定:(1)用C語言编程实現對FIFO,LRU算法的模拟。(2)每個用来標识進程的進程控制块PCB可用构造来描述,包括如下字段:五、试验措施内容算法流程图開始開始检查内存与否有空闲块选择最先進入的页面置换讀入访問页面信息存入页面输出置换出的页面序号結束未讀完已讀完有無重要的常量变量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"time.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;i<m;i++){if(x[i].time>max){max=x[i].time;tag=i;}}returntag;}voidXunhuan(){printf("Pleaseselect1:FIFO算法\n2:LRU算法\n");scanf("%s",&a);printf("物理块数:4\n");//scanf("%d",&m);for(i=0;i<m;i++){x[i].num=-1;}printf("所要访問的页面数:12\n");//scanf("%d",&n);//srand(time(NULL));printf("所要访問的页面号序列為:");for(i=0;i<n;i++)printf("%d",y[i]);printf("\n");printf("页面置换环节如下:\n");switch(a){case'1':FIFO();break;case'2':LRU();break;}}voidmain(){chara;Xunhuan();while(1){printf("ContinueorExit:C/Anykey:\n");scanf("%s",&a);if(a=='c'||a=='C')Xunhuan();elsebreak;}exit(0);}voidFIFO(void){inti,j,u;for(i=0;i<m;i++)x[i].time=0;x[0].num=y[0];x[0].time=1;printf("%d\n",x[0].num);for(i=1;i<n;i++){u=0;for(j=0;j<m;j++)if(x[j].num==y[i]){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){for(j=0;j<m;j++){if(x[j].num==-1){x[j].num=y[i];break;}}}for(j=0;j<m;j++)if(x[j].num!=-1)x[j].time++;for(j=0;j<m;j++)if(x[j].num==-1)printf("%2c",32);elseprintf("%2d",x[j].num);printf("\n");}}voidLRU(){inti,j,u;for(i=0;i<m;i++)x[i].time=0;x[0].num=y[0];x[0].time=1;printf("%d\n",x[0].num);for(i=1;i<n;i++){u=0;for(j=0;j<m;j++)if(x[j].num==y[i]){x[j].time=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){for(j=0;j<m;j++){if(x[j].num==-1){x[j].num=y[i];break;}}}for(j=0;j<m;j++)if(x[j].num!=-1)x[j].time++;for(j=0;j<m;j++)if(x[j].num==-1)printf("%2c",32);elseprintf("%2d",x[j].num);printf("\n");}}试验成果执行成果成果分析由成果可以看出,使用FIFO算法,總是淘汰最先進入内存的页面,即即选择在内存中驻留時间最久的页面予以淘汰。使用LRU算法则是选择近来最久未使用的页面予以淘汰。七、试验總結這次试验让我深刻理解了FIFO和LRU算法。由于FIFO所根据的条件是各個页面存入的時间,而页面调入的先後并不能反应页面的使用状况,因此F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论