連續記憶體配置 讀作業系統概念第六版

來源:互聯網
上載者:User

記憶體通常分為兩個地區:一個用於駐留作業系統,另一個用於使用者進程。

保護作業系統不受使用者進程所影響,保護使用者進程不受其他使用者進程所影響。通過採用重定位寄存器和界限寄存器,可以實現這種保護。重定位寄存器含有最小的物理地址值;界限寄存器含有邏輯地址的值。有了重定位寄存器和界限寄存器,每個邏輯地址必須小於界限寄存器;MMU動態地將邏輯地址加上重定位寄存器的值後映射為物理地址。映射後的物理地址在送交記憶體單元。

當CPU發送器選擇以進程執行時,作為環境切換工作的一部分,派遣程式會用正確的值初始化重定位寄存器和界限寄存器。

 

記憶體片段可以是內部的也可以是外部的。設想有一個18464B大小的孔,並採用多分區分配方案。假如有一個進程需要18462B。如果值準確分配所要求的塊,那麼還剩下一個2B的孔。維護這一小孔的開銷要比孔本身大很多。因此,通常將記憶體以固定大小的塊為單元來分配。採用這種方案,進程所分配的記憶體可能比所需要的要大。這兩個數字之差稱為內部片段,這部分記憶體在分區內,而又不能用。

一種解決外部片段問題的方法是緊縮。緊縮的目的是移動記憶體內容,以便所有空閑空間合并成一整塊。緊縮是有一定條件的。如果重定位是靜態,並且在彙編時或裝入時進行的,那麼就不能緊縮。如果重定位是動態,是在運動時進行的,那麼就能採用緊縮。對於動態重定位,可以首先移動程式和資料,然後再根據新基地址的值來改變基地址寄存器。如果能採用緊縮,還需要評估其開銷。還需要評估其開銷。最簡單的合并演算法是簡單地將所有進程移到記憶體的一端;而將所有的孔移到記憶體的另一端,以產生一個大的空閑塊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.