操作系统分区分配java算法_合肥工业大学操作系统课程设计 动态分区分配存储管理java版.doc...
合肥工業大學操作系統課程設計 動態分區分配存儲管理java版.doc
1課程設計動態分區分配存儲管理設計題目學號專業班級學生姓名號指導教師22010年12月合肥工業大學課程設計任務書設計題目動態分區分配存儲管理成績主要內容動態分區分配存儲管理建立描述內存分配狀況的數據結構;?建立描述進程的數據結構;?使用兩種方式產生進程(A)自動產生,(B)手工輸入;?在屏幕上顯示內存的分配狀況、每個進程的執行情況;?建立分區的分配與回收算法,支持緊湊算法;?時間的流逝可用下面幾種方法模擬(A)按鍵盤,每按一次可認為過一個時間單位;B響應WM_TIMER;?將一批進程的執行情況存入磁盤文件,以后可以讀出并重放;?支持算法首次適應算法、循環首次適應算法、最佳適應算法最壞適應算法。指導教師意見該生能按時完成課程設計任務書所規定的程序設計,綜合運用所學知識獨立分析和解決問題的能力。程序設計方案。論文論述,文理,格式。程序運行結果。程序驗收時回答問題。簽名4第一章課程設計概述11設計任務動態分區分配存儲管理12設計要求建立描述內存分配狀況的數據結構;?建立描述進程的數據結構;?使用兩種方式產生進程(A)自動產生,(B)手工輸入;?在屏幕上顯示內存的分配狀況、每個進程的執行情況;?建立分區的分配與回收算法,支持緊湊算法;?時間的流逝可用下面幾種方法模擬(A)按鍵盤,每按一次可認為過一個時間單位;B響應WM_TIMER;?將一批進程的執行情況存入磁盤文件,以后可以讀出并重放;?支持算法首次適應算法、循環首次適應算法、最佳適應算法最壞適應算法。13設計目的旨在讓我們更好的了解動態分區管理方面的知識第二章原理及算法描述21動態分區分配算法原理首次適應算法算法概述分配內存時,從鏈首開始順序查找,找到滿足的空閑分區則劃出空間分配,余下的空閑空間仍保留在空閑鏈表中實現方法分配時從數組第一個元素開始比較,若符合條件則將該元素減去對應作業的值循環首次適應算法算法概述由首次適應算法演變,只是每次分配改為由上一次找到的空閑分區開始查找實現方法在首次適應算法的基礎上增加一個值用于記錄找到的空閑分區的位置最佳適應算法算法概述每次為作業分配內存時,總是把能滿足要求、又是最小的空閑分區分配給作業實現方法我們決定每次分配先把空閑分區按從小到大的順序排列,然后將第一個匹配分區分配給作業5最壞適應算法算法概述每次為作業分配內存時,總是挑選一個最大的空閑分區分割給作業使用實現方法算法與最佳適應算法幾乎相同,僅在排序時把空閑分區表按從大到小的順序排列,所以未作詳細注釋回收分區當進程運行完畢釋放內存時,系統根據回收區的首址,從空閑區鏈表中找到相應的插入點,此時可能出現以下四種情況之一1回收區與插入點的前一個空閑分區F1相鄰接,此時應將回收區與插入點的前一分區合并,不必為回收區分配新表項,而只需修改其前一分區F1的大小2回收分區與插入點的后一空閑分區F2相鄰接,此時也可將兩分區合并,形成新的空閑分區,但用回收區的首址作為新空閑區的首址,大小為兩者之和3回收區同時與插入點的前,后兩個分區鄰接,此時將三個分區合并,使用F1的表項和F1的首址,取消F2的表項,大小為三者之和4回收區既不與F1相鄰接,又不與F2鄰接這時應為回收區單獨建立一新表項,填寫回收區的首址和大小,并根據其首址插入到空閑鏈中的適當位置緊湊算法通過移動內存中的作業的位置,以把原來多個分散的小分區拼接成一個大分區的方法第三章開發環境此程序是本人利用JAVA語言在一種JCREATOR的開發環境中實現的6第四章重要算法和設計思路描述41設計首次適應算法首先從內存分區的狀態中找到空閑分區,若無空閑分區則不進行后面的運算,直接彈出對話框“內存中無空閑分區“把作業所需空間的大小與按始址大小,與各個空閑分區進行比較,如果某分區大小合適,把該分區一分為二,前部為已經分配出去的分區,后者為剩余的分區,然后對內存情況進行更新,每次分區小于作業,將指示不符合次數的N加一,如果不符合次數為空閑分區數組長度,說明找遍空閑分區都無符合項,最后對作業數組進行更新,把已運行的作業去除42設計循環首次適應算法同樣根據內存分區的狀態中找到空閑分區數組,令X指向上次找到空閑分區的下一個空閑分區,比較方法與首次適應算法相比,僅在此改為用X指示空閑分區在數組中的位置,每次查找空閑分區,都是從X后面那個分區開始查詢,如果某分區大小合適,把該分區一分為二,前部為已經分配出去的分區,后者為剩余的分區,然后對內存情況進行更新,每次分區小于作業,將指示不符合次數的N加一,到了數組末尾后再次進行循環回到數組頭,一直尋找到上次所分配的位置,轉為從首位開始查找后只比較到上一次找到的匹配分區,以保證循環可結束如果不符合次數為空閑分區數組長度,說明找遍空閑分區都無符合項,最后對作業數組進行更新,把已運行的作業去除43設計最佳適應算法和最壞適應算法最佳適應算法的實質就是對內存分區數組進行排序后,利用首次適應算法最壞適應算法的實質也是對內存分區數組排序后,進行首次適應算法,只不過它與最佳適應算法排序的方向剛好相反44設計分區回收算法對內存分區狀態進行查找,若回收區與插入點的前一個空閑分區F1相鄰接,此時應將回收區與插入點的前一分區合并,不必為回收區分配新表項,而只需修改其前一分區F1的大小若回收分區與插入點的后一空閑分區F2相鄰接,此時也可將兩分區合并,形成新的空閑分區,但用回收區的首址作為新空閑區的首址,大小為兩者之和若回收區同時與插入點的前,后兩個分區鄰接,此時將三個分區合并,使用F1的表項和F1的首址,取消F2的表項,大小為三者之和若回收區既不與F1相鄰接,又不與F2鄰接這時應為回收區單獨建立一新表項,填寫回收區的首址和大小,并根據其首址插入到空閑鏈中的適當位置45設計緊湊算法同樣對內存分區狀態進行查找,若存在空閑分區,對分區數組,把已分配的數組的位置進行移動,使已分配的分區全部相鄰,這樣得到的最后剩下的一個大分區就是可以分配的分區啦7第五章程序實現數據結構CLASSMEMORY{PRIVATEINTM1//分區的序號PRIVATEINTM2//分區的大小PRIVATEINTM3//分區的起始地址PRIVATEINTM4//是否已分配的標志}這是定義的內存分區的結構CLASSPROCESS{PRIVATEINTXUHAO//作業序號PRIVATEINTKONGJIAN//作業運行所需的空間}這是定義的作業的結構8第六章程序實現程序清單IMPORTJAVAAWTEVENTIMPORTJAVAXSWINGIMPORTJAVAAWTIMPORTJAVAIOIMPORTJAVAUTILPUBLICCLASSALGORITHM{PRIVATEJFRAMEFRAMEPRIVATEJTEXTPANEMEMORYPRIVATEJTEXTPANEPROCESSPRIVATEMEMORYDATAMDPRIVATEPROCESSDATAPDPRIVATEINTFITINDEX1PRIVATEINTSELECTPRIVATEJTEXTFIELDFIELDPRIVATEJFRAMEFRAMEPUBLICVOIDGO{FRAMENEWJFRAME“動態分區“JPANELMAINPANELNEWJPANELJPANELPRINTP
總結
以上是生活随笔為你收集整理的操作系统分区分配java算法_合肥工业大学操作系统课程设计 动态分区分配存储管理java版.doc...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摄像头夜间拍摄画面有拖影_让客厅秒变健身
- 下一篇: android mp4语音识别,怎样用语