地址重定位分為兩種主要類型:靜態重定位和動態重定位。以下是這兩種重定位的詳細介紹:
靜態重定位。在程式裝入記憶體的過程中完成,即在程式開始運行前完成地址變換。這種方式不需要硬體支持,但要求所有待執行的程式必須在程式執行之前完成它們之間的連結。靜態重定位的缺點是必須占有連續的記憶體空間,難以實現數據和程式的共享。
動態重定位。在程式執行過程中,CPU每次訪問記憶體時自動進行,由動態地址變換機構實現將相對地址轉換為絕對地址。這種方式需要硬體支持,可以實現記憶體的非連續分配,提供實現虛擬存儲器的基礎,有利於程式段的共享。
這兩種方法的區別在於地址變換髮生的時機和所需的硬體支持不同。