虚拟存储管理源代码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#include<stdafx.h>#include<stdlib.h>#include<stdio.h>#definen5//ʵÑéÖмٶ¨Ö÷´æµÄ³¤¶È#definem2//ʵÑéÖмٶ¨Ã¿¸ö×÷Òµ·ÖµÃÖ÷´æ¿é¿éÊýintp[m];//¶¨ÒåÒ³inthead=0;struct{shortintlnumber;//Ò³ºÅshortintflag;//±íʾ¸ÃÒ³ÊÇ·ñÔÚÖ÷´æ£¬"1"±íʾÔÚÖ÷´æ£¬"0"±íʾ²»ÔÚÖ÷´æshortintpnumber;//¸ÃÒ³ËùÔÚÖ÷´æ¿éµÄ¿éºÅshortintwrite;//¸ÃÒ³ÊÇ·ñ±»Ð޸Ĺý£¬"1"±íʾÐ޸Ĺý£¬"0"±íʾûÓÐÐ޸Ĺýshortintdnumber;//¸ÃÒ³´æ·ÅÔÚ´ÅÅÌÉϵÄλÖ㬼´´ÅÅÌ¿éºÅshortinttimes;//±»·ÃÎʵĴÎÊý£¬ÓÃÓÚLRUËã·¨}page[n];//¶¨ÒåÒ³±í//¸÷¸öº¯ÊýµÄʵÏÖÈçÏ£ºvoidcomputer(){inti;for(i=0;i<n;i++){page[i].lnumber=i;page[i].flag=0;page[i].pnumber=10000;//ÓÃ10000±íʾΪ¿Õpage[i].write=0;page[i].dnumber=i;page[i].times=0;}//³õʼ»¯Ò³±ífor(i=0;i<m;i++){page[i].pnumber=i;}for(i=0;i<m;i++){p[i]=i;page[i].flag=1;}//³õʼ»¯Ò³}voidshowpagelist(){inti;printf("\nÒ³ºÅ\tÊÇ·ñÔÚÖ÷´æÖÐ\t¿éºÅ\tÊÇ·ñ±»Ð޸Ĺý\t´ÅÅÌ¿éºÅ\t·ÃÎÊ´ÎÊý\n");for(i=0;i<n;i++){printf("%d\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n",page[i].lnumber,page[i].flag,page[i].pnumber,page[i].write,page[i].dnumber,page[i].times);}}voidshowpage(){inti;for(i=0;i<m;i++){printf("\t%d\n",p[i]);}}voidtransformation()//ȱҳÖжϴ¦Àí{unsignedlogicAddress,logicNumber,innerAddress,physicsAddress,physicsNumber;inti,fail=0;intmethod,temppage=0;shortinttimes=10000;printf("ÇëÊäÈëÒ»¸öÂß¼­µØÖ·£¨ËÄλʮÁù½øÖÆÊý£©:");scanf("%x",&logicAddress);//¶ÁÈëÂß¼­µØÖ·logicNumber=logicAddress>>10;//µÃµ½Ò³ºÅprintf("Ò³ºÅΪ:%ld\n",logicNumber);innerAddress=logicAddress&0x03ff;//µÃµ½Ò³ÄÚµØÖ·printf("Ò³ÄÚµØַΪ:%ld\n",innerAddress);for(i=0;i<n;i++){if(logicNumber==(unsigned)page[i].lnumber){if(page[i].flag==1){printf("ÇëÇóµÄÒ³ÃæÔÚÖ÷´æÖÐ!\n");page[i].times++;physicsNumber=page[i].pnumber;//ÓÉÒ³ºÅµÃµ½¿éºÅprintf("ÇëÇóµÄÖ÷´æ¿éºÅΪ:%ld\n",physicsNumber);physicsAddress=physicsNumber<<10|innerAddress;//µÃµ½ÎïÀíµØÖ·printf("ÇëÇóµÄÎïÀíµØַΪ:%ld",physicsAddress);//Êä³öÎïÀíµØÖ·break;}else{printf("ÇëÇóµÄÒ³Ãæ²»ÔÚÖ÷´æÖÐ!½«½øÐÐȱҳÖжϴ¦Àí!\n");printf("1.ÏȽøÏȳöȱҳ´¦Àí\n2.Í˳ö:\nÇëÑ¡Ôñ\n");scanf("%d",&method);if(method==1)//²ÉÓÃÏȽøÏȳöËã·¨{printf("²ÉÓÃÏȽøÏȳöËã·¨!\n");fail=p[head];printf("µÚ%dÒ³½«±»Ìæ»»!\n",fail);p[head]=logicNumber;head=(head+1)%m;if(page[fail].write==1)printf("µÚ%dÒ³Ôø±»Ð޸Ĺý!\n",fail);page[fail].flag=0;page[logicNumber].flag=1;page[logicNumber].write=0;page[logicNumber].pnumber=page[fail].pnumber;page[fail].pnumber=10000;page[logicNumber].times++;break;}else(method==2);{printf("ÄãÊäÈëÓÐÎ󣬼´½«Í˳ö!");exit(1);}}}}}voidmain(){charc,d,flag='y';printf("Ò³±íÕýÔÚ³õʼ»¯ÖÐ...£¬3ÃëÖÓºóΪÄãÏÔʾҳºÍÒ³±í£¡\n");computer();showpage();showpagelist();while(flag=='y'||flag=='Y'){transformation();printf("ÊÇ·ñÏÔʾҳºÍÒ³±í£¿(Y/N)");c=getchar();c=getchar();if(c=='Y'||c=='y'){showpage();showpagelist();}else{while(c=='N'||c=='n'){printf("\nÊÇ·ñ¼ÌÐø½øÐÐÇëÇó·ÖÒ³£¿£¨Y/N£©");d=getchar();d=getchar();if(d=='Y'||d=='y'){transformation();printf("\nÊÇ·ñÏÔʾҳºÍÒ³±í£¿£¨Y/N£©");c=getchar();c=getchar();if(c=='Y'||c=='y'){showpage();showpagelist();}}elseif(d=='N'||d=='n')exit(1);elseprintf("ÊäÈë´íÎó£¡\n");}}printf("\nÊÇ·ñ¼ÌÐø½øÐÐÇëÇó·ÖÒ³£¿£¨Y/N£©");flag=getchar();flag=getchar();}}

1 / 5
下载文档,编辑使用

©2015-2020 m.111doc.com 三一刀客.

备案号:赣ICP备18015867号-1 客服联系 QQ:2149211541

×
保存成功