13內存換入與換出

12節說了現代計算機支持虛擬內存,而虛擬內存得以實現需要換入換出技術的支持。首先來來說說換入

  虛擬內存由於是用來換頁的,所以一般設置成大於物理內存比較好,此處設置爲32位系統的地址空間4G。由於虛擬內存大於實際物理內存,所以不可能一次性將虛擬內存都映射到物理內存,因此只在請求的時候才映射。

先用邏輯地址通過查段表計算出虛擬地址時,再由虛擬地址查頁表計算物理地址,當用虛擬地址查頁表發現該虛擬地址沒有映射,即該頁沒有載入內存時,需要從磁盤中將該頁載入物理內存(請求調頁),過程如下圖所示

將上述通過虛擬地址查頁表找不到映射的情況稱作缺頁,發現缺頁後就要從磁盤中請求調頁,這個過程一般比較長同時需要陷入內核,所以在中斷中進行。一旦發生缺頁,就進入缺頁中斷,在中斷中請求調頁。同時建立虛擬內存的該頁與物理內存的映射,當請求調頁完成時,映射也建立好了。


 由於物理內存大小是有限的,因此內存換入多次後,物理內存就會滿,因此必須換頁,才能騰出空間給新換入的頁。
換頁最核心的問題就是需要選擇一頁淘汰,換出到磁盤,選擇哪一頁?類似於進程調度。
FIFO是最容易想到的方法,先進先出。但先進先出會出現什麼問題呢?

當存在某些頁頻繁使用時,就不適宜被換掉。那麼應該是選最遠將使用的頁淘汰,是最優方案,稱作MIN算法

但是,MIN需要知道將來發生的事,因此在實際中不可行
因此比較合適的方法是選最近沒有使用過的頁淘汰。

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