重定位

重定位

重定位就是把程式的邏輯地址空間變換成記憶體中的實際物理地址空間的過程,也就是說在裝入時對目標程式中指令和數據的修改過程。他是實現多道程式在記憶體中同時運行的基礎。重定位有兩種,分別是動態重定位與靜態重定位。重定位與EXE檔案無關,它是程式裝入時的一種方式。動態重定位需要軟體和硬體相互配合完成。在裝入程式前,系統會計算未使用的記憶體,然後將程式裝入,並記下開始地址。在執行有相對地址的指令時,會將所有的地址加個剛才記下的開始地址,就叫重定位。

​簡介

定義

重定位就是把程式的邏輯地址空間變換成記憶體中的實際物理地址空間的過程,也就是說在裝入時對目標程式中指令和數據的修改過程。他是實現多道程式在記憶體中同時運行的基礎。重定位有兩種,分別是動態重定位與靜態重定位

分類

1、靜態重定位:即在程式裝入記憶體的過程中完成,是指在程式開始運行前,程式中的各個地址有關的項均已完成重定位,地址變換通常是在裝入時一次完成的,以後不再改變,故成為靜態重定位。

2、動態重定位:它不是在程式裝入記憶體時完成的,而是CPU每次訪問記憶體時 由動態地址變換機構(硬體)自動進行把相對地址轉換為絕對地址。動態重定位需要軟體和硬體相互配合完成。

時機

將邏輯地址空間重定位到物理地址空間的時機有三種:

1、程式編譯連線時。

2、程式裝入記憶體時。

3、程式執行時。

擴展閱讀

重定位是由作業系統安排的。

在裝入程式前,系統會計算未使用的記憶體,然後將程式裝入,並記下開始地址。在執行有相對地址的指令時,會將所有的地址加個剛才記下的開始地址,就叫重定位。

重定位與EXE檔案無關,它是程式裝入時的一種方式。利用重定位可提高記憶體空間的使用率。

重定位數據在記憶體內的情況重定位數據在記憶體內的情況

相關搜尋

熱門詞條

聯絡我們