中南大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁(yè)
中南大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁(yè)
中南大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁(yè)
中南大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、中南大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告 操作系統(tǒng)實(shí)驗(yàn)報(bào)告 學(xué)生姓名 王朝暉 學(xué) 號(hào) 0906160216 專業(yè)班級(jí) 信息安全 1602 指導(dǎo)教師 宋虹 學(xué) 院 信息科學(xué)與工程學(xué)院 完成時(shí)間 2021 年 5 月 27 日 目錄(格式二) 目錄 一 操作系統(tǒng)模擬實(shí)驗(yàn)概述 . 1 (一)實(shí)驗(yàn)?zāi)康?. 1 (二)實(shí)驗(yàn)內(nèi)容及要求 . 1 1.實(shí)驗(yàn)要求 . 1 (三)實(shí)驗(yàn)過(guò)程及分析 . 2 初步設(shè)計(jì) . 2 詳細(xì)設(shè)計(jì) . 2 結(jié)束語(yǔ) . 6 (附件)程序代碼 . 7 windows 安全實(shí)驗(yàn) . 41 使用 microsoft 基準(zhǔn)安全分析器 mbsa 2.3 對(duì)系統(tǒng)進(jìn)行安全評(píng)估 . 41 設(shè)置 windows 的安

2、全模式,配置本地安全策略,包括以下內(nèi)容 . 41 linux 安全實(shí)驗(yàn) . 48 擴(kuò)展安全實(shí)驗(yàn) . 66 1. 修改 ssh 默認(rèn)連接 22 端口 和 添加防火墻 firewalld 通過(guò)端口 . 66 2. 禁止 root 帳號(hào)直接登錄 . 67 3. 安裝 denyhosts 【攔截獲取攻擊的 ip ,生成黑.,防止再次攻擊】 . 70 第 1 頁(yè) 共 40 頁(yè) 一 一 操作系統(tǒng)模擬 實(shí)驗(yàn)概述 (一)實(shí)驗(yàn)?zāi)康?本項(xiàng)目完成一個(gè)小型的操作系統(tǒng)進(jìn)程調(diào)度、內(nèi)存動(dòng)態(tài)分配的仿真程序。 一,多道系統(tǒng)中,當(dāng)就緒進(jìn)程數(shù)大于處理機(jī)數(shù)時(shí),須按照某種策略決定哪些進(jìn)程優(yōu)先占用處理機(jī)。本實(shí)驗(yàn)?zāi)M實(shí)現(xiàn)處理機(jī)調(diào)度,以加深

3、了解處理機(jī)調(diào)度的工作; 二,幫助了解在不同的存儲(chǔ)管理方式下,應(yīng)怎樣實(shí)現(xiàn)主存空間的分配和回收; (二)實(shí)驗(yàn)內(nèi)容及要求 1. 實(shí)驗(yàn)要求 一,(a),pcb 內(nèi)容: 進(jìn)程名/pid; 要求運(yùn)行時(shí)間(單位時(shí)間); 優(yōu)先權(quán); 狀態(tài); pcb 指針; 1,可隨機(jī)輸入若干進(jìn)程,并按優(yōu)先權(quán)排序; 2,從就緒隊(duì)列首選進(jìn)程運(yùn)行:優(yōu)先權(quán)-1/ 要求運(yùn)行時(shí)間-1;要求運(yùn)行時(shí)間=0時(shí),撤銷該進(jìn)程; 3,重新排序,進(jìn)行下一輪調(diào)度; (b),最好采用圖形界面; (c),可隨時(shí)增加進(jìn)程; (d),規(guī)定道數(shù),設(shè)置后備隊(duì)列和掛起狀態(tài)。若內(nèi)存中進(jìn)程數(shù)少于規(guī)定道數(shù),可自動(dòng)從后備隊(duì)列調(diào)度一作業(yè)進(jìn)入。被掛起進(jìn)程如=入掛起隊(duì)列,設(shè)置解掛功

