對作業系統虛擬記憶體機制的理解

2021-10-06 08:48:21 字數 926 閱讀 1579

1.如果把二進位制程式全部載入到記憶體中,會出現一種情況就是明明記憶體還有空間,但是不夠二進位制程式的大小,所以也載入不了,這樣很浪費記憶體,而且會產生外部碎片。所以就改良成2中描述的方案。

2.採用頁表的方式對記憶體進行管理。分頁將物理記憶體和可執行程式劃分成很小的區塊,這個區塊定義為頁,每個頁的大小為4k,二進位制程式中不足4k的頁預設為4k。作業系統會為每個程序維護乙個頁表。頁表主要記錄程序的頁號與記憶體中的頁號的對應關係。這樣的話就沒有要求二進位制程式載入到物理記憶體中必須是連續的,不會產生外部碎片,但是因為二進位制程式中不足4k的頁預設為4k,會浪費一點點記憶體,稱為內部碎片。但是因為記憶體有限,所以載入的二進位制程式有限,所以可以有了3中的方案解決記憶體有限的問題。

3.虛擬記憶體:

概念:磁碟空間開闢空間作為記憶體的補充。

程序可以一部分駐留在記憶體上,而其他部分儲存在虛擬記憶體上。cpu要執行的虛擬位址從頁表中找不到對應的物理頁位址時,就會發生頁中斷(頁錯誤)。此時cpu無法執行,中斷處理程式會將虛擬位址所在的虛擬記憶體的空間,將其載入到記憶體。cpu再次掃瞄,程式正常執行。這裡會涉及到頁面的換入換出,所以講一下系統抖動。

系統抖動概念:在請求分頁儲存管理中,從記憶體剛剛換出某一頁面後,根據請求又馬上換入該頁,這種反覆換入換出的現象,叫系統抖動,或系統顛簸。系統抖動是因為頁錯誤太多,頻繁出現頁中斷,浪費cpu大部分時間。為了降低系統抖動,降低頁錯誤次數,就要使用頁面置換演算法(fifo),原則是先進先出,但這種演算法只是在按順序訪問位址空間時是理想的。因此我們可以使用另一種演算法,即最近最久未使用演算法(lru),它是置換最近過去一段時間最久未使用的頁面。

虛擬記憶體的優點: 

a.作業系統同時執行的程序數量會大幅提公升。 

b.作業系統可以執行比記憶體空間大的多的程序。

虛擬記憶體的缺點: 

a.頁中斷處理程式執行時,cpu需要等待,會浪費時間。

作業系統 虛擬記憶體

1.虛擬記憶體術語 虛擬記憶體 程式引用記憶體使用位址與記憶體系統用於識別物理儲存站點的位址是不同的,程式生成的位址會自動轉換成機器指令。虛擬記憶體的大小收到定址機制和可用的備用記憶體量的限制,而不受記憶體儲存位置實際數量的限制。虛擬位址 在虛擬記憶體中分配給某一位置的位址使該位置可以被訪問,彷彿它...

作業系統虛擬記憶體

虛擬記憶體是計算機作業系統提供的一種記憶體管理技術,它使得應用程式認為它擁有連續可用的記憶體 乙個連續完整的位址空間 而實際上,它通常是被分隔成多個物理記憶體碎片,還有部分暫時儲存在外部磁碟儲存器上,在需要時進行資料交換。與沒有使用虛擬記憶體技術的系統相比,使用這種技術的系統使得大型程式的編寫變得更...

作業系統 虛擬記憶體

虛擬記憶體介紹 虛擬記憶體是計算機系統記憶體管理的一種技術。虛擬記憶體的重要意義是定義了乙個連續的虛擬位址空間,並且把記憶體擴充套件到硬碟空間。虛擬記憶體使得應用程式認為它擁有連續的可用記憶體,但實際上它通常被分隔成多個物理記憶體碎片,還有部分暫時儲存在外存上,在有需要時進行資料交換。虛擬記憶體技術...