
【計】 dynamic memory relocation
dynamic; dynamic state; trends
【經】 movement
memory; storage
【計】 MU; storager
【經】 storage; store
reorientation
【計】 relocate
【化】 relocatability
動态存儲再定位(Dynamic Storage Relocation)是計算機科學中内存管理的關鍵技術,指程式在運行時根據系統資源狀況動态調整其在内存中的物理地址的過程。該機制允許操作系統靈活分配内存空間,提升資源利用率和系統性能。
中英術語對照
技術原理
通過内存管理單元(MMU) 實現邏輯地址到物理地址的動态轉換。程式編譯後生成與物理地址無關的代碼(Position-Independent Code),運行時由操作系統通過重定位寄存器(Relocation Register) 加載基地址,實現地址偏移計算。公式表示為:
$$ text{物理地址} = text{邏輯地址} + text{基址寄存器值} $$
核心優勢
如Linux的mmap
系統調用實現文件到内存的動态映射(參考:O'Reilly《Understanding the Linux Kernel》第8章)
實時操作系統(RTOS)通過重定位應對有限内存資源(參考:Springer《Embedded Systems Architecture》)
虛拟機管理器(Hypervisor)動态分配物理内存給多個虛拟機(參考:IEEE Transactions on Computers Vol. 59, Issue 2)
Silberschatz, A., et al. Operating System Concepts (10th ed.), Wiley, 2018. 第9章詳細分析動态重定位實現機制。
Hennessy, J.L., & Patterson, D.A. Computer Architecture: A Quantitative Approach (6th ed.), Morgan Kaufmann, 2017. 涵蓋MMU硬件支持設計。
IEEE Std 1003.1-2017 (POSIX) 定義内存管理API規範,可訪問IEEE Xplore
特性 | 動态存儲再定位 | 靜态重定位 |
---|---|---|
執行時機 | 運行時實時調整 | 程式加載時一次性固定 |
硬件依賴 | 需MMU支持 | 無需專用硬件 |
靈活性 | 支持内存壓縮/進程遷移 | 地址空間固定不可變 |
典型應用 | 現代多任務操作系統 | 早期批處理系統 |
動态存儲再定位可能涉及兩個相關但不同的概念:動态存儲分配和動态重定位。以下是詳細解釋:
定義:動态重定位是一種内存管理技術,指在程式運行過程中将邏輯地址轉換為物理地址的過程。它通過硬件(如基址寄存器)實時完成地址轉換,使程式在内存中的位置可靈活調整。
特點與實現:
示例:若程式加載到内存地址1000
處,邏輯地址200
會被轉換為物理地址1200
(即1000+200
)。
定義:指在程式執行期間根據需要動态分配或回收内存空間,例如通過malloc()
、new
等操作實現。
特點:
與動态重定位的關系:
若用戶問題中的“動态存儲再定位”指代動态重定位,其核心是運行時地址轉換;若涉及動态存儲分配,則強調内存的動态申請與釋放。兩者在内存管理中常協同工作,但技術目标不同。
【别人正在浏覽】