簡述Windows記憶體管理的幾種方式以及優缺點。
Windows記憶體管理方式如下圖所示:

1、單一連續配置設定
所謂單一,是指記憶體中隻駐留一道作業。為便于位址轉換,把作業連續的存放在記憶體中,而不是離散的存放。單一連續區的管理思想主要用在早期的單道批處理系統中,采用靜态配置設定的方式,即作業或程序一進入記憶體,就要等到它結束後才釋放記憶體。
優點: 方法簡單,易于實作 缺點: 僅适合于單道程式
2、分區管理
分區管理是把記憶體劃分成若幹個大小不等的區域,除作業系統占用一個區域之外,其餘由多道環境下的各并發程序共享。分區管理是滿足多道程式設計的一種最簡單的存儲管理方法。
分區管理的基本原理是給每一個記憶體中的程序劃分一塊适當大小的存儲區,以連續存儲各程序的程式和資料,使各程序得以并發執行。
分區管理又分為:
1、固定分區法 fixed partition
2、動态分區法 dynamic partition
固定分區法:
劃分的原則由系統操作員或作業系統決定。分區一旦劃分結束,在整個執行過程中每個分區的長度和記憶體的總分區個數将保持不變。
系統對記憶體的管理和控制通過資料結構--分區說明表進行,該表說明各分區号、分區大小、起始位址和是否是空閑區(分區狀态)。
優點:管理簡單,系統開銷小 缺點:不靈活、大程式可能無法裝入;使用率低,浪費,内部碎片大
動态分區法:
動态分區使用的資料結構
除了與固定分區法相同的分區說明表之外,動态分區法還把記憶體中的可用分區單獨構成可用分區表或可用分區自由鍊。
動态分區時的配置設定與回收主要解決3個問題:
1、對于請求表中的要求記憶體長度,從可用表或自由鍊中尋找合适的空閑區配置設定程式;
2、配置設定空閑區之後,更新可用表或自由鍊;
3、程序或作業釋放記憶體資源時,和相鄰的空閑區進行連結合并,更新可用表或自由鍊。
最先适應法(位址遞增)
最佳适應算法
最壞适應算法
3、頁式管理
将各程序的虛拟空間(邏輯位址)劃分為若幹個長度相等的頁,業内管理把記憶體空間(實體記憶體)按照頁的大小劃分為片或者頁面,進而實作了離散配置設定,然後把頁式虛拟位址和記憶體位址建立一一對應的頁表,并用相應的硬體位址變換機構來解決離散位址變化問題,(程式加載時,可将任意一頁放入記憶體中任意一個頁框而且這些頁框不必連續,進而實作了離散配置設定)頁式管理采用請求調頁或預調頁技術來實作内外存存儲器的統一管理,位址結構由兩部分構成,頁号+頁内位址。
優點:沒有外碎片,每個内碎片不超過頁的大小。每個程式不必連續存放,這樣就便于改變程式占用空間的大小(主要是随着程式運作,動态生成資料增多,所要求的位址空間相應增長)。 缺點:程式仍舊要全部裝入記憶體,要有相應的硬體支援,例如位址轉換機構缺頁中斷的産生和選擇淘汰頁面都要求有相應的硬體支援,這增加了機器成本,增加了系統開銷,并且沒有足夠的記憶體,程式就不能執行。
4、段式管理
程式按照内容和過程函數關系分段,每段都有自己的名字,一個使用者作業或程序包括的段對應一個二維線性虛拟空間,也就是一個二維虛拟存儲器,段式管理程式以段為機關配置設定記憶體,然後通過位址映射機構把段式虛拟位址轉換為實際記憶體位址。
優點: 1.友善了使用者程式設計。多個邏輯段形成作業這種組織方式,使使用者可以清晰地設計和了解程式的結構。 2.便于實作程式和資料的共享與保護。段的邏輯機關性質使分段共享與保護是現實和有意義的。 3.程式的動态連結實作友善。當程式在執行過程中需要某段時,才将其調入記憶體連結。 4.應用中會發生資料動态增長的情況,而且這種增長是無法預知的,采用分段管理可以很好地解決這個問題。 缺點: 1.段式管理比其他幾種方式要求有更多的硬體支援。這提高了機器成本。 2.由于在記憶體空閑區管理方式上與分區式管理相同,在碎片問題以及為了消除碎片所進行的合并等問題上較分頁式管理要差。 3.允許段的動态增長也會給系統管理帶來一定的難度和開銷。 4.每個段的長度受記憶體可用區大小的限制。
5、段頁式管理
為了實作段頁式管理,系統必須為每個作業或程序建立一張段表以管理記憶體配置設定和釋放,缺段處理。另外由于一個段又被劃分為若幹個頁,每個段必須建立一張頁表一把段中的虛頁變換成記憶體中的實際頁面。顯然與頁式管理時相同,頁表中也要有相應的缺頁中斷處理頁面保護功能的表項,段頁式管理的段式管理與頁式管理方案結合而成的是以具有它們兩者的優點,但反過來說由于管理軟體增加,複雜性和開銷也就随之增加了,另外需要的硬體以及占用的記憶體也有所增加,使得速度降下來。
頁式和段式的差別?
相似:離散配置設定,位址映射機構來實作位址轉換 (1)段是資訊的邏輯機關,它是根據使用者的需要劃分的,是以段對使用者是可見的;頁是資訊的實體機關,是為了管理主存的友善而劃分的,對使用者是透明的。 (2)頁的大小固定不變,由系統決定。段的大小是不固定的,它由其完成的功能決定。 (3)段式向使用者提供的是二維位址空間,頁式向使用者提供的是一維位址空間,其頁号和頁内偏移是機器硬體的功能。 (4)由于段是資訊的邏輯機關,是以便于存貯保護和資訊的共享,頁的保護和共享受到限制。
最後來看一道題目吧: