真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用C語(yǔ)言怎么編寫一個(gè)頁(yè)面置換算法-創(chuàng)新互聯(lián)

使用C語(yǔ)言怎么編寫一個(gè)頁(yè)面置換算法?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

創(chuàng)新互聯(lián)公司網(wǎng)站設(shè)計(jì),為客戶量身定制各類網(wǎng)站建設(shè)業(yè)務(wù),包括企業(yè)型、電子商務(wù)型、響應(yīng)式網(wǎng)站、行業(yè)門戶型等各類網(wǎng)站,實(shí)戰(zhàn)經(jīng)驗(yàn)豐富,成功案例眾多。以客戶利益為出發(fā)點(diǎn),創(chuàng)新互聯(lián)公司網(wǎng)站制作為客戶規(guī)劃、按需策劃設(shè)計(jì)符合企業(yè)需求、帶有營(yíng)銷價(jià)值的網(wǎng)絡(luò)建站方案認(rèn)真對(duì)待每一個(gè)客戶,我們不用口頭的語(yǔ)言來(lái)吹擂我們的優(yōu)秀,超過(guò)千家的成功案例見(jiàn)證著我們的成長(zhǎng)。

操作系統(tǒng)實(shí)驗(yàn)


頁(yè)面置換算法(FIFO、LRU、OPT)

概念:

1.很好置換算法(OPT)(理想置換算法):從主存中移出永遠(yuǎn)不再需要的頁(yè)面;如無(wú)這樣的頁(yè)面存在,則選擇最長(zhǎng)時(shí)間不需要訪問(wèn)的頁(yè)面。于所選擇的被淘汰頁(yè)面將是以后永不使用的,或者是在最長(zhǎng)時(shí)間內(nèi)不再被訪問(wèn)的頁(yè)面,這樣可以保證獲得最低的缺頁(yè)率。
2.先進(jìn)先出置換算法(FIFO):是最簡(jiǎn)單的頁(yè)面置換算法。這種算法的基本思想是:當(dāng)需要淘汰一個(gè)頁(yè)面時(shí),總是選擇駐留主存時(shí)間最長(zhǎng)的頁(yè)面進(jìn)行淘汰,即先進(jìn)入主存的頁(yè)面先淘汰。其理由是:最早調(diào)入主存的頁(yè)面不再被使用的可能性較大。
3.最近最久未使用(LRU)算法:這種算法的基本思想是:利用局部性原理,根據(jù)一個(gè)作業(yè)在執(zhí)行過(guò)程中過(guò)去的頁(yè)面訪問(wèn)歷史來(lái)推測(cè)未來(lái)的行為。它認(rèn)為過(guò)去一段時(shí)間里不曾被訪問(wèn)過(guò)的頁(yè)面,在最近的將來(lái)可能也不會(huì)再被訪問(wèn)。所以,這種算法的實(shí)質(zhì)是:當(dāng)需要淘汰一個(gè)頁(yè)面時(shí),總是選擇在最近一段時(shí)間內(nèi)最久不用的頁(yè)面予以淘汰。

題目:

編寫一個(gè)程序,實(shí)現(xiàn)本章所述的FIFO、LRU和最優(yōu)頁(yè)面置換算法。首先,生成一個(gè)隨機(jī)的頁(yè)面引用串,其中頁(yè)碼范圍為0-9.將這個(gè)隨機(jī)頁(yè)面引用串應(yīng)用到每個(gè)算法,并記錄每個(gè)算法引起的缺頁(yè)錯(cuò)誤的數(shù)量。實(shí)現(xiàn)置換算法,一遍頁(yè)面幀的數(shù)量可以從1~7。

#include 
#include 
#include 

int numbers[20]={7,0,1,2,
     0,3,0,4,
     2,3,0,3,
     2,1,2,0,
     1,7,0,1};//本地?cái)?shù)據(jù),與課本一致,方便測(cè)試
int nums=0;//輸入棧的個(gè)數(shù),為了方便使用,
int stack[20][7]={10};

void begin();
void randomnum();//用于產(chǎn)生隨機(jī)數(shù)
void init();//初始化
void FIFO();//FIFO算法
void LRU();//LRU算法
void OPT();//最優(yōu)頁(yè)面置換算法(OPT)
void print();//輸出

int main() {
 begin();
 FIFO();
 LRU();
 OPT();
 return 0;
}
void begin()//開(kāi)始菜單界面
{
 int i,j,k;
 printf("請(qǐng)輸入頁(yè)面幀的數(shù)量(1-7):");
 scanf("%d",&nums);
 for(k=0;;k++)
 {
  printf("是否使用隨機(jī)數(shù)產(chǎn)生輸入串(0:是,1:否)");
  scanf("%d",&j);
  if(j==0)
  {
   randomnum();
   break;
  }
  else if(j==1)
  {
   break;
  }
  else
  {
   printf("請(qǐng)輸入正確的選擇!\n");
  }
 }

 printf("頁(yè)面引用串為:\n");
 for(i=0;i<20;i++)
 {
  printf("%d ",numbers[i]);
 }
 printf("\n");
 init();
}
void randomnum()//如果需要使用隨機(jī)數(shù)生成輸入串,調(diào)用該函數(shù)
{
 srand(time(0));//設(shè)置時(shí)間種子
 for(int i = 0; i < 20; i++) {
  numbers[i] = rand() % 10;//生成區(qū)間0`9的隨機(jī)頁(yè)面引用串
 }
}
void init()//用于每次初始化頁(yè)面棧中內(nèi)容,同時(shí)方便下面輸出的處理
{
 int i,j;
 for(i=0;i<20;i++)
  for(j=0;jmax)
    {
     max=seq[q];
     k=q;
    }
   }
   stack[i][k]=numbers[i];
   sum++;
  }
  else
  {
   //頁(yè)面棧中有需要插入的數(shù)字,無(wú)需變化,替換的優(yōu)先級(jí)也不需要變化
  }
 }
 printf("\n");
 printf("OPT算法:\n");
 print();
 printf("缺頁(yè)錯(cuò)誤數(shù)目為:%d\n",sum);
}

運(yùn)行結(jié)果截圖:
使用C語(yǔ)言怎么編寫一個(gè)頁(yè)面置換算法
使用C語(yǔ)言怎么編寫一個(gè)頁(yè)面置換算法
使用C語(yǔ)言怎么編寫一個(gè)頁(yè)面置換算法

關(guān)于使用C語(yǔ)言怎么編寫一個(gè)頁(yè)面置換算法問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


本文標(biāo)題:使用C語(yǔ)言怎么編寫一個(gè)頁(yè)面置換算法-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://weahome.cn/article/ehdej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部