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

下載本文檔

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

文檔簡介

1、<p><b>  《操作系統(tǒng)原理》</b></p><p><b>  課程設(shè)計報告</b></p><p>  Linux操作系統(tǒng)課程設(shè)計</p><p><b>  一、設(shè)計題目</b></p><p><b>  頁面置換算法模擬</b>

2、</p><p><b>  二、設(shè)計目的</b></p><p>  通過請求頁式存儲管理中頁面置換算法模擬設(shè)計,實現(xiàn)OPT,LRU,FIFO三種算法的對比分析了解虛擬存儲技術(shù)的特點,掌握請求頁式存儲管理的頁面置換算法。</p><p><b>  三、設(shè)計要求</b></p><p>  1.實

3、現(xiàn)OPT,LRU,FIFO三種算法并進行對比分析;</p><p>  2.界面簡單易懂,且關(guān)鍵代碼有注釋說明;</p><p>  3.編程語言采用java,運用eclipse開發(fā)軟件。</p><p><b>  四、設(shè)計思想說明</b></p><p><b>  五、系統(tǒng)結(jié)構(gòu)的說明</b>&

4、lt;/p><p> ?。?)界面類main,調(diào)用執(zhí)行算法的類pageChange,是程序運行的入口;</p><p> ?。?)執(zhí)行算法類pageChange,包含了三種算法的具體執(zhí)行過程,用不同功能的按鈕實現(xiàn)算法,算法結(jié)果通過調(diào)用顯示結(jié)果的類display展示出來;</p><p> ?。?)顯示算法結(jié)果類display,將算法運行的結(jié)果顯示在組件上,包括缺頁數(shù)、缺

5、頁率、置換次數(shù)、置換率等。</p><p> ?。?)生成隨機的頁面號引用串?dāng)?shù)組類randomNumber。</p><p><b>  六、數(shù)據(jù)結(jié)構(gòu)的說明</b></p><p>  ①m: 物理塊數(shù)(int)</p><p> ?、趎 :置換頁面數(shù)(int)</p><p> ?、踠ength

6、:頁表長度(int)</p><p> ?、躮yt[] :置換頁面數(shù)組。程序首選根據(jù)用戶輸入的置換頁面數(shù)n,生成n個隨機數(shù)放到該數(shù)組中;</p><p>  ⑤mym[] :物理塊數(shù)組。程序首選根據(jù)用戶輸入的物理塊數(shù)m,初始化一個m大小的數(shù)組。程序運行時,若物理塊數(shù)還沒用完就直接往數(shù)組存數(shù),若物理塊已用完就根據(jù)特定算法把特定頁面置換出來,再把新進來的頁面存進數(shù)組;</p>&

7、lt;p>  ⑥myb[] :計數(shù)器數(shù)組。運用于LRU算法中,數(shù)組大小和mym[]相等,對應(yīng)mym[]下標(biāo)存放每個物理塊最近未使用的次數(shù)。當(dāng)要置換一個新的頁面進入mym[]中,根據(jù)myb[]的數(shù)值,將mym[]最近最久未使用的頁面置換出來,再把新頁面的位置存放到被置換頁面的位置;</p><p>  ⑦myb[]: 記錄器數(shù)組。運用于OPT算法中,數(shù)組大小和mym[]相等,記錄mym[]中數(shù)據(jù)在myt[]后

8、續(xù)頁面出現(xiàn)的下標(biāo)值,若沒有在后續(xù)頁面出現(xiàn),就把該下標(biāo)值設(shè)為myt[]數(shù)組長度。當(dāng)要置換一個新的頁面進入mym[]中,根據(jù)myb[]的數(shù)值,將mym[]中在最長(未來)時間內(nèi)不再被訪問的頁面置換出來,再把新頁面的位置存放到被置換頁面的位置。</p><p> ?、鄊_absent: 缺頁數(shù)(int)</p><p> ?、醡_absentf: 缺頁率(double)m_absent/n<

9、;/p><p> ?、鈓_changef: 頁面置換率 (as - m) / n;</p><p>  ?m_change :置換次數(shù),頁面從數(shù)組中置換出來的次數(shù)</p><p> ?。╥nt)m_change=as - m</p><p>  as 置換頁面數(shù),as和m_absent數(shù)值相等,as-m等于m_change;</p>

10、<p>  ?x: 是否需要置換(boolean) true為需要置換 false為不需要置換;</p><p>  ?m1 :計算物理塊剩余的中間變量 (int)</p><p>  ?m_list: 要顯示到窗口上的內(nèi)容。迭代myt[]數(shù)組,將mym[]中排序信息保存到m_list,后面的顯示。</p><p><b>  七、程序清單&l

11、t;/b></p><p> ?。?)界面類main.java</p><p>  package page2;</p><p>  import java.awt.BorderLayout;</p><p>  import java.awt.event.MouseAdapter;</p><p>  impo

