2023年操作系统实验三面置换算法实验报告.docx

上传人:太** 文档编号:72720905 上传时间:2023-02-13 格式:DOCX 页数:17 大小:91.79KB
返回 下载 相关 举报
2023年操作系统实验三面置换算法实验报告.docx_第1页
第1页 / 共17页
2023年操作系统实验三面置换算法实验报告.docx_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《2023年操作系统实验三面置换算法实验报告.docx》由会员分享,可在线阅读,更多相关《2023年操作系统实验三面置换算法实验报告.docx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、/ 常最 Data Max/ / 常量 BlockNum/用于存储要显示的数组/ /用于存储数组中的数据是否需要/保存数据/物理块/ /计数器/页面个数/最小物理块数/缺页次数/输入数据的函数/输出数据的函数/ FIFO函数/ Op t i mal 函数/ LRU函数实验三实验报告实验源码:# i ncl u de s tdi o .hinclu d e # i n elude d efin e D a taM a x 100# define Bloc k N u m 1 0 i nt Da t a ShowB 1 o ckNumDa t a Max;bool DataShowEnableBI

2、 o c kNum DataM a x;显示i n t Dat a Dat a Max;i n t Bl o ck B 1 ockN u m;i n t c oun t BlockNum;in t N;in t M;int C h a n g e Time s ;vo i d D a t a I n put();void D at a Out p ut();void FIFO();v oid 0 p timal ();void LRU();i n t m a i n(int arg c , c h ar* ar g v ) if( !fin d ) coun t j = N;-/由于i是从0开

3、始记,而BlockNum指的是个数,从1开始,所以i+1oif( (i + l) M)。,获得要替换的块指针temp = 0;。f o r( j = 0;j M; j +)0 0if( tern p count j )0 。 t em p = co u ntj;。 o point = j; /获得离的最远的指针0 0 00 6 0 ) 。 else poin t = i;。替换B 1 ockpo i nt = Data i ;0/保存要显示的数据for(j = 0;j M; j +) Da t aS h owj i = B lockj ;o o DataS h owEna b le(i M ?

4、 (j n );D a taOu t p u t();/先进先出置换算法void FIFO()(in t ij;o boo 1 fi n d;,int point;in t temp; / /临时变量a in t m = lzn;ChangeTimes = 0;o for(j = 0; j M;j+)(。 f or (i = 0;i N; i +)(。 DataSh o w E n ab 1 ej i = f a Is e ; /初始化为false,表达没有要显示的数据 )。o fo r ( i = 0: i =3的块,替换后计数值置1,。/同时其它的块计数值加1,成了(1 3 2),见下面先

5、进先出程序段。/拟定当前页面是否在物理块中,在继续,不在置换。/ / / / / / / / / / nn / / / / / / / / nnnnmm / / nnm/ / mBlock0 =Da t a 0;o f or ( i = l;m M; i +)。 i nt f 1 a g = 1;o r(n = 0; n m; n +)o。 if(D a t a i= B I ockn) fl ag = 0;0 0 Jo o i f(f| a g = 0) c o ntin u e;Block m = Data i ;s m+;/ / / / / / / / / /。/对有所数据操作for(i

6、 = 0; i N; i+)/ / 增长 counta f or (j = 0; j M; j+)。count j +;。)f i nd= f alse; /表达块中有没有该数据 f or (j = 0; j M)0 。获得要替换的块指针 temp = 0;。fo r ( j = 0: j M;j+)o e 。if( t e mp c o unt j )e m p = c oun t j ;po i nt = j; /获得离的最远的指针d oo o a)a o else poi n t = i;-/替换o Block p o i n t = D a t ai; 0o countp o i nt

7、 = 0; / / 更新计数值0/保存要显示的数据 f or( j = 0;j M;j+)o Da t a Show j i = B 1 ock j;Da t aShowEn a bl e i M ? (j n );。D a taOu t put();)/最近最久未使用置换算法v o id LRU()i nt ij;。bool fi n d;i n t poi n t;。i nt t emp; /临时变量。i nt m = l,n;ChangeT i me s = 0;of o r (j = 0;j M; j +)(o for(i =0 ; i N; i +)o Da t a Show Ena

8、 b le j (i = fal s e ;/ 初始化为 f a 1 se,表达没有要显示的数据 )o f o r (i = 0;i M; i+)ocounti = 0; / /初始化计数器)。/拟定当前页面是否在物理块中,在继续,不在置换/ / / / IIII / / /Bloc k 0 = Data 0 ;f or(i = 1; m M;i+)。int flag = 1;fo r (n = 0; n m;n+)(。if(Da t ai = Bio c k n ) flag = 0 ;)。if(flag = 0) continue;s。Bloc k m = D a t a i ; a。m+

9、;/ / / /mmm/ / / / / /对有所数据操作fo r (i = 0; i N;i+ + ),11 增长 c oun tf o r (j =0;j M )3 0 。获得要替换的块指针。 tem p = 0;。f o r(j = 0;j M;j+)00 if( tem p c o unt j )d o o o |otemp = count1;。po i nt = j;/获得离的最远的指针o 0 0 0 o J)o e Ise poin t = i ;/替换s。B Io c kpo i n t = D a t a i ;o count p oint = 0;/保存要显示的数据 。 f

