什么方式可以采用靜態(tài)重定位 地址重定位名詞解釋?
地址重定位名詞解釋?地址重定位分為兩部分:靜態(tài)地址重定位和靜態(tài)地址重定位。靜態(tài)地址重定位是在虛擬空間程序執(zhí)行之前由匯編程序完成的地址映射工作。對(duì)于虛擬空間中的指令和數(shù)據(jù),靜態(tài)地址重定位只完成不同初始地
地址重定位名詞解釋?
地址重定位分為兩部分:靜態(tài)地址重定位和靜態(tài)地址重定位。靜態(tài)地址重定位是在虛擬空間程序執(zhí)行之前由匯編程序完成的地址映射工作。對(duì)于虛擬空間中的指令和數(shù)據(jù),靜態(tài)地址重定位只完成不同初始地址的連續(xù)地址轉(zhuǎn)換。它要求所有要執(zhí)行的程序在執(zhí)行之前必須完成它們之間的鏈接,否則它們將無法獲得正確的內(nèi)存地址和內(nèi)存空間。
靜態(tài)地址重定位的優(yōu)點(diǎn)是它不需要硬件支持,但缺點(diǎn)是它必須占用連續(xù)的內(nèi)存空間,這使得數(shù)據(jù)和程序難以共享。
2. 動(dòng)態(tài)地址重定位:動(dòng)態(tài)地址重定位是在程序執(zhí)行過程中,CPU訪問內(nèi)存之前,將程序或數(shù)據(jù)地址轉(zhuǎn)換為內(nèi)存地址。動(dòng)態(tài)地址重定位需要硬件支持。
地址重定位機(jī)制需要一個(gè)或多個(gè)基址寄存器BR和一個(gè)或多個(gè)程序虛擬地址寄存器VR。指令或數(shù)據(jù)的存儲(chǔ)器地址Ma與虛地址的計(jì)算關(guān)系為:Ma=(BR)(VR)。這里,(BR)和(VR)分別表示寄存器的內(nèi)容。
重定位相關(guān)知識(shí),為什么要重定位?
1. 什么是搬遷?由于作業(yè)加載到與其地址空間不一致的存儲(chǔ)空間中,因此調(diào)整相關(guān)地址部分的過程稱為重定位。
2. 重新定位的類型是什么?它可以分為靜態(tài)重定位和動(dòng)態(tài)重定位兩種類型。
3. 為什么要搬遷?當(dāng)我們編寫普通程序時(shí),根本不需要關(guān)心變量(常量)的位置,因?yàn)樵诰幾g源程序時(shí),它的內(nèi)存位置是經(jīng)過計(jì)算的。
程序加載到內(nèi)存時(shí),系統(tǒng)不會(huì)重新定位它。
當(dāng)我們需要使用變量(常量)時(shí),我們可以用變量名直接訪問它。
有些程序不可避免地使用變量(常量),每個(gè)變量(常量)在內(nèi)存中的位置自然不同。
由于這些變量沒有固定的地址,程序只能在運(yùn)行過程中重新定位才能正常訪問相關(guān)資源。