4、能用于將指定掛起進(jìn)程解掛入就緒隊(duì)列; (e),每次調(diào)度后,顯示各進(jìn)程狀態(tài); 二,(a),自行假設(shè)主存空間大小,預(yù)設(shè)操作系統(tǒng)所占大小并構(gòu)造未分分區(qū)表; 表目?jī)?nèi)容:起址、長(zhǎng)度、狀態(tài)(未分/空表目) (b),結(jié)合實(shí)驗(yàn)一,pcb 增加為:pid,要求運(yùn)行時(shí)間,優(yōu)先權(quán),狀態(tài),所需內(nèi)存大小,主存起始位置,pcb 指針; (c)采用最先適應(yīng)算法分配主存空間; (d),進(jìn)程完成后,回收主存,并與相鄰空閑分區(qū)合并; 第 2 頁(yè) 共 40 頁(yè) (三)實(shí)驗(yàn)過(guò)程及分析 初步設(shè)計(jì) 詳細(xì) 設(shè)計(jì) (a), 操作系統(tǒng)知識(shí)回顧: (1)作業(yè)進(jìn)入內(nèi)存中,由 cpu 分配產(chǎn)生 pcb 屬性,并通過(guò) pcb 記錄進(jìn)程狀態(tài),實(shí)驗(yàn)即以

5、pcb 代表進(jìn)程模擬調(diào)度過(guò)程; (2)在多道系統(tǒng)中,多道系統(tǒng)中,當(dāng)就緒進(jìn)程數(shù)大于處理機(jī)數(shù)時(shí),須按照某種策略決定哪些進(jìn)程優(yōu)先占用處理機(jī),本實(shí)驗(yàn)采用優(yōu)先級(jí); (3),進(jìn)程調(diào)度時(shí),規(guī)定若就緒隊(duì)列進(jìn)程數(shù)少于 6 個(gè),則自動(dòng)從后備隊(duì)列調(diào)入一個(gè)作業(yè); (4),系統(tǒng)會(huì)將占有較多資源、預(yù)期結(jié)果不符合要求的進(jìn)程自動(dòng)掛起,并回收所占資源,而本實(shí)驗(yàn)設(shè)置為手動(dòng)掛起; (5),在適宜條件下,系統(tǒng)會(huì)將掛起的進(jìn)程自動(dòng)解掛,而且只解掛到就緒隊(duì)列;本實(shí)驗(yàn)為簡(jiǎn)化操作,設(shè)置為手動(dòng)解掛,若解掛條件合適(即 cpu 各種資源可用),則解掛到就緒隊(duì)列,并分配內(nèi)存;若解掛條件不適宜,則解掛至后備隊(duì)列,但不分配內(nèi)存; (b),實(shí)驗(yàn)程序設(shè)計(jì):

6、 第 3 頁(yè) 共 40 頁(yè) (1),本實(shí)驗(yàn)采用 java 語(yǔ)言編程,并實(shí)現(xiàn) gui 界面顯示; (2),為體現(xiàn) java 語(yǔ)言面對(duì)對(duì)象程序設(shè)計(jì)的特點(diǎn),實(shí)驗(yàn)設(shè)計(jì)為 processpcb、memoryitem 類封裝 pcb 和所分配的內(nèi)存各自的屬性與方法;用 processrecords、memoryrecords 類封裝數(shù)組方法;用 singlecpuscheduling 實(shí)現(xiàn) gui 界面顯示; (3),processpcb 類中,定義 pcb 的進(jìn)程名、要求運(yùn)行時(shí)間、優(yōu)先級(jí)、狀態(tài)、主存起始位置、所需內(nèi)存大小這6個(gè)屬性,并定義各屬性的get和set方法,定義equals方法用于對(duì)比類的屬性,

7、定義 tostring 方法得到類屬性的字符串,定義 run 方法封裝優(yōu)先權(quán)-1/ 要求運(yùn)行時(shí)間-1 的過(guò)程;memoryitem 類中,定義可分分區(qū)表每一可分記錄的主存起始位置、內(nèi)存大小及其 get 和 set 方法,定義 tostring 方法得到可在界面顯示的字符串; (4),processrecords 封裝 pcb 數(shù)組的添加元素 additem 和刪除元素 removeitem方法,并構(gòu)造函數(shù) getitem 通過(guò)參數(shù) processpcb 和 string 查找數(shù)組元素,定義getnumberofitems取數(shù)組大小,定義getitemspriorities方法取所有數(shù)組元素的t

