2012¼¶²Ù×÷ϵͳʵÑ鱨¸æ ÏÂÔØ±¾ÎÄ

ʵÑéÈý ÄÚ´æ¹ÜÀí

¡¾ÊµÑéÄ¿µÄÓëÒªÇó¡¿

¢±Á˽âÐéÄâ´æ´¢¼¼ÊõµÄÌØµã¡£

¢²ÕÆÎÕÇëÇóҳʽ´æ´¢¹ÜÀíµÄÒ³ÃæÖû»Ëã·¨¡£

3.Á˽âÒ³Ãæ´óСºÍÄÚ´æÊµ¼ÊÈÝÁ¿¶ÔÃüÖÐÂʵÄÓ°Ïì¡£ ¡¾ÊµÑéÔ­Àí¡¿

·ÖÒ³´æ´¢¹ÜÀí½«Ò»¸ö½ø³ÌµÄÂß¼­µØÖ·¿Õ¼ä·Ö³ÉÈô¸É´óСÏàµÈµÄƬ£¬³ÉÎªÒ³Ãæ»òÒ³¡£

ÔÚ½ø³ÌÔËÐйý³ÌÖУ¬ÈôÆäËùÒª·ÃÎʵÄÒ³Ãæ²»ÔÚÄÚ´æ¶øÐèÒª°ÑËûÃǵ÷ÈëÄڴ棬µ«ÄÚ´æÒÑÎÞ¿ÕÏÐʱ£¬ÎªÁ˱£Ö¤¸Ã½ø³ÌÄÜÕý³£ÔËÐУ¬ÏµÍ³±ØÐë´ÓÄÚ´æÖе÷³öÒ»Ò³³ÌÐò»òÊý¾Ý£¬ËÍ´ÅÅ̵ĶԻ»ÇøÖС£µ«Ó¦½«ÄĸöÒ³Ãæµ÷³ö£¬Ðë¸ù¾ÝÒ»¶¨µÄËã·¨À´È·¶¨¡£Í¨³££¬°ÑÑ¡Ôñ»»³öÒ³ÃæµÄËã·¨³ÆÎªÒ³ÃæÖû»Ëã·¨(Page Replacement Algorithm)¡£

Ò»¸öºÃµÄÒ³ÃæÖû»Ëã·¨£¬Ó¦¾ßÓнϵ͵ÄÒ³Ãæ¸ü»»ÆµÂÊ¡£´ÓÀíÂÛÉϽ²£¬Ó¦½«ÄÇЩÒÔºó²»ÔÙ»á·ÃÎʵÄÒ³Ãæ»»³ö£¬»ò½«ÄÇЩÔڽϳ¤Ê±¼äÄÚ²»»áÔÙ·ÃÎʵÄÒ³Ãæµ÷³ö¡£

¢± ×î¼ÑÖû»Ëã·¨OPT(Optimal) ¢² ÏȽøÏȳöÒ³ÃæÖû»Ëã·¨FIFO ¢³ ×î½ü×î¾ÃδʹÓÃÖû»Ëã·¨LRU ¢´ ×îÉÙ·ÃÎÊÒ³ÃæÖû»Ëã·¨LFU ¢µ ×î½ü×î²»¾­³£Ê¹ÓÃËã·¨NUR ¡¾ÊµÑéÖ÷ÒªÒÇÆ÷Óë²ÄÁÏ¡¿

¢± ´øLinux²Ù×÷ϵͳµÄPC»ú¡£ ¢² GCC±àÒëÆ÷¡£ ¡¾ÊµÑéÄÚÈÝ¡¿

1¡¢Í¨¹ýËæ»úÊý²úÉúÒ»¸öÖ¸ÁîÐòÁУ¬¹²320ÌõÖ¸Áî¡£Ö¸ÁîµÄµØÖ·°´ÏÂÊöÔ­ÔòÉú³É£º

