常見記憶體配置演算法及優缺點

來源:互聯網
上載者:User

常見記憶體配置演算法及優缺點

 常見記憶體配置演算法及優缺點如下:
  (1)首次適應演算法。使用該演算法進行記憶體配置時,從空閑分區鏈首開始尋找,直至找到一個能滿足其大小要求的空閑分區為止。然後再按照作業的大小,從該分區中划出一塊記憶體配置給要求者,餘下的空閑分區仍留在空閑分區鏈中。
 
 該演算法傾向於使用記憶體中低地址部分的空閑分區,在高地址部分的空閑分區很少被利用,從而保留了高地址部分的大空閑區。顯然為以後到達的大作業分配大的內
存空間創造了條件。缺點在於低址部分不斷被劃分,留下許多難以利用、很小的空閑區,而每次尋找又都從低址部分開始,這無疑會增加尋找的開銷。
  
(2)迴圈首次適應演算法。該演算法是由首次適應演算法演變而成的。在為進程分配記憶體空間時,不再每次從鏈首開始尋找,而是從上次找到的空閑分區開始尋找,直至
找到一個能滿足要求的空閑分區,並從中划出一塊來分給作業。該演算法能使空閑中的記憶體分區分布得更加均勻,但將會缺乏大的空閑分區。
  (3)最佳適應演算法。該演算法總是把既能滿足要求,又是最小的空閑分區分配給作業。
 
 為了加速尋找,該演算法要求將所有的空閑區按其大小排序後,以遞增順序形成一個空白鏈。這樣每次找到的第一個滿足要求的空閑區,必然是最優的。孤立地看,
該演算法似乎是最優的,但事實上並不一定。因為每次分配後剩餘的空間一定是最小的,在儲存空間中將留下許多難以利用的小空閑區。同時每次分配後必須重新排序,
這也帶來了一定的開銷。
  (4)最差適應演算法。最差適應演算法中,該演算法按大小遞減的順序形成空閑區鏈,分配時直接從空閑區鏈的第一個空閑分區中
分配(不能滿足需要則不分配)。很顯然,如果第一個空閑分區不能滿足,那麼再沒有空閑分區能滿足需要。這種分配方法初看起來不太合理,但它也有很強的直觀
吸引力:在大空閑區中放入程式後,剩下的空閑區常常也很大,於是還能裝下一個較大的新程式。
  最壞適應演算法與最佳適應演算法的排序正好相反,它的隊列指標總是指向最大的空閑區,在進行分配時,總是從最大的空閑區開始查尋。
  該演算法克服了最佳適應演算法留下的許多小的片段的不足,但保留大的空閑區的可能性減小了,而且空閑區回收也和最佳適應演算法一樣複雜。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.