虛擬記憶體系統中地址和記憶體空間之間的關係是什麼?


程式設計師使用的地址稱為虛擬地址,這些地址的集合稱為地址空間。在主存中儲存地址的空間或位置稱為位置或物理地址,這些位置的集合稱為記憶體空間。

因此,地址空間是由程式在引用指令和資料時生成的地址集合。記憶體空間儲存可以直接定址以進行處理的實際主存位置。

示例 − 假設主存容量為32K字 (K = 1024)。由於 32K = 215,因此需要15位來定義記憶體中的物理地址。假設計算機有可用的輔助儲存器,可以儲存 220 = 1024K 個字。因此,輔助儲存器的儲存容量與32個主存的容量相似。如果地址空間用N表示,記憶體空間用M表示,在這個例子中我們可以有N = 1024K 和 M = 32K。

在多道程式計算機系統中,程式和資訊會在CPU需要時在輔助儲存器和主存之間移動。假設程式1當前正在CPU中執行,程式1及其相關資料的一個區域將從輔助儲存器傳送到主存,如圖所示。

相關的程式和資料不需要在記憶體中的相鄰區域,因為資料正在進出傳輸,空閒空間可以分佈在記憶體中。

在虛擬記憶體系統中,程式設計師被引導認為他們擁有整個地址空間供其使用。這也意味著指令程式碼的地址欄位具有足夠的位數來指定所有虛擬地址。

假設,指令程式碼的地址欄位包含20位,但物理記憶體地址只能用15位定義。結果,CPU將使用20位地址來引用指令和資料,因為此地址處的資訊應該從物理記憶體中獲取。畢竟,對單個字的輔助儲存訪問會非常頻繁。

因此,需要一個表來將例如20位的虛擬地址對映到例如15位的物理地址。對映是一個動態的過程,它定義了CPU引用字時每個地址是如何立即解釋的。

更新於:2021年7月27日

7K+ 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告