10、or (j= 0 ; j M;j + + )。o Da t aShow j i = Bloc k j ;0。Da t aS h o w E nablefi M ?(j n);Da t aO u tput ();实验结果截图:程序运营:E:作业援作系统实险finishedshiyansan2Debugshiyansan2.exe输入相应数据:2 .输入0 1.7 1 02230 3数.:叵咧2 坤约击序4 理个面向0 裔第3 小面生面0 最页产页2 入金入1输 S 壬0E青青青7微软拼音简捷半:选择相应算法:E:作业迎作系统卖脸finishedshiyansan2Debugshiyansan2.

11、exe输入的访问序列为:*菜单选择*1-OptimalX*2-FIFOX*3-LRU*0-EXIT*微软拼音简捷半:最佳置换算法:o D a t a I nput ();int m e nu;。while ( t ru e )菜单选择a p r intf( n*0 p rjn t f(”* * 火 * * n );p r i n tf ( *n);。pri n t f (*n);printf( * n);op r intf(*n);sprin t f (* n );p r i n tf ( *n);。pri n t f (*n);printf( * n);op r intf(*n);sprin

12、 t f (1-Op t im a I2-FIF O3-LRU4 -返回上一级0-EXITpr i* * 火 * * 火 * * * * * * * * 火 *火* * * * * * * *n );。s c a nf(% d ,&me n u );。s w i tc h (m e nu) case 1:Opt i m a 1 ();。break;E:作业迎作系统卖脸finishedshiyansan2Debugshiyansan2.exeptinal 0 122 01ptinal 0 122 01缺页率:303 02036I X424302031 22 01菜单选择菜单选择1-Optimal

13、 2-FIFO 3-LRU 0-EXIT微软拼音简捷半:先进先出算法:E:作业援作系统实险finishedshiyansan2Debugshiyansan2.exeFIFO = 7 0 12 2 0 1FIFO = 7 0 12 2 0 1缺必达数::缺页率:603231120 2 30342317 0 17 7 710 02 2 1菜单选择1-Opt imal 2-FIFO3-LRU 0-EXIT微软拼音简捷半:最近最久未使用算法:I VI V。 c a s e 2:。FIFO();3。 b r eak;a case 3:o d & o L R U ();break;。c ase 0:o o

14、 exit(O);br e a k;ca s e 4:。s ystem( M cis);。Da t a I n p u t();so。brea k ;0 0 ! = 0 & menu != 4 )! = 0 & menu != 4 )if(menu ! = 1 & menu != 2 & menu != 3 & m e nu(osystem (cis);o。pri n tf(n请输入0 - 4之间的整数!n);,continue;0 0 J)retur n 0;) voi d D a t a I nput()int i, c hoic e ;oprin t f (请输入最小物理块数:);s c