8、ostring方法用于界面顯示,定義 iterator 方法取得數(shù)組的迭代器; (5),memoryrecords 用同樣的設(shè)計(jì)思想封裝以 memoryitem 為數(shù)組元素的各屬性和方法; (6)singlecpuscheduling 類繼承 jframe 類,實(shí)現(xiàn)界面化顯示;與上面相對(duì)應(yīng),實(shí)例化 processrecords(3 次)和 memoryrecords(1 次)作為私有變量,分別作為后備隊(duì)列、就緒隊(duì)列、掛起隊(duì)列和內(nèi)存可分分區(qū)表;在界面設(shè)計(jì)中,設(shè)計(jì)后備隊(duì)列、掛起隊(duì)列(附帶解掛 umount 按鈕)、就緒隊(duì)列(附帶掛起 suspend 按鈕)可分分區(qū)表列表顯示框,設(shè)置 pcb 添加框

9、,附帶添加至后備隊(duì)列(addtobackup)、添加至就緒隊(duì)列(addtoready)按鈕,以及 cpu 當(dāng)前執(zhí)行狀態(tài)顯示框、系統(tǒng)日志顯示框,和開始調(diào)度(systemstart)按鈕,優(yōu)先級(jí)和時(shí)間片單選按鈕,以及時(shí)間片顯示標(biāo)簽和文本編輯框; (7)界面設(shè)計(jì)詳解;后備隊(duì)列顯示框用于顯示已添加至后備隊(duì)列的processrecords 屬性信息,其中主存起始位置默認(rèn)為-1,表示未分配;掛起隊(duì)列顯示框用于顯示從就緒隊(duì)列掛起的 pcb,其中屬性"主存起始位置'(memorybase)將由非負(fù)數(shù)變?yōu)?1,表示掛起后收回內(nèi)存;就緒隊(duì)列顯示框中顯示就緒隊(duì)列屬性,其中"主存起始位置&

10、#39;均為非負(fù),表示一分配內(nèi)存;pcb 信息添加框分列 pcb6 個(gè)屬性顯示標(biāo)簽和可編輯文本框,和添加按鈕,用于添加 pcb;系統(tǒng)日志顯示框附屬時(shí)間片顯示標(biāo)簽和可編輯文本編輯框,可由用戶決定時(shí)間片大??; 第 4 頁(yè) 共 40 頁(yè) 對(duì)于實(shí)驗(yàn)一,頁(yè)面邏輯如下 開始添加進(jìn)程到后備運(yùn)行內(nèi)存滿足調(diào)入就緒進(jìn)程指向下一個(gè)后備進(jìn)程否在就緒隊(duì)列中找出優(yōu)先級(jí)最高的調(diào)入運(yùn)行隊(duì)列運(yùn)行時(shí)間為0 否插入就緒隊(duì)列插入完成隊(duì)列是選中進(jìn)程調(diào)入掛起隊(duì)列運(yùn)行時(shí)間減一優(yōu)先級(jí)減一所有進(jìn)程都運(yùn)行結(jié)束結(jié)束是回收內(nèi)存內(nèi)存滿足選中準(zhǔn)備調(diào)入就緒隊(duì)列的進(jìn)程 圖 2-2 整體工作流程圖 第 5 頁(yè) 共 40 頁(yè) 圖 3 工作界面 第 6 頁(yè) 共

11、40 頁(yè) 結(jié)束語(yǔ) 1,程序完成了實(shí)驗(yàn)所有的基本要求; 2, 本程序還存在一些技術(shù)上的問題,使得程序不能盡善盡美;如,pcb 信息添加框沒有"隨機(jī)置入就緒隊(duì)列'功能,添加 pcb 信息仍顯得繁瑣;就緒隊(duì)列的掛起功能在程序自動(dòng)運(yùn)行時(shí),存在反應(yīng)異常(反應(yīng)延遲或直接無(wú)反映);可分分區(qū)表只顯示了當(dāng)前可分的內(nèi)存,沒有顯示已分的 pcb 及其對(duì)應(yīng)內(nèi)存使用情況,且沒有利用圖形和豐富的顏色來(lái)更好的展示;時(shí)間片設(shè)計(jì)還需要改進(jìn),使用效率不高;系統(tǒng)重置功能存在響應(yīng)延遲的問題;另外,界面不夠美觀;還需要不斷改進(jìn); 實(shí)驗(yàn)感想 通過(guò)這次實(shí)驗(yàn),我對(duì)操作系統(tǒng)的進(jìn)程調(diào)度和內(nèi)存分配管理有了更加深入的了解,對(duì)操作系

