地址重定位

記憶體地址的集合稱為記憶體空間或物理地址空間。記憶體中,每一個存儲單元都與相應的記憶體地址的編號相對應,顯然,記憶體空間是一維線性的。 怎樣把幾個虛存的一維線性空間或多維線性空間變換到記憶體的唯一的一維物理線性空間?這涉及到兩個問題:一個是虛擬空間的劃分問題,另一個就是把虛擬空間中已經連結和劃分好的內容裝入記憶體,並將虛擬地址映射為記憶體地址的問題,稱之為地址重定位或地址映射。

內容簡介

地址重定位 分為兩種:靜態地址重定位和動態地址重定位。

靜態定位

靜態地址重定位是在虛擬空間程式執行之前,由裝配程式完成的地址映射工作。對於虛擬空間內的指令和數據來說,靜態地址重定位只完成了一個首地址不同的連續地址變換。它要求所有待執行的程式必須在程式執行之前完成它們之間的連結,否則將無法得到正確的記憶體地址和記憶體空間。

靜態地址重定位的優點是不需要硬體支持,但是缺點是必須占有連續的記憶體空間,這就難以做到數據和程式的共享。

動態定位

動態地址重定位是程式在執行過程中,在CPU訪問記憶體之前,將要訪問的程式或數據地址轉換為記憶體地址。動態地址重定位需要硬體的支持。

地址重定位機構需要一個或多個基地址暫存器BR和一個或多個程式虛擬地址暫存器VR,指令或數據的記憶體地址MA與虛擬地址的計算關係如下:MA=(BR)+(VR),這裡的(BR),(VR)分別表示暫存器中的內容。

動態重定位的優點有:記憶體可以不連續分配、提供實現虛存的基礎、有利於程式共享。

相關詞條

熱門詞條

聯絡我們