《先进先出页面置换算法.docx》由会员分享,可在线阅读,更多相关《先进先出页面置换算法.docx(4页珍藏版)》请在三一办公上搜索。
1、先进先出页面置换算法先进先出页面置换算法 #include #include #define max 30 typedef struct int visit_number;/要访问的页面号 nu,numbermax; int *memoryblock;/主存中有三个主存块,可装三个页面 void init_memoryblock(int n)/初始化主存块 int i=1; memoryblock=(int*)malloc(sizeof(int);/分配空间 for(i=1;i=n;i+) memoryblocki=-1;/开始时候没有页面进入,初始为-1 void init_visitpag
2、e(number num,int n)/n表示要访问的页面的个数 int i=0; int j=3; printf(输入要访问的页面号: ); for(i=1;i=n;i+) scanf(%d,&numi.visit_number); printf(n); void FIFO_page_dispatch(number num,int n)/FIFO页面调度算法 int i,j=3,temp,counter=0; for(i=1;i=1;j-) if(numi.visit_number=memoryblockj)/要访问的页面在主存中 printf(%d)页面在主存块中,换出和换进都是%d号页面
3、:n,i,memoryblockj); break; /- /-页面不在主存中- if(numi.visit_number!=memoryblock1&numi.visit_number!=memoryblock2& numi.visit_number!=memoryblock3)/ 1 /*内存中没有要访问的页面,中断*/ if(memoryblock1!=-1&memoryblock2!=-1&memoryblock3!=-1) temp=memoryblock3; memoryblock3=memoryblock2; memoryblock2=memoryblock1; memorybl
4、ock1=numi.visit_number; /- printf(%d)页面发生置换:,i); printf(换出(%d号)页面,temp); printf(换进(%d)号页面n,numi.visit_number); counter+; for(j=3;j=1;j-)/ 2 if(memoryblockj=-1)/还有空闲主存块 printf(%d)有空闲主存块,%d号页面直接调入:n,i,i); memoryblockj=numi.visit_number; break; /-移动主存块- /- printf(n共产生 %d 次页面置换:,counter); void main number num; int m,n; printf(输入要访问页面串的个数(30)和内存块个数:); scanf(%d%d,&n,&m); getchar; init_memoryblock(m);/初始化主存块 init_visitpage(num,n);/输入要访问的页面号顺序 FIFO_page_dispatch(num,n);/FIFO调度 printf(n);