操作系統(二) --- 內存管理

### 內存管理概述

我們知道操作系統實際上是分爲內核態和用戶態,而這裏的存儲管理實際上考慮的是對用戶態的存儲進行管理,從存儲管理的目的出發,可以認爲存儲管理需要實現如下目標:

  1. 地址轉換:即程序的邏輯地址與內存的物理地址的轉換。
  2. 內存的分配與回收:即爲進程分配內存並按一定的策略進行回收。
  3. 內存的地址保護:即讓多個進程並行運行時不會影響其他進程。
  4. 內存的共享:允許多個程序同時使用存儲器。
  5. 內存的擴充:即從邏輯上擴充內存,即實現小內存運行大程序。

### 理解程序的編譯、連接與裝入

由於計算機只能識別二進制數據,所以我們的程序需要由計算機(虛擬機)運行時,都需要將源程序經過編譯的過程轉換爲二進制目標程序,然後將多個目標程序連接成可運行程序裝入內存,所以連接和裝入的過程往往是一起的。

  • 編譯:即源程序經過編譯器處理轉換爲二進制程序(目標程序)的過程。
  • 連接:將多個目標程序連接起來轉換爲可運行程序。
  • 裝入:將連接的可運行程序裝入內存由CPU調度執行。

#### 連接:

1、靜態連接:即在程序運行之前,就將多個目標模塊連接在一起組成一個可執行文件。由於其在裝入之前其邏輯地址已經確定,因此裝入後就不能再移動和修改程序的邏輯地址。

2、動態連接:當程序裝入時纔將多個目標模塊進行連接。當一個模塊依賴另一個模塊時,裝入依賴模塊可以修改其邏輯地址。

3、運行時連接:只有當程序運行時纔將多個目標模塊進行連接。只有程序依賴某個模塊並找不到時纔去尋找並裝入,它節省空間且提高裝入速度。

#### 裝入

1、靜態裝入:程序的邏輯地址轉換爲物理地址的過程在程序編譯的過程中發生,程序員需要清楚計算機的物理地址。

2、動態裝入:程序的邏輯地址轉換爲物理地址的過程發生在程序裝入時發生,它的缺點就是程序裝入後無法移動。

3、運行時裝入:只有程序運行時才裝入程序並確定其物理地址。

 

### 存儲管理的方式

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章