探索Linux 作業系統記憶體模型和管理8(轉)

Rounders發表於2007-08-10
探索Linux 作業系統記憶體模型和管理8[@more@]這個實體記憶體區域的管理是透過一個 區域分配器(zone allocator) 實現的。它負責將記憶體劃分為很多區域;它可以將每個區域作為一個分配單元使用。每個特定的分配請求都利用了一組區域,核心可以從這些位置按照從高到低的順序來進行分配。

  例如:

  ●對於某個使用者頁面的請求可以首先從“普通”區域中來滿足(ZONE_NORMAL);

  ●如果失敗,就從 ZONE_HIGHMEM 開始嘗試;

  ●如果這也失敗了,就從 ZONE_DMA 開始嘗試。

  這種分配的區域列表依次包括 ZONE_NORMAL、ZONE_HIGHMEM 和 ZONE_DMA 區域。另一方面,對於 DMA 頁的請求可能只能從 DMA 區域中得到滿足,因此這種請求的區域列表就只包含 DMA 區域。

  結束語

  記憶體管理是一組非常龐大、複雜且耗時的任務,也是一個非常難以實現的任務,因為我們需要精雕細琢出一個模型,設計好系統如何在真實的多程式的環境中進行操作,這是一項非常艱難的工作。諸如排程、分頁行為和多程式的互動元件都向我們提出了相當難度的挑戰。我希望本文可以幫助您瞭解接受 Linux 記憶體管理挑戰所需要的一些基本知識,併為您提供一個起點。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9417382/viewspace-940081/,如需轉載,請註明出處,否則將追究法律責任。

相關文章