12、rt java.awt.event.MouseEvent;</p><p>  import javax.swing.*;</p><p>  public class main {</p><p>  public static void main(String[] args) {</p><p><b>  try{</b

13、></p><p>  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());//設(shè)置界面風(fēng)格</p><p>  }catch(Exception e){</p><p>  e.printStackTrace();</p><p><b&g

14、t;  }</b></p><p>  JFrame myframe = new JFrame();</p><p>  myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設(shè)置關(guān)閉方式</p><p>  pageChange pc = new pageChange();//實例化算法對象p

15、ageChange</p><p>  JTabbedPane tab = new JTabbedPane();//存放pageChange對象的面板</p><p>  JMenuBar mb = new JMenuBar();//菜單條</p><p>  JMenu mi = new JMenu("關(guān)于我們");</p>&l

16、t;p>  mi.addMouseListener(new MouseAdapter() {//當(dāng)點擊了菜單條中關(guān)于我們的按鈕以后觸發(fā)的事件</p><p>  public void mousePressed(MouseEvent e) {</p><p>  JOptionPane.showMessageDialog(null,"Copy Right By "

17、,"information",</p><p>  JOptionPane.DEFAULT_OPTION);</p><p><b>  }</b></p><p><b>  });</b></p><p>  mb.add(mi);//菜單條添加菜單</p>&

18、lt;p>  tab.add("頁面置換算法", pc);//存放pageChange對象的面板的名字</p><p>  myframe.setLayout(new BorderLayout());//采用邊框布局</p><p>  myframe.add(BorderLayout.NORTH, mb);//窗體北部添加菜單條</p><p

19、>  myframe.add(BorderLayout.CENTER, tab);//窗體中間添加存放pageChange對象的面板</p><p>  myframe.setTitle("頁面置換算法的比較");//窗體的標(biāo)題</p><p>  myframe.setSize(950, 700);//設(shè)定大小</p><p>  myf

20、rame.setVisible(true);//設(shè)置窗體可見</p><p><b>  }</b></p><p><b>  }</b></p><p> ?。?)顯示算法結(jié)果的面板display.java</p><p>  package page2;</p><p>

21、;  import java.awt.*;</p><p>  import javax.swing.*;</p><p>  public class displayView extends JPanel {JTextField text1, text2, text3, text4;//放缺頁數(shù)、缺頁率、置換次數(shù)、置換率的文本域</p><p>  JPanel

22、pan;//缺頁數(shù)、缺頁率、置換次數(shù)、置換率放在p1--p4四個小面板中,再放在pan大面板中</p><p>  JTextArea textarea;//顯示三個算法結(jié)果的文本域</p><p>  public displayView() {</p><p>  text1 = new JTextField(30);//缺頁數(shù)、缺頁率、置換次數(shù)、置換率的文本域

23、的長度都為30,且不可編輯</p><p>  text2 = new JTextField(30);</p><p>  text3 = new JTextField(30);</p><p>  text4 = new JTextField(30);</p><p>  text1.setEditable(false);</p>

24、;<p>  text2.setEditable(false);</p><p>  text3.setEditable(false);</p><p>  text4.setEditable(false);</p><p>  pan = new JPanel();</p><p>  pan.setLayout(new Gr

25、idLayout(4, 1));</p><p>  FlowLayout f=new FlowLayout();//流布局f的對齊方式為居中</p><p>  f.setAlignment(FlowLayout.CENTER);</p><p>  //放缺頁數(shù)、缺頁率、置換次數(shù)、置換率的面板p1--p4都采用了流布局f</p><p>

26、  JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();JPanel p4=new JPanel();</p><p>  p1.setLayout(f);p2.setLayout(f);p3.setLayout(f);p4.setLayout(f);</p><p>  p1.add(new JLabe

27、l(" 缺頁數(shù) "));//各個小面板存放的組件都是label和text</p><p>  p1.add(text1);</p><p>  p2.add(new JLabel(" 缺頁率 "));</p><p>  p2.add(text2);</p><p>  p3.add(new J

28、Label(" 置換次數(shù) "));</p><p>  p3.add(text3);</p><p>  p4.add(new JLabel(" 置換率 "));</p><p>  p4.add(text4);</p><p>  pan.add(p1);pan.add(p2);pan.add(p

29、3);pan.add(p4);//將四個小面板添加到大面板中</p><p>  textarea = new JTextArea();</p><p>  textarea.setEditable(false);</p><p>  JScrollPane jp=new JScrollPane(textarea);//將顯示三個算法結(jié)果的文本域放在滾動面板中<

30、;/p><p>  this.setLayout(new BorderLayout());</p><p>  this.add(BorderLayout.CENTER, jp);//滾動面板放在布局中間</p><p>  this.add(BorderLayout.SOUTH, pan);//顯示缺頁數(shù)、缺頁率、置換次數(shù)、置換率的大面板放在底部</p>