? 50%µÄÖ¸ÁîÊÇ˳ÐòÖ´ÐеÄ

? 25%µÄÖ¸ÁîÊǾùÔÈ·Ö²¼ÔÚǰµØÖ·²¿·Ö ? 25%µÄÖ¸ÁîÊǾùÔÈ·Ö²¼ÔÚºóµØÖ·²¿·Ö ¾ßÌåµÄʵʩ·½·¨ÊÇ£º

? ÔÚ¡¾0,319¡¿µÄÖ¸ÁîµØÖ·Ö®¼äËæ»úѡȡһÆðµãm£» ? ˳ÐòÖ´ÐÐÒ»ÌõÖ¸Á¼´Ö´ÐеØÖ·Îªm+1µÄÖ¸Á

? ÔÚǰµØÖ·¡¾0£¬m+1¡¿ÖÐËæ»úѡȡһÌõÖ¸Áî²¢Ö´ÐУ¬¸ÃÖ¸ÁîµÄµØÖ·Îª

m¡¯£»

? ˳ÐòÖ´ÐÐÒ»ÌõÖ¸ÁÆäµØÖ·Îªm¡¯+1£»

? ÔÚºóµØÖ·[m¡¯+2,319]ÖÐËæ»úѡȡһÌõÖ¸Áî²¢Ö´ÐУ» ? ÖØ¸´ÉÏÊö²½Ö裬ֱµ½Ö´ÐÐ320´ÎÖ¸Áî¡£ 2¡¢½«Ö¸ÁîÐòÁб任³ÉΪҳµØÖ·Á÷ É裺

? Ò³Ãæ´óСΪ1K£»

? Óû§ÄÚ´æÈÝÁ¿Îª4Ò³µ½32Ò³£» ? Óû§ÐéÄâÈÝÁ¿Îª32K¡£

ÔÚÓû§Ðé´æÖУ¬°´Ã¿K´æ·Å10ÌõÖ¸ÁîÅÅÁÐÐéÄâµØÖ·£¬¼´320ÌõÖ¸ÁîÔÚÐé´æ

1

ÖеĴæ·Å·½Ê½Îª£º

µÚ0Ìõ~µÚ9ÌõÖ¸ÁîΪµÚ0Ò³£¨¶ÔÓ¦Ðé´æµØÖ·Îª¡¾0,9¡¿£©£» µÚ10Ìõ~µÚ19ÌõÖ¸ÁîΪµÚ1Ò³£¨¶ÔÓ¦Ðé´æµØÖ·Îª¡¾10,19¡¿£©£» ?

µÚ310Ìõ~µÚ319ÌõÖ¸ÁîΪµÚ31Ò³£¨¶ÔÓ¦Ðé´æµØÖ·Îª¡¾310,319¡¿£©¡£ °´ÒÔÉÏ·½Ê½£¬Óû§Ö¸Áî¿É×é³É32Ò³¡£

3¡¢¼ÆËã²¢Êä³öÏÂÁи÷ÖÖËã·¨ÔÚ²»Í¬ÄÚ´æÈÝÁ¿ÏµÄÃüÖÐÂÊ¡£

? ÏȽøÏȳöµÄËã·¨£¨FIFO£©£» ? ×î½ü×îÉÙʹÓÃËã·¨£¨LRU£©£» ? ×î¼ÑÌÔÌ­Ëã·¨£¨OPT£©£ºÏÈÌÔÌ­×î²»³£ÓõÄÒ³µØÖ·£» ÆäÖÐOPTΪѡ×÷ÄÚÈÝ¡£

ÃüÖÐÂÊ = 1 ¨C Ò³ÃæÊ±Ð§´ÎÊý/Ò³µØÖ·Á÷³¤¶È

