把邏輯位址轉換為記憶體物理位址的過程稱為「重定位」。程式發出的邏輯位址並不是資料或指令的真實存放地,但可以對這個位址進行轉換來獲得真實存放地的實體位址,相當於重新定位一次。
本教學操作環境:windows7系統、Dell G3電腦。
把邏輯位址轉換為記憶體實體位址的過程稱為「重定位」。
在程式執行時由中央處理單元產生的內容的位址稱為邏輯位址。該位址也稱為虛擬位址。當我們談論邏輯位址時,我們指的是CPU分配給每個進程的位址,一個進程在記憶體中所處的實際位址與進程認為它所處的位址是不一樣的。
每當 CPU 運行一個進程時,它都會為該進程分配一個特定的記憶體。此分配的記憶體空間位於 CPU 為進程產生邏輯位址。
在產生邏輯位址時,CPU 產生一個位址,程式將基底位址與CPU 產生的位址相加得到
逻辑地址 = 基地址 + CPU 生成地址
物理位址是進程及其內容放置在主記憶體或硬碟中的位址,是記憶體中的記憶體單元實際位址。該位址不能直接由使用者程式存取或查看,因此需要將邏輯位址對應到該位址,以便藉助顯示位置而不是程式碼的指標進行存取
而程式發出的邏輯位址並不是資料或指令的真實存放地,但可以對這個地址進行轉換來獲得真實存放地的物理地址,相當於重新定位一次。
(MMU為記憶體管理單元)
簡易理解:
邏輯位址就是相對位址,例如在1G的記憶體里分配1M的空間這1M空間中的第一個位元組,就算是邏輯位址
在1G記憶體的100M的地方開始分配1M的空間,這時101M的第一個位元組,這是指的實體地址,
再例如:有四個人要租房,房子的地址是XX街道XX號,這個地址就是實際的地址,是實體地址。房東將這四間房子進行編號1 2 3 4 號 。 這四人平常聊天會說自己住在幾號房,這個就是邏輯地址,但實際地址還是XX街道XX號。
區別:
更多相關知識,請造訪常見問題專欄!
以上是把邏輯位址轉換為記憶體物理位址的過程稱作什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!