地址重定位指的是什么

地址重定位指的是什么

推薦教程:windows運維

簡介

  內存地址的集合稱為內存空間或物理地址空間。內存中,每一個存儲單元都與相應的內存地址的編號相對應,顯然,內存空間是一維線性的。

  怎樣把幾個虛存的一維線性空間或多維線性空間變換到內存的唯一的一維物理線性空間?這涉及到兩個問題:一個是虛擬空間的劃分問題,另一個就是把虛擬空間中已經鏈接和劃分好的內容裝入內存,并將虛擬地址映射為內存地址的問題,稱之為地址重定位或地址映射。

  地址重定位 分為兩種:靜態地址重定位和動態地址重定位。

靜態定位

  靜態地址重定位是在虛擬空間程序執行之前,由裝配程序完成的地址映射工作。對于虛擬空間內的指令和數據來說,靜態地址重定位只完成了一個首地址不同的連續地址變換。它要求所有待執行的程序必須在程序執行之前完成它們之間的鏈接,否則將無法得到正確的內存地址和內存空間。

  靜態地址重定位的優點是不需要硬件支持,但是缺點是必須占有連續的內存空間,這就難以做到數據和程序的共享。

動態定位

  動態地址重定位是程序在執行過程中,在CPU訪問內存之前,將要訪問的程序或數據地址轉換為內存地址。動態地址重定位需要硬件的支持。

  地址重定位機構需要一個或多個基地址寄存器BR和一個或多個程序虛擬地址寄存器vr,指令或數據的內存地址MA與虛擬地址的計算關系如下:MA=(BR)+(VR),這里的(BR),(VR)分別表示寄存器中的內容。

  動態重定位的優點有:內存可以不連續分配、提供實現虛存的基礎、有利于程序共享。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享