31、<p><b>  }</b></p><p><b>  }</b></p><p>  (3)執(zhí)行算法的面板pageChange.java</p><p> ?。P(guān)于具體的算法代碼在這里沒有粘貼進來,主要是界面相關(guān)的代碼而已)</p><p><b>  /**</b

32、></p><p>  * p1--p4分別是物理塊數(shù)、置換頁面數(shù)、頁表長度、頁面號引用串小面板</p><p>  * pan1是放p1--p4的大面板</p><p>  * pan2是顯示算法結(jié)果的面板</p><p>  * pan4是功能按鈕面板,比如清除、生成隨機頁面號引用串</p><p><

33、b>  */</b></p><p>  JPanel pan1, pan2, pan3, pan4,p1,p2,p3,p4;</p><p>  JButton button1, button2, button3, clearButton, randomButton;</p><p>  //FIFO、LRU、Optimal算法按鈕;清除、生成隨

34、機頁面號引用串按鈕</p><p>  JTextField text1, text2, text3, text4;//物理塊數(shù)、置換頁面數(shù)、頁表長度、頁面號引用串文本域</p><p>  String m_random = "";// 頁面序列</p><p>  int m, n, length;</p><p> 

35、 int myt[];</p><p>  randomNumber RN;//隨機數(shù)對象</p><p>  displayView FIFOTA, LRUTA, OptTA;//算法對象</p><p>  public void misInPut() {</p><p><b>  try {</b></p&

36、gt;<p>  String str1, str2;</p><p>  str1 = "";str2 = "";</p><p>  m = Integer.parseInt(text1.getText());//物理塊數(shù)</p><p>  n = Integer.parseInt(text2.getTex

37、t());//置換頁面數(shù)</p><p>  length = Integer.parseInt(text3.getText());//頁表長度</p><p>  if (m == 0 || n == 0 || length == 0) {</p><p>  JOptionPane.showMessageDialog(this, "請輸入數(shù)字字符&qu

38、ot;, "提示!",</p><p>  JOptionPane.ERROR_MESSAGE);</p><p><b>  }</b></p><p>  if (m > n && length != 0) {</p><p>  JOptionPane.showMessag

39、eDialog(this, "輸入的物理塊數(shù)大于頁面數(shù)或頁表長度為0",</p><p>  "警告!", JOptionPane.WARNING_MESSAGE);</p><p>  text1.setText("0");</p><p>  text2.setText("0");&

40、lt;/p><p>  text3.setText("0");</p><p>  text4.setText("");</p><p><b>  } else {</b></p><p>  myt = new int[n];</p><p>  RN =

41、new randomNumber();</p><p>  myt = RN.rand(n, length);//(置換頁面數(shù),頁表長度)</p><p>  for (int i = 0; i < n; i++) {</p><p>  str2 = String.valueOf(myt[i]);</p><p>  str1 = s

42、tr1 + " " + str2;</p><p><b>  }</b></p><p>  m_random = str1;</p><p>  // 產(chǎn)生隨即頁面序列</p><p>  text4.setText("" + m_random);</p><

43、;p><b>  }</b></p><p>  } catch (NumberFormatException ee) {</p><p>  JOptionPane.showMessageDialog(this, "輸入數(shù)字字符!", "警告!",</p><p>  JOptionPane.WA

44、RNING_MESSAGE);</p><p>  text1.setText("0");</p><p>  text2.setText("0");</p><p>  text3.setText("0");</p><p>  text4.setText(""

45、);</p><p>  FIFOTA.text1.setText("0");</p><p>  FIFOTA.text2.setText("0");</p><p>  FIFOTA.text3.setText("0");</p><p>  FIFOTA.text4.setTe

46、xt("0");</p><p>  FIFOTA.textarea.setText(null);</p><p>  LRUTA.text1.setText("0");</p><p>  LRUTA.text2.setText("0");</p><p>  LRUTA.text

47、3.setText("0");</p><p>  LRUTA.text4.setText("");</p><p>  LRUTA.textarea.setText(null);</p><p>  OptTA.text1.setText("0");</p><p>  OptTA

48、.text2.setText("0");</p><p>  OptTA.text3.setText("0");</p><p>  OptTA.text4.setText("");</p><p>  OptTA.textarea.setText(null);</p><p>&l

49、t;b>  }</b></p><p><b>  }</b></p><p><b>  八、使用說明書</b></p><p> ?。?)運行以后,在下面的三個可編輯文本框中填寫數(shù)字,其中,物理塊數(shù)要小于置換頁面數(shù)。</p><p> ?。?)然后點擊窗體下方的按鈕列的第一個R

溫馨提示

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

評論

0/150

提交評論