-
1 # 使用者6071078018641
-
2 # 使用者6071078018641
1. 從硬碟中劃分出的所謂的"虛擬記憶體",準確來說應該叫做虛擬記憶體的"後備儲存空間"
2. 程式執行時的虛擬記憶體,準確的表達是"虛擬記憶體技術"。
早期無虛擬記憶體技術(既所謂的真實模式)時的弊端早期計算機中所有應用程式共享同一塊物理記憶體,物理記憶體既決定了能裝載的所有應用程式的大小,這種限制很好理解。
這種耿直的記憶體訪問方式在現在看來有明顯的缺點。最顯著的兩個是
1. 一個應用程式可以讀寫其他應用程式的資料,除了安全性外,一個程式可能由於其他程式的BUG而崩潰,難以排查。
2. 記憶體的利用率不高,因為一個程式在某一段時間內只有一小部分資料在被訪問,絕大部分存入記憶體的資料一時半會根本用不到。 而那些自身大小比空閒記憶體還要大的應用程式又無法執行。
虛擬記憶體技術虛擬記憶體技術是在物理記憶體和應用程式之間增加的一箇中間抽象層。
1. 所有對物理記憶體的訪問均改為對虛擬記憶體的訪問,然後由作業系統作為代理,完成對物理記憶體的訪問。這樣就可以防止應用程式之間資料可以彼此隨意讀寫的問題。
2. 虛擬記憶體可以遮蔽程式對物理記憶體的感知。既應用程式以為所有的資料都在記憶體,但是實際上只有少部分在物理記憶體,大部分都在"後備儲存器"(磁碟)中. 當程式向作業系統請求資料時,若作業系統發現數據並不在物理記憶體(缺頁中斷),那麼就立即將其從磁碟載入進來。這樣就可以大大提高記憶體的利用率,而那些比物理記憶體還要大的程式,也只需要部分載入而執行起來。
舉個例子以Leader需要所有的團隊前來彙報為例。Leader管理若干團隊,每個團隊中有若干成員。年終時需要各個團隊前來彙報。
如果採用非虛擬記憶體的模式,進行其彙報的方式大概是如下的過程。
1. 把所有的團隊的成員同時叫到辦公室中
2. 依次彙報。
這種方法現在看來問題很多。首先辦公室可能沒有那麼大,甚至無法裝下一個稍微大一點的團隊。
如果採用虛擬記憶體的模式進行彙報,則是
1. 每次僅僅把那些和子專案相關的人叫過來,其他的都在大廳等待,等需要他們的時候再叫進來。
這裡的大廳既是硬碟上的後備儲存器,Leader辦公室就是記憶體。
回覆列表
1. 從硬碟中劃分出的所謂的"虛擬記憶體",準確來說應該叫做虛擬記憶體的"後備儲存空間"
2. 程式執行時的虛擬記憶體,準確的表達是"虛擬記憶體技術"。
早期無虛擬記憶體技術(既所謂的真實模式)時的弊端早期計算機中所有應用程式共享同一塊物理記憶體,物理記憶體既決定了能裝載的所有應用程式的大小,這種限制很好理解。
這種耿直的記憶體訪問方式在現在看來有明顯的缺點。最顯著的兩個是
1. 一個應用程式可以讀寫其他應用程式的資料,除了安全性外,一個程式可能由於其他程式的BUG而崩潰,難以排查。
2. 記憶體的利用率不高,因為一個程式在某一段時間內只有一小部分資料在被訪問,絕大部分存入記憶體的資料一時半會根本用不到。 而那些自身大小比空閒記憶體還要大的應用程式又無法執行。
虛擬記憶體技術虛擬記憶體技術是在物理記憶體和應用程式之間增加的一箇中間抽象層。
1. 所有對物理記憶體的訪問均改為對虛擬記憶體的訪問,然後由作業系統作為代理,完成對物理記憶體的訪問。這樣就可以防止應用程式之間資料可以彼此隨意讀寫的問題。
2. 虛擬記憶體可以遮蔽程式對物理記憶體的感知。既應用程式以為所有的資料都在記憶體,但是實際上只有少部分在物理記憶體,大部分都在"後備儲存器"(磁碟)中. 當程式向作業系統請求資料時,若作業系統發現數據並不在物理記憶體(缺頁中斷),那麼就立即將其從磁碟載入進來。這樣就可以大大提高記憶體的利用率,而那些比物理記憶體還要大的程式,也只需要部分載入而執行起來。
舉個例子以Leader需要所有的團隊前來彙報為例。Leader管理若干團隊,每個團隊中有若干成員。年終時需要各個團隊前來彙報。
如果採用非虛擬記憶體的模式,進行其彙報的方式大概是如下的過程。
1. 把所有的團隊的成員同時叫到辦公室中
2. 依次彙報。
這種方法現在看來問題很多。首先辦公室可能沒有那麼大,甚至無法裝下一個稍微大一點的團隊。
如果採用虛擬記憶體的模式進行彙報,則是
1. 每次僅僅把那些和子專案相關的人叫過來,其他的都在大廳等待,等需要他們的時候再叫進來。
這裡的大廳既是硬碟上的後備儲存器,Leader辦公室就是記憶體。