欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      操作系統(tǒng) 七次實驗報告 常用頁面置換算法模擬實驗

      2020-10-09 00:40:02下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了這篇《操作系統(tǒng) 七次實驗報告 常用頁面置換算法模擬實驗》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《操作系統(tǒng) 七次實驗報告 常用頁面置換算法模擬實驗》。

      操作系統(tǒng)課程第七次實驗報告

      姓名

      學(xué)號

      計算機

      任課教師

      指導(dǎo)教師

      評閱教師

      實驗地點

      綜合樓B102

      實驗時間

      2012-9-26

      實驗課表現(xiàn)

      出勤和個人表現(xiàn)Q1(15+15(組長評分)=30分)

      得分:

      實驗

      總分

      (Q1+Q2+Q3+Q4)

      實驗完成情況Q2(45分(組長與教師評分的加權(quán)平均))

      得分:

      實驗編號與實驗名稱:

      實驗七、常用頁面置換算法模擬實驗

      實驗?zāi)康模?/p>

      通過模擬實現(xiàn)請求頁式存儲管理的幾種基本頁面置換算法,了解虛擬存儲技術(shù)的特點,掌握虛擬存儲請求頁式存儲管理中幾種基本頁面置換算法的基本思想和實現(xiàn)過程,并比較它們的效率。

      實驗內(nèi)容及要求(詳見實驗講義與實驗指導(dǎo)書):

      要求:

      1)要求用你熟悉的程序設(shè)計語言編寫和調(diào)試一個頁面置換模擬程序;要求在主函數(shù)中測試。

      2)實驗報告中必須包括:設(shè)計思想、數(shù)據(jù)定義(包括詳細說明)、處理流程(詳細算法描述和算法流程圖)、源代碼、運行結(jié)果、體會等部分。

      3)必須模擬本實驗內(nèi)容中提到的算法中的至少2種頁面置換算法。

      4)

      比較不同頁面置換算法的效率

      內(nèi)容:編寫一個程序,使用以下頁面置換算法中的某2種分別模擬一個分頁系統(tǒng),并統(tǒng)計同一個頁面訪問序列情況下不同頁面置換算法引發(fā)的缺頁中斷次數(shù)。

      1、第二次機會算法(Second

      Chance)

      2、最近最少使用算法(Least

      Recently

      Used,LRU)

      3、最不常用算法(Not

      Frequently

      Used,NFU)

      4、最近未使用算法(Not

      Recently

      Used,NRU)

      5、時鐘頁面置換算法

      6、老化算法(aging)

      頁框的數(shù)量固定為4,虛擬頁面數(shù)為8。實驗輸入為訪問頁面序列,比如0,1,3,2,7,1

      實驗用到的軟件(:)

      DevC++,Visio

      實驗內(nèi)容及關(guān)鍵步驟(代碼)Q3(15分)

      得分:

      流程圖:輸入頁面訪問序列

      取訪問的頁號

      查頁表

      是否缺頁?

      置缺頁標志flag為’*’

      按算法不同淘汰一頁面

      調(diào)入所訪問的頁面

      FIFO算法流程圖

      LRU算法流程圖:

      函數(shù)關(guān)系解釋圖:

      實現(xiàn)結(jié)果:

      圖1

      圖2

      代碼:

      #include

      #include

      #define

      MEMORY_SIZE

      /*物理塊數(shù)*/

      #define

      PROESS_SIZE

      /*頁面號引用串個數(shù)*/#include

      #include

      /*全局變量*/

      int

      mSIZE=4;

      int

      pSIZE=8;

      static

      int

      memery[4]={0};

      /*物理塊中的頁號*/

      static

      int

      page[8]={0};

      /*頁面號引用串*/

      static

      int

      temp[8][4]={0};

      /*輔助數(shù)組*/

      /*置換算法函數(shù)*/

      void

      FIFO();

      void

      LRU();

      void

      OPT();

      void

      designBy();

      /*輔助函數(shù)*/

      void

      print(unsigned

      int

      t);

      /*主函數(shù)*/

      int

      main()

      {

      int

      i,k,code;

      designBy();

      system(“color

      0A“);

      puts(“請依次輸入頁面號(8個):“);

      for(i=0;i

      scanf(“%1d“,&page[i]);

      system(“cls“);

      system(“color

      0E“);

      do{

      puts(“輸入的頁面號引用串為:“);

      for(k=0;k<=(pSIZE-1)/20;k++)

      {

      for(i=20*k;(i

      {

      if(((i+1)%20==0)||(((i+1)%20)&&(i==pSIZE-1)))

      printf(“%d\n“,page[i]);

      else

      printf(“%d

      “,page[i]);

      }

      }

      printf(“*

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *\n“);

      printf(“*

      請選擇頁面置換算法:\t\t\t

      *\n“);

      printf(“*

      -----------------------------------------

      *\n“);

      printf(“*

      1.先進先出(FIFO)

      2.最近最久未使用(LRU)

      *\n“);

      printf(“*

      3.退出

      *\n“);

      printf(“*

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *

      *\n“);

      printf(“請選擇操作:[

      ]\b\b“);

      scanf(“%d“,&code);

      switch(code)

      {

      case

      1:

      FIFO();

      break;

      case

      2:

      LRU();

      break;

      case

      3:

      system(“cls“);

      system(“color

      0A“);

      exit(0);

      default:

      printf(“輸入錯誤,請重新輸入:“);

      }

      printf(“按任意鍵重新選擇置換算法:>>>“);

      getch();

      system(“cls“);

      }while

      (code!=3);

      getch();

      }

      void

      print(unsigned

      int

      t)

      {

      int

      i,j,k,l;

      int

      flag;

      for(k=0;k<=(pSIZE-1)/20;k++)

      {

      for(i=20*k;(i

      {

      if(((i+1)%20==0)||(((i+1)%20)&&(i==pSIZE-1)))

      printf(“%d\n“,page[i]);

      else

      printf(“%d

      “,page[i]);

      }

      for(j=0;j

      {

      for(i=20*k;(i{

      if(i>=j)

      printf(“

      |%d|“,temp[i][j]);

      else

      printf(“

      |

      |“);

      }

      for(i=mSIZE+20*k;(i

      {

      for(flag=0,l=0;l

      if(temp[i][l]==temp[i-1][l])

      flag++;

      if(flag==mSIZE)/*頁面在物理塊中*/

      printf(“

      “);

      else

      printf(“

      |%d|“,temp[i][j]);

      }

      /*每行顯示20個*/

      if(i%20==0)

      continue;

      printf(“\n“);

      }

      }

      printf(“----------------------------------------\n“);

      printf(“缺頁次數(shù):%d\t\t“,t+mSIZE);

      printf(“缺頁率:%d/%d\n“,t+mSIZE,pSIZE);

      printf(“置換次數(shù):%d\t\t“,t);

      printf(“訪問命中率:%d%%\n“,(pSIZE-(t+mSIZE))*100/pSIZE);

      printf(“----------------------------------------\n“);

      }

      /*先進先出頁面置換算法*/

      void

      FIFO()

      {

      int

      memery[10]={0};

      int

      time[10]={0};

      /*記錄進入物理塊的時間*/

      int

      i,j,k,m;

      int

      max=0;

      /*記錄換出頁*/

      int

      count=0;

      /*記錄置換次數(shù)*/

      /*前mSIZE個數(shù)直接放入*/

      for(i=0;i

      {

      memery[i]=page[i];

      time[i]=i;

      for(j=0;j

      temp[i][j]=memery[j];

      }

      for(i=mSIZE;i

      {

      /*判斷新頁面號是否在物理塊中*/

      for(j=0,k=0;j

      {

      if(memery[j]!=page[i])

      k++;

      }

      if(k==mSIZE)

      /*如果不在物理塊中*/

      {

      count++;

      /*計算換出頁*/

      max=time[0]

      for(m=2;m

      if(time[m]

      max=m;

      memery[max]=page[i];

      time[max]=i;

      /*記錄該頁進入物理塊的時間*/

      for(j=0;j

      temp[i][j]=memery[j];

      }

      else

      {

      for(j=0;j

      temp[i][j]=memery[j];

      }

      }

      print(count);

      }

      /*最近最久未使用置換算法*/

      void

      LRU()

      {

      int

      memery[10]={0};

      int

      flag[10]={0};

      /*記錄頁面的訪問時間*/

      int

      i,j,k,m;

      int

      max=0;

      /*記錄換出頁*/

      int

      count=0;

      /*記錄置換次數(shù)*/

      /*前mSIZE個數(shù)直接放入*/

      for(i=0;i

      {

      memery[i]=page[i];

      flag[i]=i;

      for(j=0;j

      temp[i][j]=memery[j];

      }

      for(i=mSIZE;i

      {

      /*判斷新頁面號是否在物理塊中*/

      for(j=0,k=0;j

      {

      if(memery[j]!=page[i])

      k++;

      else

      flag[j]=i;

      /*刷新該頁的訪問時間*/

      }

      if(k==mSIZE)

      /*如果不在物理塊中*/

      {

      count++;

      /*計算換出頁*/

      max=flag[0]

      for(m=2;m

      if(flag[m]

      max=m;

      memery[max]=page[i];

      flag[max]=i;

      /*記錄該頁的訪問時間*/

      for(j=0;j

      temp[i][j]=memery[j];

      }

      else

      {

      for(j=0;j

      temp[i][j]=memery[j];

      }

      }

      //

      compute();

      print(count);

      }

      /*顯示設(shè)計者信息*/

      void

      designBy()

      {

      printf(“┏━━━━━━━━━━━━━━━━━━━━━━━━━┓\n“);

      printf(“┃㊣

      實驗七:頁面置換算法

      ㊣┃\n“);

      printf(“┃

      學(xué)號:1001010042

      ┃\n“);

      printf(“┃

      姓名:黃浩全

      4.9.9.0>┃\n“);

      printf(“┣━━━━━━━━━━━━━━━━━━━━━━━━━┫\n“);

      }

      實驗過程中遇到的問題解決辦法與實驗體會Q4(需手寫,10分)

      得分:

      1、在FIFO算法可以很容易用數(shù)組實現(xiàn),而LRU算法可以用數(shù)組實現(xiàn),不過用結(jié)構(gòu)體會更明顯簡單。結(jié)構(gòu)體成員變量可以記錄頁號進入的時間,和最近使用的記錄。相對比數(shù)組更容易理解和實現(xiàn)。

      2:首先,F(xiàn)IFO(先進先出)算法和LRU(最近未使用算法)兩者之間,F(xiàn)IFO算法明顯會比LRU容易理解,而且比LRU算法較容易實現(xiàn),但在性能方面,LRU的確在優(yōu)化方面做的比較理想。再且在考慮頁框和頁表號之間的問題用代碼可以容易模擬,但是真是在物理內(nèi)存塊中是如何實現(xiàn),那確實是很難以理解,需要真正理解到內(nèi)存內(nèi)部的知識才知道這兩個算法是怎么實現(xiàn)的。

      評閱教師特殊評語:

      評閱教師:

      期:

      下載操作系統(tǒng) 七次實驗報告 常用頁面置換算法模擬實驗word格式文檔
      下載操作系統(tǒng) 七次實驗報告 常用頁面置換算法模擬實驗.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        計算機操作系統(tǒng)實驗三頁面置換算法模擬實驗

        計算機工程學(xué)院實驗報告書課程名:《操作系統(tǒng)原理A》題目:虛擬存儲器管理頁面置換算法模擬實驗班級:學(xué)號:姓名:評語:成績:指導(dǎo)教師:批閱時間:年月日一、實驗?zāi)康呐c要求1.目的:請求頁式......

        頁面置換算法實驗報告(精選)

        《操作系統(tǒng)--頁面置換算法》 實驗報告 姓名: 范學(xué)升學(xué)號:1001050903 班級:電科10-1班專業(yè):電子信息科學(xué)與技術(shù) 一、實驗?zāi)康?1.通過模擬實現(xiàn)幾種基本頁面置換的算法,了解虛擬存儲......

        頁面置換算法實驗報告(五篇模版)

        計算機體系結(jié)構(gòu) 實驗報告 班級:計科姓名:張華敏學(xué)號:0902班0909090814 FIFU算法 一, 實驗內(nèi)容: 編寫一段程序來模擬頁面置換算法中的FIFU算法的實現(xiàn) 二, 算法設(shè)計: 設(shè)置一個產(chǎn)生......

        頁面置換算法模擬實驗 操作系統(tǒng)大作業(yè)(含源文件)(合集五篇)

        “計算機操作系統(tǒng)”課程設(shè)計大作業(yè) 頁面置換算法模擬實驗 (含完整資料,可直接提交) 一、題目: 頁面置換算法模擬實驗 二、目的 分別采用最佳(Optimal)置換算法、先進先出(FI......

        計算機操作系統(tǒng)實驗4頁面置換算法

        實驗4 頁面置換算法(2學(xué)時) 一、實驗?zāi)康?通過實驗加強對虛擬存儲管理中頁面置換算法的理解和掌握。 二、實驗內(nèi)容 編寫程序?qū)崿F(xiàn)虛擬存儲管理中OPT,FIFO,LRU頁面置換算法。 三......

        頁面置換算法模擬

        “計算機操作系統(tǒng)”課程設(shè)計大作業(yè) 一、題目: 頁面置換算法模擬實驗 二、目的 分別采用最佳(Optimal)置換算法、先進先出(FIFO)頁面置換算法和最近最少使用(LRU)置換算法對......

        頁面替換算法實驗報告

        操作系統(tǒng)頁面替換算法實驗報告 姓名: 沈慧 班級: 計091 學(xué)號: 0913022006 頁面替換算法 一.目的和要求 (一)目的 存儲管理的主要功能之一是合理地分配空間。請求頁式管理是一種常......

        實驗5 頁面置換算法

        實驗5 頁面置換算法 一、實驗題目:頁面置換算法(請求分頁) 二、實驗?zāi)康模? 進一步理解父子進程之間的關(guān)系。 1) 理解內(nèi)存頁面調(diào)度的機理。 2) 掌握頁面置換算法的實現(xiàn)方法。 3) 通......