勵志

勵志人生知識庫

地址重定位方式

地址重定位主要有兩種方式:

靜態重定位

靜態重定位是在程式裝入記憶體的過程中完成的,即在程式開始運行前,程式中的各個地址有關的項均已完成重定位。

地址變換通常是在裝入時一次完成的,以後不再改變,故稱為靜態重定位。

靜態重定位的優點是不需要硬體地址變換機構的支持,可以在一般的計算機上實現。其主要缺點是必須給作業分配一個連續的存儲區域,且在作業的執行期間不能擴充存儲空間,也不能在記憶體中移動,多個作業也難以共享記憶體中同一程式副本和數據。

動態重定位

動態重定位不是在程式裝入記憶體時完成的,而是在CPU每次訪問記憶體時由動態地址變換機構(硬體)自動進行,將相對地址轉換為絕對地址。

動態重定位需要軟體和硬體相互配合完成,系統將程式在記憶體的起始地址送入地址變換機構中的基地址暫存器(BR)中。在執行指令時,若涉及邏輯地址,則先將該地址送入虛地址暫存器(VR),再將BR和VR中的值相加後送入地址暫存器(MR),並按MR中的值訪問記憶體。

動態重定位方式的優點是程式在運行期間可以換出和換進記憶體,以便緩和記憶體緊張狀態;也可在記憶體中移動,把記憶體中的碎片集中起來,以充分利用記憶體空間,這也便於進行多道程式設計。採用動態重定位方式,系統不必給程式分配連續的記憶體空間,這樣就可將程式分成較小的部分,能充分利用記憶體中的較小片段。動態重定位方式又為信息共享和虛擬存儲器的實現創造了條件。