易學筆記-系統分析師考試-第3章 作業系統基本原理/3.3 記憶體管理/3.3.1 地址變換
阿新 • • 發佈:2018-11-16
- 幾種程式
- 源程式:使用者用開發語言編寫的程式
- 編譯程式(彙編程式):專門編譯源程式的程式
- 目標程式:編譯後的程式
- 地址
- 邏輯地址
- 概念:指的是目標程式使用的地址,也稱為相對地址或者虛擬地址
- 格式:一般以0為基地址進行編址
- 邏輯地址空間
- 一個目標程式所有的邏輯地址
- 格式:
- 一維地址:從0開始依次編碼;
- 二維地址,把目標程式分成若干塊,每段有不同的段號,段內地址也是從0開始
- 實體地址:目標程式被裝載在記憶體中後對應的地址
- 實體地址空間:目標程式所有的實體地址的總和,由儲存器提供,大小取決於目標程式所需的記憶體大小
- 地址轉換
- 概念:邏輯地址到目標地址的轉換
- 公式:實體地址 = 起始的實體地址 + 邏輯地址
- 分類
- 靜態重定位
- 概念:在目標程式裝入記憶體時,由記憶體一次性完成地址轉換,也即是目標程度的邏輯地址加上記憶體分配的起始實體地址
- 優點:地址轉換簡單,容易實現
- 缺點:
- 需要分配一段連續的地址塊,而且在程式執行期間不能移動
- 不能程式和資料的共享,記憶體利用率低
- 動態重定位
- 概念:在CPU訪問程式和資料之前實現地址變換
- 原理:藉助硬體地址的轉換機構來實現,通過選擇重定位暫存器實現,具體步驟:
- 程式開始執行時,作業系統把程式在記憶體中的起始地址放入重定位暫存器
- 每次訪問時,重定位暫存器的地址+當前邏輯地址就可得出實體地址,然後CPU就可以訪問該實體地址
- 優點
- 程式可以移動,移動後只需要把新的起始地址放入重定位暫存器即可
- 容易實現程式共享、可提供虛擬儲存空間
- 靜態重定位