ÔÚ±¾ÊµÑéÖУ¬Ò³µØÖ·Á÷³¤¶ÈΪ320£¬Ò³ÃæÊ§Ð§´ÎÊýΪÿ´Î·ÃÎÊÏàÓ¦Ö¸Áîʱ£¬¸ÃÖ¸ÁîËù¶ÔÓ¦µÄÒ³²»ÔÚÄÚ´æµÄ´ÎÊý¡£ ¡¾ÊµÑé²½Ö輰ʵÑé½á¹û·ÖÎö¡¿

Ê×ÏÈÓÃsrand()ºÍrand()º¯Êý¶¨ÒåºÍ²úÉúÖ¸ÁîÐòÁУ¬È»ºó½«Ö¸ÁîÐòÁб任³ÉÏàÓ¦µÄÒ³µØÖ·Á÷£¬²¢Õë¶Ô²»Í¬µÄËã·¨¼ÆËã³öÏàÓ¦µÄÃüÖÐÂÊ¡£

//****ÀûÓÃÏȽøÏȳöËã·¨(FIFO)ºÍ×î½ü×î¾ÃδʹÓÃËã·¨(LRU)****// #include #include

#include #include

#define NULL_1 10000 const int ty=320;

int d[320]; //Ö¸ÁîÐòÁÐ int page[320]; //Ò³µØÖ·Á÷ int p[32]; //ÄÚ´æÒ³Ãæ int que; //ȱҳ´ÎÊý

int time[32]; //¼ÇÂ¼Ò³Ãæ¾àÀëÉϴα»·ÃÎʵÄʱ¼ä

void creat(int leng) //lengΪÄÚ´æÒ³ÃæÊýÁ¿ { int i; que=0; for(i=0;i

//******ÏȽøÏȳöËã·¨

void FIFO(int leng) //lengΪÄÚ´æÒ³ÃæÊýÁ¿ { int i,j,k; int n; //nΪҪ±»Ìæ»»µÄÒ³ÃæºÅ£¬°´0,1,2...leng,0,1,2...lengÑ­»·±ä»¯

2

}

//******×î½ü×î¾ÃδʹÓÃËã·¨

void LRU(int leng) //lengΪÄÚ´æÒ³ÃæÊýÁ¿ {

int i,j,k;

int tmax; //´ætimeµÄ×î´óÖµ

int t; //tΪҪ±»·ÃÎʵÄÒ³ÃæºÅ creat(leng); //³õʼ»¯ÄÚ´æÒ³Ãæ for(i=0;i

3

creat(leng); //³õʼ»¯ÄÚ´æÒ³Ãæ

n=0;

for(i=0;i

printf(\

break; } } if(k==0) { que++; tmax=time[0]; t=0; for(j=0;j

printf(\ }

void main( ) {

int m,i;

srand(10*getpid()); //ÓÃÀ´×÷Ϊ³õʼ»¯Ëæ»úÊý¶ÓÁеÄ\ÖÖ×Ó\ m=(int)((float)(ty-1)*(rand()/(RAND_MAX+1.0))); //Ñ¡0-319ÖÐÒ»Êý for (i=0; i

d[i]=m; //ÈÎѡһָÁî·ÃÎʵãm d[i+1]=d[i]+1; //˳ÐòÖ´ÐÐÒ»ÌõÖ¸Áîm+1

d[i+2]=(int)((float)d[i]*(rand()/(RAND_MAX+1.0)));

//Ö´ÐÐǰµØÖ·Ö¸Áîm',¼´Ñ¡Ôñ(0£¬m+1)Ö®¼äµÄÊý

d[i+3]=d[i+2]+1; //˳ÐòÖ´ÐÐÒ»ÌõÖ¸Áî

m= (int)((float)((ty-1)-d[i+2])*(rand()/(RAND_MAX+1.0))) + d[i+2]; //Ñ¡(m'+2,319)Ö®¼äÊý }

for(i=0;i

printf(\

for(i=4;i<=32;i++) //ÄÚ´æ´Ó4Ò³µ½32Ò³

4