12、統(tǒng)內(nèi)部的工作原理有了進(jìn)一步的認(rèn)識(shí); 通過(guò)編程,也鞏固了我的程序設(shè)計(jì)和代碼編寫的能力,實(shí)驗(yàn)過(guò)程中遇到的各種問題以及解決問題的過(guò)程與方法,都是我獲益匪淺; 同時(shí),程序的不完善,也將促使我在課程之后,繼續(xù)學(xué)習(xí)、理解課程內(nèi)容,并盡一切努力不斷完善程序,做到盡善盡美; 第 7 頁(yè) 共 40 頁(yè) (附件) 程序代碼 memoryitem.java 1. public class memoryitem 2. private int memorybase=0; 3. private int memorylimit=0; 4. private int availablestatus=0; 5. 6. publi

13、c memoryitem(int initmemorybase, int initmemorylimit) 7. this.memorybase = initmemorybase; 8. this.memorylimit = initmemorylimit; 9. 10. 11. public int getmemorybase() 12. return this.memorybase; 13. 14. 15. public int getmemorylimit() 16. return this.memorylimit; 17. 18. 19. public int getstatus()

14、20. return this.availablestatus; 21. 22. 23. public string tostring() 24. return this.getmemorybase() + quot;_quot; + this.getmemorylimit() + quot;nquot; 25. 26. 27. processpcb.java 1. public class processpcb 2. / backupbak 后備 ready 就緒 suspend 掛起 memory 內(nèi)存 3. private string pid; 4. private int requi

15、redtime; 5. private int priority; 6. private string status; 7. private int mwmorybase = 0000; 8. private int memorylimit; 9. / private string pcbpointer; 10. 第 8 頁(yè) 共 40 頁(yè) 11. public processpcb(string initpid, int initrtime, int initpriority, 12. string status, int initbase, int initlimit) 13. 14. th

16、is.pid = initpid; 15. this.requiredtime = initrtime; 16. this.priority = initpriority; 17. this.status = status; 18. this.mwmorybase = initbase; 19. this.memorylimit = initlimit; 20. 21. 22. public string getpid() 23. if(this.pid = null) 24. return quot; quot; 25. else 26. return this.pid; 27. 28. 2

17、9. public int getrequiredtime() 30. return this.requiredtime; 31. 32. 33. public int getpriority() 34. return this.priority; 35. 36. 37. public string getstatus() 38. if(this.status = null) 39. return quot; quot; 40. else 41. return this.status; 42. 43. 44. public int getmemorybase() 45. return this

