天天看點

記憶體管理中的段表和頁表

基礎知識

​1Byte(位元組)=8bit​

将使用者程式變成可以在記憶體中執行的程式,通常需要以下幾個步驟

  • 編譯:将使用者代碼編譯成若幹目标子產品
  • 連結:将編譯後的一組目标子產品和所需要庫連結在一起, 形成完整的裝入子產品
  • 裝入:由裝入程式将子產品裝入記憶體中運作

将子產品裝入記憶體有三種方式

1. 絕對裝入

在編譯的時候,就已經知道程式在​

​記憶體​

​中的位址,可以在編譯的時候提前寫好。因為邏輯位址和實際記憶體位址完全相同,是以在後續的過程中,不需要對​

​程式​

​或者​

​資料​

​的位址進行修改。

2. 靜态重定位

位址變換通常是在裝入的時候,一次完成,

靜态重定位的特點是 ,當一個作業裝入記憶體時,必須給他配置設定全部的記憶體空間,如果沒有足夠的記憶體,則不能裝入該作業。此外,作業一旦進入記憶體,整個運作期間就不能再記憶體中移動了,也不能再動态的申請記憶體空間了。

3. 動态重定位

等到程式真正運作時,才進行位址轉換,轉入後所有的位址,都是相對位址。

具體的段頁操作

參考文獻​

繼續閱讀