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