18、.mwmorybase; 46. 47. 48. public int getmemorylimit() 49. return this.memorylimit; 50. 51. 52. public boolean equals(processpcb pcb) 53. 54. if(pcb.getpid() = this.getpid() 第 9 頁(yè) 共 40 頁(yè) 55. return true; 56. 57. else return false; 58. 59. 60. public string tostring() 61. return this.getpid() + quot;_q

19、uot; + this.getrequiredtime() + quot;_quot; + this.getpriority() + quot;_quot; 62. + this.getstatus() + quot;_quot; + this.getmemorybase() + quot;_quot; + this.getmemorylimit() + quot;nquot; 63. 64. 65. public void run() 66. this.requiredtime = this.requiredtime-1; 67. this.priority = this.priority-

20、1; 68. 69. 70. pcbrecords.java 1. import java.util.arraylist; 2. import java.util.iterator; 3. 4. public class pcbrecords implements iterablelt;processpcbgt; 5. 6. private arraylistlt;processpcbgt; pcbitems; 7. 8. public arraylistlt;processpcbgt; getpcbitems() 9. return this.pcbitems; 10. 11. 12. pu

21、blic pcbrecords() 13. this.pcbitems = new arraylistlt;processpcbgt;(); 14. 15. 16. public void additem(processpcb pcbitem) 17. this.pcbitems.add(pcbitem); 18. 19. 20. public void removeitem(processpcb pcbitem) 21. this.pcbitems.remove(pcbitem); 22. 23. 24. public processpcb getitem(processpcb proces

22、spcb) 第 10 頁(yè) 共 40 頁(yè) 25. for (processpcb pcbitem : this.pcbitems) 26. if (pcbitem.equals(processpcb) 27. return pcbitem; 28. 29. 30. return null; 31. 32. 33. public processpcb getitem(string pid) 34. for (processpcb pcbitem : this.pcbitems) 35. if (pcbitem.getpid().equals(pid) 36. return pcbitem; 37.

23、 38. 39. return null; 40. 41. 42. public int getnumberofitems() 43. return this.pcbitems.size(); 44. 45. 46. public string getitemsproperties() 47. string itemsproperties = new stringgetnumberofitems(); 48. 49. int i = 0; 50. for(iterator iterator1 = pcbitems.iterator(); iterator1.hasnext();) 51. 52

24、. processpcb stu_item = (processpcb)iterator1.next(); 53. itemspropertiesi+ = stu_item.tostring(); 54. 55. return itemsproperties; 56. 57. 58. public iteratorlt;processpcbgt; iterator() 59. return this.pcbitems.iterator(); 60. 61. 62. 63. memoryrecords.java 64. package src; 65. 66. import java.util.

25、arraylist; 67. import java.util.iterator; 68. 第 11 頁(yè) 共 40 頁(yè) 69. public class memoryrecords implements iterablelt;memoryitemgt; 70. private arraylistlt;memoryitemgt; memoryitems; 71. 72. public iteratorlt;memoryitemgt; iterator() 73. / todo auto-generated method stub 74. return this.memoryitems.itera

26、tor(); 75. 76. 77. public arraylistlt;memoryitemgt; getmemoryitems() 78. 79. return this.memoryitems; 80. 81. 82. public memoryrecords() 83. this.memoryitems = new arraylistlt;memoryitemgt;(); 84. 85. 86. public void additem(memoryitem newmemoryitem) 87. this.memoryitems.add(newmemoryitem); 88. 89.

27、public void removeitem(memoryitem momoryitem) 90. this.memoryitems.remove(momoryitem); 91. 92. 93. public memoryitem getmomoryitem(memoryitem item) 94. for(memoryitem mitem : this.memoryitems) 95. if(mitem.equals(item) 96. return mitem; 97. 98. 99. return null; 100. 101. public memoryitem getmemoryi

28、tem(int base) 102. for(memoryitem mitem : this.memoryitems) 103. if(mitem.getmemorybase() = base) 104. return mitem; 105. 106. 107. return null; 108. 109. 110. public int getnumberofitems() 111. return this.memoryitems.size(); 112. 第 12 頁(yè) 共 40 頁(yè) 113. 114. public string getitemsproperties() 115. stri

29、ng itemsproperties = new stringgetnumberofitems(); 116. int i=0; 117. for(iterator iterator1 = this.memoryitems.iterator(); iterator1.hasnext(); ) 118. memoryitem mmitem = (memoryitem) iterator1.next(); 119. itemspropertiesi+ = mmitem.tostring(); 120. 121. if(itemsproperties = null) 122. itemsproper

30、ties0 = quot; quot; 123. 124. return itemsproperties; 125. 126. singlecpuschedulinggui03.java 1. import java.util.*; 2. import java.awt.*; 3. import java.awt.event.*; 4. 5. import javax.swing.*; 6. import javax.swing.event.*; 7. 8. 9. import java.io.*; 10. import java.text.*; 11. 12. public class si

31、nglecpuschedulinggui03 extends jframe 13. /* standar error stream */ 14. static private printwriter stderr = new printwriter(system.err, true); 15. 16. static private int width = 800, height = 750; / the size of the frame 主面板 17. /* 各列表對(duì)應(yīng)的面板規(guī)格*/ 18. /* 對(duì)應(yīng)各名詞釋義 backupbak 后備 ready 就緒 suspend 掛起 memory

32、 內(nèi)存 */ 19. static private int backupbak_cell_size = 250, backupbak_list_rows = 10; / 后備隊(duì)列 20. static private int suspend_cell_size = 250, suspend_list_rows = 10; / 掛起隊(duì)列 21. static private int ready_cell_size = 200, ready_list_rows = 6; / 就緒隊(duì)列 22. static private int memory_cell_size = 200, memory_lis

33、t_rows = 10; / 內(nèi)存隊(duì)列 第 13 頁(yè) 共 40 頁(yè) 23. static private int cpu_rows = 12, cpu_cols = 22; /cpu 面 面板 24. static private int status_rows = 8, status_cols = 30; / 系統(tǒng)狀態(tài)面板 25. private int timeslice = 1; / 設(shè)置時(shí)間片大小 26. private int systemstatus=0; / 設(shè)置系統(tǒng)狀態(tài) 0 系統(tǒng)預(yù)備狀態(tài),等待開始,1 系統(tǒng)運(yùn)行狀態(tài),2 系統(tǒng)暫停狀態(tài) 27. static private int

34、 total_textfield_size = 10; / size total text field 記 記錄各隊(duì)列元素個(gè)數(shù) 28. 29. private jlist backuplist, suspendlist, readylist, memorylist; / 各隊(duì)列相對(duì)應(yīng)的數(shù)組列表 30. / 進(jìn)程添加框中的quot; 添加至后備隊(duì)列quot; ,quot; 添加至就緒隊(duì)列quot; ,quot; 重置quot;button 31. private jbutton addtobakbutton, addtoreadybutton, resetbutton; 32. / 就緒隊(duì)列框中

35、的quot; 掛起quot; ,掛起隊(duì)列框中的quot; 解掛quot; ,quot; 刪除quot;button 33. private jbutton suspendbutton, umountbutton, removebutton; 34. /status 面板中的quot; 啟動(dòng)系統(tǒng)quot; ,quot; 重置系統(tǒng)quot;button 35. private jbutton startbutton, pausebutton, resetsyatembutton; 36. / 優(yōu)先級(jí)和時(shí)間片單選鈕及時(shí)間片顯示框 37. private jradiobutton priorityjr

36、b, timeslicejrb; 38. private jlabel timeslicesizelabel; 39. private jtextfield timeslicejtf; 40. / 后備面板、進(jìn)程添加面板、掛起面板、內(nèi)存面板 41. private jpanel backupbakpanel, pcbitempanel, suspendedpanel, memorypanel; 42. / 后備隊(duì)列、掛起隊(duì)列元素總數(shù)標(biāo)簽 43. private jlabel backuptotallabel, suspendtotallabel; 44. / 進(jìn)程信息標(biāo)簽 進(jìn)程編號(hào) pid,

37、所需運(yùn)行時(shí)間 requiredtime, 優(yōu)先級(jí) priority, 當(dāng)前狀態(tài) statues,內(nèi)存中的基址 base, 所需內(nèi)存大小 limit 45. private jlabel pidlabel, requiredtimelabel, prioritylabel, statueslabel, baselabel, limitlabel; 46. / 后備隊(duì)列、掛起隊(duì)列元素總數(shù)文本框(不可編輯) 47. private jtextfield backuptotaltextfield, suspendtotaltextfield; 48. / 進(jìn)程信息文本框 pid( 可編輯),requi

38、redtime( 可編輯),priority( 可編輯),status( 不可編輯),base( 不可編輯),limit( 可編輯) 49. private jtextfield pidtextfield, requiredtimetextfield, prioritytextfield, statustextfield, basetextfield, limittextfield; 50. /cpu 狀態(tài)顯示文本域( 不可編輯) ,status 信息文本域( 用于現(xiàn)實(shí)程序每一步的操作和影響,不可編輯) 51. private jtextarea cputextarea, statuestex

39、tarea; 52. / 后備隊(duì)列 pcb 數(shù)組, 就緒、掛起, 內(nèi)存(可分分區(qū)表) 53. pcbrecords backuppcb, readypcb, suspendedpcb; 54. private memoryrecords memoryitems; 55. 56. private boolean flag = false; 第 14 頁(yè) 共 40 頁(yè) 57. /main 函數(shù) 58. public static void main(string args) throws ioexception 59. new singlecpuschedulinggui03().initfram

40、e(); 60. 61. / 初始化 frame 62. public void initframe() 63. 64. backuplist = new jlist(); 65. backuplist.setselectionmode(listselectionmodel.single_selection); 66. backuplist.setvisiblerowcount(backupbak_list_rows); 67. backuplist.setfixedcellwidth(backupbak_cell_size); 68. suspendlist = new jlist(); 6

41、9. suspendlist.setselectionmode(listselectionmodel.single_selection); 70. suspendlist.setvisiblerowcount(suspend_list_rows); 71. suspendlist.setfixedcellwidth(suspend_cell_size); 72. readylist = new jlist(); 73. readylist.setselectionmode(listselectionmodel.single_selection); 74. readylist.setvisibl

42、erowcount(ready_list_rows); 75. readylist.setfixedcellwidth(ready_cell_size); 76. memorylist = new jlist(); 77. memorylist.setselectionmode(listselectionmodel.single_selection); 78. memorylist.setvisiblerowcount(memory_list_rows); 79. memorylist.setfixedcellwidth(memory_cell_size); 80. 81. suspendbutton = new jbutton(quot;suspendquot;); 82. addtobakbutton = new jbu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論