操作系统课程设计实验报告模板._第1页
操作系统课程设计实验报告模板._第2页
操作系统课程设计实验报告模板._第3页
操作系统课程设计实验报告模板._第4页
操作系统课程设计实验报告模板._第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、操作系统课程设计实验报告书题 目页面置换算法之先进先出题目编号:18院系:信息科学与技术学院班级:12级1班小组成员:组长:张海洋学号:12051004组员:李奔学号:120510052014-12-31目录一、课程设计任务划分 1.二、基本原理 1.(一)页面置换算法定义(二)所使用的算法(三)设计思想三、基本思路 3.(一)流程图(二)变量(三)所用函数四、调试及实验结果 1.2.五、个人体会 2.1.一、课程设计任务划分(此处编辑小组成员的具体分工)成员具体分工张海洋设计项目流程程序合并实验报告书书写李奔程序调试网上搜索程序资料心得体会二、基本原理(题目所涉及课程内容,用到了那种算法,该

2、算法的基本原理是什么? 500字以上,可加页,下同)(一)页面置换算法定义在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。当发生缺页中断时操作系统必须在内存选择一 个页面将其移出内 存,以便为即将调入的页面让出空间。 而用来选 择淘汰哪一页的规则叫做页面置换算法。(二)所使用的算法1)最佳置换算法(OPT):将以后永不使用的或许是在最 长(未来)时间内 不再被访问的页面换出。i2)先进先出算法 (FIFO) :淘汰最先进入内存的页面, 即选择在内存中驻留时间最久的页面予以淘汰。3) 最近最久未使用算法 (LRU): 淘汰最近最久未被使用 的页面。(三) 设计思想 选择

3、置换算法,先输入所有页面号,为系统分配物理块,依次进 行置换:OPT基本思想:是用一维数组pagepSIZE存储页面号序列,memerymSIZE是 存储装入物理块中的页面。数组 nextmSIZE 记录物理块中对应页面 的最后访问时间。 每当发生缺页时, 就从物理块中找出最后访问时间 最大的页面,调出该页,换入所缺的页面。FIFO基本思想:是用队列存储内存中的页面,队列的特点是先进先出,与该算法 是一致的,所以每当发生缺页时,就从队头删除一页,而从队尾加入 缺页。或者借助辅助数组 timemSIZE 记录物理块中对应页面的进入 时间,每次需要置换时换出进入时间最小的页面。LRU基本思想:是用

4、一维数组pagepSIZE存储页面号序列,memerymSIZE是存 储装入物理块中的页面。数组 flag10 标记页面的访问时间。每当 使用页面时,刷新访问时间。发生缺页时,就从物理块中页面标记最 小的一页,调出该页,换入所缺的页面。二、基本思路(源代码中定义了哪些变量,用到了哪些函数,画出流程图)总的流程图:开始;载入页号序列,从第0个得到页号将页号放入物理块中,编号加1根据选择的置换算法完成置换源代码实验环境: vc+ ,编程语言: c 语言#include #include /* 全局变量 */int mSIZE; /* 物理块数 */int pSIZE; /* 页面号引用串个数 */

5、static int memery10=0; /* 物理块中的页号 */static int page100=0; /* 页面号引用串 */static int temp10010=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)

