連結器與載入器與執行檔格式
關於連結器所進行的重定位(relocation),下列說明何者正確?
- A程式碼與資料的最終位址決定後,將指令或資料中的位址改寫為正確的值
- B在程式執行中,將其搬移到另一部電腦繼續執行
- C記憶體不足時,將分頁(page)換出到儲存裝置
查看答案與解析
正確答案:A. 程式碼與資料的最終位址決定後,將指令或資料中的位址改寫為正確的值
編譯器是將各檔案視為從位址0開始來產生的,並將要使用其他檔案函式或自身變數位址的位置記錄為重定位資訊。連結器排列所有檔案、決定實際位址後,會依所記錄的各個位置計算出正確的位址(或與PC的距離)並寫入指令。在動態連結中,類似的改寫有一部分是在執行時由動態連結器進行。
- A. 正確。改寫重定位資訊所指的位置。
- B. 那是行程的搬移(migration)。
- C. 那是作業系統的分頁置換。