作業系統 記憶體管理

2021-10-19 03:00:54 字數 697 閱讀 1350

虛擬記憶體的目的是為了讓物理記憶體擴充成更大的邏輯記憶體,從而讓程式獲得更多的可用記憶體。

為了更好的管理記憶體,作業系統將記憶體抽象成位址空間。每個程式擁有自己的位址空間,這個位址空間被分割成多個塊,每一塊稱為一頁。這些頁被對映到物理記憶體,但不需要對映到連續的物理記憶體,也不需要所有頁都必須在物理記憶體中。當程式引用到不在物理記憶體中的頁時,由硬體執行必要的對映,將缺失的部分裝入物理記憶體並重新執行失敗的指令。

從上面的描述中可以看出,虛擬記憶體允許程式不用將位址空間中的每一頁都對映到物理記憶體,也就是說乙個程式不需要全部調入記憶體就可以執行,這使得有限的記憶體執行大程式成為可能。例如有一台計算機可以產生 16 位位址,那麼乙個程式的位址空間範圍是 0~64k。該計算機只有 32kb 的物理記憶體,虛擬記憶體技術允許該計算機執行乙個 64k 大小的程式。

記憶體管理單元(mmu)管理著位址空間和物理記憶體的轉換,其中的頁表(page table)儲存著頁(程式位址空間)和頁框(物理記憶體空間)的對映表。

乙個虛擬位址分成兩個部分,一部分儲存頁面號,一部分儲存偏移量。

下圖的頁表存放著 16 個頁,這 16 個頁需要用 4 個位元位來進行索引定位。例如對於虛擬位址(0010 000000000100),前 4 位是儲存頁面號 2,讀取表項內容為(110 1),頁表項最後一位表示是否存在

作業系統記憶體管理

作業系統記憶體管理 一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於32位程序來說,這個位址空間為4g,因此程序中的位址可以為0x00000000至0xffffffff之間的任何乙個值。其中4g空間中的低區的2g空間留給程序使用,而高區的2g空間則留給系統使用。在windows200...

作業系統記憶體管理

作業系統記憶體管理一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於 32位程序來說,這個位址空間為 4g,因此程序中的位址可以為 0x00000000 至0xffffffff 之間的任何乙個值。其中 4g空間中的低區的 2g空間留給程序使用,而高區的 2g空間則留給系統使用。在win...

作業系統記憶體管理

記憶體,毫無疑問是最重要的資源,顯然,作業系統對記憶體的管理我必須清楚。這裡主要介紹了分頁管理和分段管理。1.頁式管理 a.頁式管理的基本思想 打破儲存分配的連續性 將邏輯上連續的使用者程式對映到離散的記憶體塊 使用者程式與記憶體空間被劃分為若干等長的區域 邏輯頁 與 物理頁 使用者程式的劃分由系統...