6、;designBy(););n);n);printf(丨请按任意键进行初始化操作printf(” 11printf( );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,&pagei);download();system(cls);system(color 0E);do

7、puts(输入的页面号引用串为:”);for(k=0;k=(pSIZE-1)/20;k+)for(i=20*k;(ipSIZE)&(i); getch();#system(cls);while (code!=4); getch();/* 载入数据 */void download()int i; system(color 0D);printf(” |1n);printf( I正在载入数据,请稍候川丨n);printf( 11n);printf(Loading.n);printf(O);for(i=0;i51;i+) printf(b);for(i=0;i); printf(nFinish.n 载

8、入成功,按任意键进入置换算法选择界面:);getch();/* 设置延迟 */void mDelay(unsigned int Delay)unsigned int i;for(;Delay0;Delay-)for(i=0;i124;i+)printf( b);/* 显示设计者信息 */void designBy()printf(“ i1n);printf( |页面置换算法| n);printf( |12级 1 班| n);7printf( | printf(” 卜姓名:张海洋,李奔n);n);#void print(unsigned int t)int i,j,k,l;int flag; f

9、or(k=0;k=(pSIZE-1)/20;k+) for(i=20*k;(ipSIZE)&(i20*(k+1);i+) if(i+1)%20=0)|(i+1)%20)&(i=pSIZE-1) printf(%dn,pagei);elseprintf(%d ,pagei);for(j=0;jmSIZE;j+) for(i=20*k;(imSIZE+20*k)&(i=j) printf( |%d|,tempij);else printf( | |); for(i=mSIZE+20*k;(ipSIZE)&(i20*(k+1);i+) for(flag=0,l=0;lmSIZE;l+) if(tem

10、pil=tempi-1l)flag+; if(flag=mSIZE)/* 页面在物理块中 */printf( );else printf( |%d|,tempij);/*每行显示 20 个*/ if(i%20=0)continue;printf(n);printf(n);printf( 缺页次数: %dtt,t+mSIZE); printf( 缺页率: %d/%dn,t+mSIZE,pSIZE);printf( 置换次数: %dtt,t);printf( 访问命中率: %d%n,(pSIZE-(t+mSIZE)*100/pSIZE); printf(n);/* 计算过程延迟 */void co

11、mpute()int i;printf( 正在进行相关计算,请稍候 ); for(i=1;i20;i+)mDelay(15); if(i%4=0) printf(bbbbbb bbbbbb);elseprintf(” ”);for(i=0;i+30;printf(b);for(i=0;i+30;printf( );for(i=0;i+30;printf(b);/* 先进先出页面置换算法 */void FIFO()int memery10=0;int time10=0; /* 记录进入物理块的时间 */int i,j,k,m;int max=0; /* 记录换出页 */int count=0;

12、/* 记录置换次数 */* 前 mSIZE 个数直接放入 */ for(i=0;imSIZE;i+)memeryi=pagei;timei=i;for(j=0;jmSIZE;j+) tempij=memeryj;for(i=mSIZE;ipSIZE;i+)/* 判断新页面号是否在物理块中 */ for(j=0,k=0;jmSIZE;j+)if(memeryj!=pagei)k+;if(k=mSIZE) /* 如果不在物理块中 */count+;/* 计算换出页 */ max=time0time1?0:1; for(m=2;mmSIZE;m+) if(timemtimemax) max=m;me

13、merymax=pagei;timemax=i; /* 记录该页进入物理块的时间 */ for(j=0;jmSIZE;j+)tempij=memeryj;elsefor(j=0;jmSIZE;j+) tempij=memeryj;compute();print(count);/* 最近最久未使用置换算法 */void LRU()int memery10=0;int flag10=0; /* 记录页面的访问时间 */int i,j,k,m;int max=0; /* 记录换出页 */int count=0; /* 记录置换次数 */* 前 mSIZE 个数直接放入 */for(i=0;imSIZ

14、E;i+)memeryi=pagei;flagi=i;for(j=0;jmSIZE;j+)tempij=memeryj;for(i=mSIZE;ipSIZE;i+)/* 判断新页面号是否在物理块中 */ for(j=0,k=0;jmSIZE;j+)9if(memeryj!=pagei)k+;elseflagj=i; /* 刷新该页的访问时间 */if(k=mSIZE) /* 如果不在物理块中 */count+;/* 计算换出页 */ max=flag0flag1?0:1; for(m=2;mmSIZE;m+) if(flagmflagmax) max=m;memerymax=pagei;fla

15、gmax=i; /* 记录该页的访问时间 */ for(j=0;jmSIZE;j+)tempij=memeryj;elsefor(j=0;jmSIZE;j+) tempij=memeryj;compute();print(count);/* 最佳置换算法 */void OPT()int memery10=0;int next10=0; /* 记录下一次访问时间 */int i,j,k,l,m;int max; /* 记录换出页 */int count=0; /* 记录置换次数 */* 前 mSIZE 个数直接放入 */for(i=0;imSIZE;i+)memeryi=pagei;for(j=

16、0;jmSIZE;j+)tempij=memeryj;for(i=mSIZE;ipSIZE;i+)/* 判断新页面号是否在物理块中 */ for(j=0,k=0;jmSIZE;j+)if(memeryj!=pagei) k+;if(k=mSIZE) /* 如果不在物理块中 */count+;/* 得到物理快中各页下一次访问时间 */ for(m=0;mmSIZE;m+) for(l=i+1;l=next1?0:1; for(m=2;mnextmax) max=m;/*下一次访问时间都为pSIZE,则置换物理块中第一个*/memerymax=pagei;for(j=0;jmSIZE;j+) te

17、mpij=memeryj;else for(j=0;jmSIZE;j+) tempij=memeryj;compute(); print(count);四、调试及实验结果(此处放源代码编辑执行后截图,可多张图片)第一组数据:1.运行结果2.按任意键进行初始化:113.载入数据:4.进入置换算法选择界面:-b5 |ft Tm&l C+-t-* *EsLi FUA Sfimgirl r4-j4Cl GMl-d 匚4 IiEb4n (Hip点诫Ur a,臥厂 |ftii iahiril mFiBbirq -二电 T 3 ll!即右Q wnih?p?a=fill THm ILricludip Ckt-

18、dLu .Iki PLnckudt 5 厂主耐班叩Ini rtIZE; hnl pSin; 5-tdtic i#t hlriE Ie JhiL tdtlc l*t 一Mid FIF4CH Id tnu(; 4i(i dPT( 厂轉刃迂蛊吓Mid prit4utr5iQMd a I d dHhigiil ; Mid dow*lnM(H vu I d rfrlJ ynnulH英聞号 PWWPIII P气叫IIH 上叭1*|fiit粛比亚也才ss“IEaBEWWWTLLbLLF聶站朱ioi當金血_f L.割5先出诃啊了 T-JftifillA未便冃ILBJ 卜:LiflS*奶t暫遇出円硼I祁I Ik

19、nt i.k.cadp;5y5t*fHcol&r I屮n申“胃按t|HT i nt rr frintfr* mu dura;a I nr I“iJf皆卫理 scrtnr-fftr-rft5irr申售补厲舀昌刖用串的村6卿1IWi UH iErtnr l3l?-| j; 科赭严豪煉纳上 I更耳耳用串C遅護输入 壬需陽幵h -H rar4i-*;lpIJE;a4tawnlarfl(、;ulTK Zlafaua 1. Pixd kd Filiaa 1VT 4 I135.运算中延迟操作:6.三种算法演示结果157.退出算法第二组数据:1.运行结果HF(!:iI*(D 卜.1X1 Tfiti二口葺i口不

20、旨rl *friprU.Sl*AiimiLeimI-I; 4rl-iy4wiEllkdMlpnBprintr yrLelurO;unad m l |i申二杷知工軽 -ffsHirv-Swnct nMBI tiEKdEI FidEEiiKlweIIkIkIm Ciherillfe.h$哇司迪屮73Int N&13E:问审理地馳和 ink ram: Mn| 5ttlc lFt MRT*1 scaiili: inc pqtj- Rtvtic iwt f喪鼻|丄 uutiri I什“: unrid LRIIlC 9);UDd 錚Tunrid a voiid UU3EI ModdCnlill-r(KM

21、COJfi- prLnUr-ilifi sc-mFC-M.*!” Lnr F忙勺|曲/VTEU - 1 l.tl-qJT.1TTtrv- TW j r .cjnF,4nEI7F!;pi也严聆丽入熨直号耳|用轲注诞恤;-疋科帰巧I * 1 *.:腔 I.El:叮wjiisFrzir 昨背!1応1 d.北* - d FFALsJr uTbuii. us f mk k在刘哲中u aj刚叮|ii-If r氐到w|7F殛F 9 *:? mmr !. h - 心3L Vif寸的舐Il+日耳CifcWL日-b*k - 證曙爭k. n Mi理jgiFZrwl172.按任意键进行初始化:3.载入数据:4.进入置

22、换算法选择界面:5.运算中延迟操作:6.三种算法演示结果21更忡広:|Il (D AU.I Tfilti二口 hiMi口无白*3 Mm虫F曲匹眉!肖*呵-IIh.txt - i trrarLs 口 HrnSnqCsf一R. 4U .厲直l.点盘库:中査盛在交用叮lrlfcNMi- flawnLtid|#rl4ynnMVt*aMi&JfllFil曲rwdwn 仙_ Trm Iri I -: Mmiue l,il?s |凹 声b mmXrT =jbJFWlfl=EiT -Hlw-Swna Ffcc.L XllKlHriv 主_ int HSLZt: Lnk pLEZC;5ttlC t tl ihC static EuOuntid LRIIQ; void WTQt r餌刪舸 UQgid 2曲Q umdMold z主曲妁吋unad ni l |ilk d.lMD v尸 t*wi| cn de5t戸 B# “ |irlnErim I prlntf4 L printfC yrLulurQ; srfct*ico print rril 說劭諾驭费百岳|用申89、 nF *”,叩1丁门;Mt才*B嫌“扎夏直号引用車卷鏤轍疋

温馨提示

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

评论

0/150

提交评论