靜態重定位和動態重定位區別

靜態重定位和動態重定位區別:

靜態重定位和動態重定位區別

1、靜態重定位是在目標程式裝入記憶體時,由裝入程式對目標程式中的指令和資料的地址進行修改,即把程式的邏輯地址都改成實際的地址。對每個程式來說,這種地址變換隻是在裝入時一次完成,在程式執行期間不再進行重定位;

2、動態重定位是在程式執行期間每次訪問記憶體之前進行重定位。這種變換是靠硬體地址變換機構實現的。通常採用一個重定位暫存器,其中放有當前正在執行的程式在記憶體空間中的起始地址,而地址空間中的程式碼在裝入過程中不發生變化。