2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  課 程 設(shè) 計(jì)</b></p><p>  課程名稱 操作系統(tǒng) </p><p>  學(xué) 院 計(jì)算機(jī)學(xué)院 </p><p>  專 業(yè) 軟件工程 </p><p>  年級(jí)班別

2、 </p><p>  學(xué) 號(hào) </p><p>  學(xué)生姓名 </p><p>  指導(dǎo)教師 </p><p>  2013 年 1 月 7 日<

3、;/p><p>  操作系統(tǒng) 課程設(shè)計(jì)任務(wù)書</p><p><b>  設(shè)計(jì)思想說明 </b></p><p><b>  1.1 設(shè)計(jì)環(huán)境 </b></p><p>  在實(shí)現(xiàn)地址轉(zhuǎn)換的程序?qū)崿F(xiàn)時(shí),運(yùn)用了C++6.0來實(shí)現(xiàn),因?yàn)閷?duì)C語言程序的編寫稍微熟悉點(diǎn),可以很好的編寫及調(diào)試。程序很容易看懂,輸入

4、條件在后邊備注。</p><p><b>  1.2 設(shè)計(jì)思想</b></p><p>  編程演示三種存儲(chǔ)管理方式的地址換算過程,分別為分頁方式的地址換算,分段方式的地址換算,段頁式的地址換算。分頁方式通過邏輯地址算出頁號(hào)與葉內(nèi)地址,然后通過頁表來實(shí)現(xiàn)向物理地址的轉(zhuǎn)換。分段方式通過段號(hào)和段內(nèi)地址得到物理地址。段葉式通過段號(hào)得到頁表首地址,通過頁號(hào)得到塊號(hào),進(jìn)而得到物

5、理地址。</p><p><b>  2、系統(tǒng)結(jié)構(gòu)</b></p><p>  程序主要有三個(gè)功能,分別是分頁方式的地址換算,分段方式的地址換算,段頁式的地址換算。Switch函數(shù)包含3個(gè)case語句,分別用page,Segment,SegPagt完成分頁方式的地址換算,分段方式的地址換算,段頁式的地址換算。</p><p><b>

6、  3、數(shù)據(jù)結(jié)構(gòu)的說明</b></p><p>  typedef struct segtable</p><p><b>  {</b></p><p>  int segf[256];</p><p>  int segl[256];</p><p>  }segtable;<

7、;/p><p>  struct segtable st;</p><p>  typedef struct segpagt</p><p><b>  {</b></p><p>  int segf[256];</p><p>  int segl[256];</p><p&g

8、t;  int ptl[256];</p><p>  int pt[256];</p><p>  int pf[256];</p><p><b>  int pl;</b></p><p><b>  }segpagt;</b></p><p>  struct seg

9、pagt sp; </p><p><b>  4、算法流程圖</b></p><p><b>  分頁式:</b></p><p><b>  分段式:</b></p><p><b>  段頁式:</b></p><p><

10、;b>  主要函數(shù)列表</b></p><p><b>  6、測(cè)試與分析</b></p><p>  分頁式地址換算結(jié)果:</p><p>  分頁式地址越界中斷:</p><p>  分段式地址轉(zhuǎn)換結(jié)果:</p><p>  分段式地址段號(hào)越界中斷:</p>&

11、lt;p>  分段式地址段內(nèi)越界中斷:</p><p>  段頁式地址轉(zhuǎn)換結(jié)果:</p><p>  段頁式地址轉(zhuǎn)換段號(hào)越界中斷:</p><p>  段頁式地址轉(zhuǎn)換頁號(hào)越界中斷:</p><p>  段頁式地址轉(zhuǎn)換段內(nèi)地址越界中斷:</p><p><b>  結(jié)束:</b></p&

12、gt;<p><b>  用戶使用說明</b></p><p>  根據(jù)提示輸入1-4,然后有相應(yīng)的提示說明,分別輸入,錯(cuò)誤的時(shí)候有提示,正確的輸入會(huì)輸出相應(yīng)的正確的結(jié)果。</p><p><b>  附錄:</b></p><p>  #include <stdlib.h></p>

13、<p>  #include <stdio.h></p><p>  int page(int A,int L );</p><p>  int Segment(int sn,int sl);</p><p>  int SegPagt(int sn,int pn,int pd);</p><p>  typedef

14、struct segtable</p><p><b>  {</b></p><p>  int segf[256];</p><p>  int segl[256];</p><p>  }segtable;</p><p>  struct segtable st;</p>&

15、lt;p>  typedef struct segpagt</p><p><b>  {</b></p><p>  int segf[256];</p><p>  int segl[256];</p><p>  int ptl[256];</p><p>  int pt[256];

16、</p><p>  int pf[256];</p><p><b>  int pl;</b></p><p><b>  }segpagt;</b></p><p>  struct segpagt sp; </p><p>  int main()</p>

