內容簡介
地址重定位 分為兩種:靜態地址重定位和動態地址重定位。
靜態定位
靜態地址重定位是在虛擬空間程式執行之前,由裝配程式完成的地址映射工作。對於虛擬空間內的指令和數據來說,靜態地址重定位只完成了一個首地址不同的連續地址變換。它要求所有待執行的程式必須在程式執行之前完成它們之間的連結,否則將無法得到正確的記憶體地址和記憶體空間。
靜態地址重定位的優點是不需要硬體支持,但是缺點是必須占有連續的記憶體空間,這就難以做到數據和程式的共享。
動態定位
動態地址重定位是程式在執行過程中,在CPU訪問記憶體之前,將要訪問的程式或數據地址轉換為記憶體地址。動態地址重定位需要硬體的支持。
地址重定位機構需要一個或多個基地址暫存器BR和一個或多個程式虛擬地址暫存器VR,指令或數據的記憶體地址MA與虛擬地址的計算關係如下:MA=(BR)+(VR),這裡的(BR),(VR)分別表示暫存器中的內容。
動態重定位的優點有:記憶體可以不連續分配、提供實現虛存的基礎、有利於程式共享。