1.初始化功能:記憶體狀態設定為初始狀態。
2.分配功能:要求至少使用兩種演算法,使用者可以選擇使用。
3.**功能:
4.空閒塊的合併:即緊湊功能,用以消除碎片。當做碎片整理時,需要跟蹤分配的空間,修改其引用以保證引用的正確性。
5.顯示當前記憶體的使用狀態,可以使用**或圖形。
實現分配功能的4種演算法:
1.最先匹配法(first-fit):按分割槽的先後次序,從頭查詢,找到符合要求的第乙個分割槽。
該演算法的分配和釋放的時間效能較好,較大的空閒分割槽可以被保留在記憶體高階。但隨著低端分割槽不斷劃分而產生較多小分割槽,每次分配時查詢時間開銷會增大。
2.下次匹配法(next-fit):按分割槽的先後次序,從上次分配的分割槽開始查詢(到最後分割槽時再回到開頭),找到符合要求的第乙個分割槽。
該演算法的分配和釋放的時間效能較好,使空閒分割槽分布的更均勻,但較大的空閒分割槽不易保留。
3.最佳分配法(best-fit):找打大小與要求相差最小的空閒區。
從個別來看,外碎片較小,但從整體來看,會形成較多外碎片。較大的空閒分割槽可以保留。
4.最壞匹配法(worst-fit):找到最大的空閒分割槽。
基本不留下小空閒分割槽,但較大的空閒分割槽不被保留。
作業系統 動態分割槽分配演算法
空閒分割槽以位址遞增的次序排列,1 2 3。假設要分配為5大小的記憶體,首先從鏈頭開始查詢,第乙個滿足,分配,修改相應的記憶體,再分配乙個為9大小的記憶體,從鏈頭開始查詢,第二個滿足,分配。則 演算法思想 由於動態分割槽分配是一種連續分配方式,為各程序分配的空間必須是連續的一整片區域。因此為了保證當...
作業系統 動態分割槽分配模擬程式
unintented 2017.12.14 include include pragma warning disable 4996 防止scanf報錯 vs2013 struct procpro 存放各程序的請求 struct me 存放各分割槽 typedef me me me top 頭結點 v...
作業系統實驗之動態分割槽分配演算法
設計程式模擬四種動態分割槽分配演算法 首次適應演算法 迴圈首次適應演算法 最佳適應演算法和最壞適應演算法的工作過程。假設記憶體中空閒分割槽個數為n,空閒分割槽大小分別為p1,pn,在動態分割槽分配過程中需要分配的程序個數為m m n 它們需要的分割槽大小分別為s1,sm,分別利用四種動態分割槽分配演...