15、 a n f (%d , &M);。输入最小物理块数大于数据个数o w h i I e (M Bl o ckNum)o print f (物理块数超过预定值,请重新输入:);scanf ( % d , &M);)。printf(请输入页面的个数:”);s ca nf (%d,&N);。/输入页面的个数大于数据个数whil e (N DataMa x )-print f(页面个数超过预定值,请重新输入:);o sea nf(%d, &N);)。pi in tf (请选择产生页面访问序列的方式(L随机2.输入):”);sea nf(% d c hoice);sw i tch(choice)(cas

16、 e 1:0/ /产生随机访问序列for(i = 0;i N; i + + )oDa t a i = (in t )(float) rand ()/32767) 10);/ 随机数大小在 0 9之间0 0)。system( M c Is11);-/显示随机产生的访问序列printf(n随机产生的访问序列为:);oforfi = 0; i N;i+)3 6 o p r i n t f(% d ,Datai);3 0 pr i ntf (n);。break;c a se 2:-/输入访问序列。printf(请输入页面访问序列:n);for( i = 0 ; i N; i +) s c a nf(

17、%d,& D ata i);。sy s t em(cls ); / /显不输入的访问序列printf(”n输入的访问序列为:“);o for( i = 0;i N;i+)0 0 1o p ri n tf(%d zDat a i);printfCXn11);d ef a ult:a w h ile( c h oi c e != 1 & c hoice != 2) 。printf(”请输入1或2选择相应方式巧;。s ca n f( %d,&choice); s b r eak;)void DataO u tput()(,int i, j ;/对所有数据操作o fo r ( i = 0; i N;

18、i +)叩 r intf(%d , D a tai);)o printf( n);o fo r (j = 0 ; j M; j +)(。/对所有数据操作 f or( i = 0; i N;i+)。i f ( D at a S howEna b leji)。 p r i nt f ( % d ,DataSh owji):。 e 1 se。 printf ();)printf(n*);)printf( H 缺页次数:%dn,Chan g eT i m e s);p r i n tf(缺页率:%d %n, Ch a ng e T i mes * 1 0 0 / N);/最佳置换算法void Opt

19、imal()(。int i,j,k;s bool find;o i n t p oi n t; i nt temp; 临时变量,比较离的最远的时候用 i n t m = l,n;。C hangeT i me s = 0 ;for (j = 0 ;j M; j+)(s f o r(i=0;i N;i+) DataS h o wEna b 1 e j i = f al s e; / 初始化为 fa I s e,表达没有要显示的数据o f o r(i = 0;i M;i+)(a count i = 0 ; /初始化计数器)/拟定当前页面是否在物理块中,在继续,不在置换/ / / / / / / /

20、/ III / / /IIIIBl o ckO = Data0;0ofor (i = 1; m M;i+)( i nt f 1 ag = 1;for( n = 0; n m; n+) (if( D ata(i = B Io c kn) flag = 0;oo)if(flag = 0) con t in u e;。 Blockm = D a t ai;m+;)/ / / /hh/nmun/mmu/ / /对所有数据进行操作f o r (i=0;i N;i+)。/表达块中有没有该数据fi n d = false;fo r (j = 0;j M;j+)3(i f( Bio c k j = Data i)(so fin d = tru e ;3。8 ),if( find ) c ontinu e ; /块中有该数据,判断下一个数据/块中没有该数据,最优算法。 Chang e T imes+; / / 缺页次数+o for(j = 0;j M ; j+)找到下一个值的位置 f ind = false;for( k = i;k N; k +)。( a if( B 1 o c kj = D a tak)。fi nd = true:s。 o c o unt j = k;。 break;

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

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