一、程序通過編譯後,每一個目標模塊都是從0號單元
開始編址,稱爲該目標模塊的相對地址(或邏輯地址)。程序員
二、當連接程序將各個模塊連接
成一個完整的可執行目標程序
時,連接程序順序依次按各個模塊的相對地址構成統一的從0號單元開始編址的邏輯地址空間
。編程
三、用戶程序和程序員只需知道邏輯地址
,而內存管理的具體機制則是徹底透明的,它們只有系統編程人員纔會涉及。安全
四、不一樣進程能夠有相同的邏輯地址,由於這些相同的邏輯地址能夠映射
到主存的不一樣位置。操作系統
五、物理地址空間是指內存中物理單元
的集合,它是地址轉換的最終地址,進程在運行時執行指令
和訪問數據
都要經過物理地址從主存中存取。當裝入程序(Loader)將可執行代碼裝入內存時,必須經過地址轉換
將邏輯地址轉換成物理地址,這個過程稱爲地址重定位
。code
1)內存分配前,須要保護操做系統
不受用戶進程
的影響,同時保護用戶進程
不受其餘用戶進程
的影響。進程
2)經過採用重定位寄存器
和界地址寄存器
來實現這種保護。重定位寄存器含最小的物理地址值,界地址寄存器含邏輯地址值。每一個邏輯地址值必須小於
界地址寄存器,圖片
3)內存管理機構動態的將邏輯地址與界地址寄存器進行比較
,若是未發生地址越界,則加上重定位寄存器的值後映射成物理地址,再送交內存單元。內存
4)當CPU調度程序選擇進程執行時,派遣程序會初始化
重定位寄存器和界地址寄存器。每個邏輯地址都須要與這兩個寄存器進行覈對
,以保證操做系統和其餘用戶進程(程序)及數據不被該進程的運行所影響。內存管理
若是地址越界,會出現內存訪問異常!
重定位寄存器就是段寄存器或頁寄存器,也叫基址寄存器
段寄存器是存在於段式存儲管理,段寄存器存的是段基址
頁寄存器是存在於頁式存儲管理,頁寄存器存的是起始頁號編譯