iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0
自我挑戰組

當你凝視linux, linux也在凝視你系列 第 12

Day12 虛擬記憶體的介紹

前言

前幾天都在講實體記憶體(physical memory)該如何分配,但是在有越來越多行程同時運行的狀況下,記憶體再多都沒辦法好好地放下所有程式的資料,因此因應這些問題產生的機制就是虛擬記憶體,虛擬記憶體的產生,讓工程師再也不用擔心程式過大會造成記憶體不足沒辦法運轉,也讓同時可以進行的程式變得更多了。

虛擬記憶體(virtual memory )

虛擬記憶體到底是什麼? 來自wiki 的這段話最能夠好好解釋虛擬記憶體

In computing, virtual memory, or virtual storage is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very large (main) memory".

簡單來說就是將計算機可用的儲存空間包含記憶體、硬碟虛擬化,讓使用者覺得記憶體的空間是無限的。
下方這張圖來自恐龍書,圖解了虛擬記憶體與實體記憶體或硬碟的關係

可以看到想要取得一個虛擬記憶體的資料,就需要先經過memory map將虛擬位址轉換成實體位址,再藉由實體位址判斷究竟這個位址的資料在不在實體記憶體中,如果不存在實體記憶體,就會到硬碟將實際的資料搬出。

待解決的問題

  1. 在哪裡判斷資料是否已經在記憶體中了
  2. 如何知道memory map 的Table是對的

上一篇
Day11 Buddy, slab 記憶體管理大將
下一篇
Day13 demand page 與 copy on write
系列文
當你凝視linux, linux也在凝視你30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言