17、<p><b>  {</b></p><p><b>  int code;</b></p><p>  int pl,pa,sn,sd,pd,pn,pc;</p><p>  //const int ptl ;</p><p><b>  int temp;</b&

18、gt;</p><p><b>  do{</b></p><p>  printf("----------------地址換算過程----------------------------\n\n");</p><p>  printf("******本程序由陳泳鑫設(shè)計(jì)--2013年1月3號(hào)*****\n"

19、;);</p><p>  printf(" 1.分頁式地址換算\n");</p><p>  printf(" 2.分段式地址換算\n");</p><p>  printf(" 3.段頁式地址換算\n");</p><p>  printf(" 4.結(jié)束運(yùn)行\(zhòng)n

20、\n");</p><p>  printf("--------------------------------------------------------\n");</p><p>  printf("請(qǐng)輸入1-4:");</p><p>  scanf("%d",&temp);&l

21、t;/p><p>  switch(temp)</p><p><b>  {</b></p><p><b>  case 1: </b></p><p>  printf("預(yù)設(shè)頁表長(zhǎng)度為256\n");</p><p>  page(pl,pa);<

22、;/p><p><b>  break;</b></p><p><b>  case 2: </b></p><p>  int pl,pa;</p><p>  printf("預(yù)設(shè)段表長(zhǎng)度為256\n");</p><p>  printf("

23、;請(qǐng)輸入您的邏輯地址段號(hào):");</p><p>  scanf("%d",&pl);</p><p>  printf("請(qǐng)輸入您的頁內(nèi)地址:");</p><p>  scanf("%d",&pa);</p><p>  if(pl>256)<

24、;/p><p>  printf("段號(hào)%d大于段表長(zhǎng)度256,越界中斷\n",pl);</p><p><b>  else{</b></p><p>  if(pa>256)</p><p>  printf("段內(nèi)地址%d大于段長(zhǎng)度256,越界中斷\n",pa);</

25、p><p><b>  else</b></p><p><b>  {</b></p><p>  Segment(pl,pa);</p><p><b>  } </b></p><p><b>  }</b></p>

26、<p><b>  break;</b></p><p><b>  case 3:</b></p><p>  printf("預(yù)設(shè)段表長(zhǎng)度為256,頁面大小為256\n");</p><p>  printf("請(qǐng)輸入您的邏輯地址段號(hào):");</p>&

27、lt;p>  scanf("%d",&pl);</p><p>  printf("請(qǐng)輸入您的頁號(hào):");</p><p>  scanf("%d",&pa); </p><p>  printf("請(qǐng)輸入您的頁內(nèi)地址:");</p>&

28、lt;p>  scanf("%d",&pc);</p><p>  if(pl>256)</p><p>  printf("段號(hào)%d大于段表長(zhǎng)度256,越界中斷\n",pl);</p><p><b>  else{</b></p><p>  if(pa&g

29、t;256)</p><p>  printf("頁號(hào)長(zhǎng)度%d大于頁表長(zhǎng)度256,越界中斷\n",pa);</p><p><b>  else</b></p><p><b>  {</b></p><p>  if(pc>256)</p><p>

30、;  printf("頁內(nèi)地址%d大于頁面長(zhǎng)度256,越界中斷\n",pc);</p><p><b>  else</b></p><p>  SegPagt(pl,pa,pc);</p><p><b>  }</b></p><p><b>  }</b&g

31、t;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  }while(temp != 4);</p><p><b>  return 0;</b></p><p><b>  }&l

32、t;/b></p><p>  //分頁式地址換算部分:</p><p>  int page(int A,int L)</p><p><b>  {</b></p><p>  int pl,pa;</p><p>  printf("請(qǐng)輸入您的邏輯地址:");&l

33、t;/p><p>  scanf("%d",&pl);</p><p>  printf("請(qǐng)輸入您的頁面大小:");</p><p>  scanf("%d",&pa);</p><p>  if(pl>256)</p><p>  pri

34、ntf("頁號(hào)%d大于頁表長(zhǎng)度256,越界中斷\n",pl);</p><p><b>  else{</b></p><p>  int d,P,kd,i;</p><p><b>  int WD;</b></p><p>  int PT[256];</p>

35、<p>  for(i=0;i<256;i++)</p><p><b>  {</b></p><p>  PT[i]=rand() %512;//定義隨機(jī)產(chǎn)生的快號(hào)在1到512之間</p><p><b>  }</b></p><p>  P=A/L;//頁號(hào)等于邏輯地址/頁面

36、大小</p><p>  d=A%L;//頁內(nèi)地址=邏輯地址%頁面大小</p><p>  if(P>=256) printf("頁號(hào)大于頁表長(zhǎng)度,越界中斷\n\n");//如果頁號(hào)大于頁表長(zhǎng)度,輸出越界中段</p><p><b>  else {</b></p><p>  printf(&

37、quot;頁號(hào)=邏輯地址/頁面大小=%d,頁內(nèi)地址=邏輯地址%頁面大小=%d\n",P,d);//輸出頁號(hào)和頁內(nèi)地址</p><p>  kd=PT[P];//根據(jù)頁號(hào)隨機(jī)產(chǎn)生快號(hào)</p><p>  printf("根據(jù)頁號(hào)%d得到塊號(hào)%d\n",P,kd);</p><p>  WD=kd*L+d;//計(jì)算物理地址的公式</p

38、><p>  printf("物理地址=塊號(hào)*頁面大小+頁內(nèi)地址\n");</p><p>  printf("物理地址=%d*%d+%d\n",kd,L,d);//輸出物理地址=塊號(hào)*頁面大小+頁內(nèi)地址</p><p>  printf("邏輯地址%d換算后的物理地址=%d\n\n",A,WD);//輸出物理

39、地址的結(jié)果</p><p>  return (0);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //分段式地址換算部分:</p><p

40、>  int Segment(int sn,int sd)</p><p><b>  {</b></p><p><b>  int i,wd;</b></p><p>  for(i=0;i<255;i++)</p><p><b>  {</b></p&

41、gt;<p>  st.segf[i]=rand()%255;//定義隨機(jī)產(chǎn)生段首地址為1到255之間</p><p>  st.segl[i]=rand()%2048;//定義隨機(jī)產(chǎn)生段長(zhǎng)度為1到2048之間</p><p><b>  }</b></p><p>  if(sn>256) printf("段號(hào)%

42、d大于段表長(zhǎng)度256,越界中斷\n\n",sn);//如果段號(hào)大于段表長(zhǎng)度,輸出越界中斷</p><p>  else if(sd>st.segl[sn]) printf("段內(nèi)地址%d大于段長(zhǎng)度%d,越界中斷\n\n",sd,st.segl[sn]);//如果段內(nèi)地址大于段長(zhǎng)度,輸出越界中斷</p><p><b>  else{</b

43、></p><p>  printf("根據(jù)段號(hào)找到段首地址%d\n",st.segf[sn]);</p><p>  printf("物理地址=段首地址+段內(nèi)地址\n");</p><p>  printf("物理地址=%d+%d\n",st.segf[sn],sd); //輸出物理地址=段首地址+

44、段內(nèi)地址</p><p>  wd=st.segf[sn]+sd;//計(jì)算物理地址的算法</p><p>  printf("換算得到的物理地址=%d\n\n",wd);//輸出物理地址</p><p><b>  }</b></p><p>  return (0);</p><

45、p><b>  }</b></p><p>  //段頁式地址換算部分:</p><p>  int SegPagt(int sn,int pn,int pd)</p><p><b>  {</b></p><p><b>  int i,wd;</b></p&g

46、t;<p>  sp.pl=256;</p><p>  for(i=0;i<255;i++)</p><p><b>  {</b></p><p>  sp.pf[i]=sp.segf[i]=rand()%26624;//定義隨機(jī)產(chǎn)生的數(shù)在1到26624之間</p><p>  sp.ptl[i]

47、=sp.segl[i]=rand()%512;//定義隨機(jī)產(chǎn)生的數(shù)在1到512之間</p><p>  sp.pt[i]=rand()%256;//定義隨機(jī)產(chǎn)生的數(shù)在1到256之間</p><p><b>  }</b></p><p>  if(sn>=256) </p><p>  printf("段

48、號(hào)%d大于段表長(zhǎng)度256,越界中斷\n\n",sn);//如果段號(hào)大于段表長(zhǎng)度256,輸出越界中斷</p><p><b>  else </b></p><p>  if(pn>=256) </p><p>  printf("頁號(hào)%d大于頁表長(zhǎng)度256,越界中斷\n\n",pn);//如果頁號(hào)大于頁表長(zhǎng)度

49、,輸出越界中斷</p><p><b>  else </b></p><p>  if(pd>sp.pl) </p><p>  printf("頁內(nèi)地址%d大于頁面長(zhǎng)度%d,中斷\n\n",pd,sp.pl);//如果頁內(nèi)地址大于頁面長(zhǎng)度,輸出中斷</p><p><b>  el

50、se{</b></p><p>  printf("通過段號(hào)%d找到頁表首地址%d\n通過頁號(hào)%d找到塊號(hào)%d\n",sn,sp.pf[sn],pn,sp.pt[pn]);//輸出頁表首地址和塊號(hào)</p><p>  printf("物理地址=頁表首地址+塊號(hào)*頁面長(zhǎng)度+頁內(nèi)地址\n");</p><p>  pr

51、intf("物理地址=%d+%d*%d+%d\n",sp.pf[sn],sp.pt[pn],sp.pl,pd);//輸出物理地址=頁表首地址+快號(hào)*頁面長(zhǎng)度+頁內(nèi)地址</p><p>  wd=sp.pf[sn]+sp.pt[pn]*sp.pl+pd;//計(jì)算物理地址的公式</p><p>  printf("物理地址為:%d\n\n",wd);//

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論