作業系統的虛擬記憶體
計算機系統中的RAM資源有限,由系統上執行的進行競爭共享。當系統執行的多個應用程式時,所有程式分配的記憶體總量會超過系統上RAM的數量,這是很常見的一種情況。
作業系統支援虛擬記憶體,這樣程式就可以分配和使用比系統上安裝的RAM數量還要多的記憶體。也就是說,程式的空間地址不受物理RAM數量的限制。有了虛擬記憶體,作業系統便可以使用次級儲存器(如硬碟)上的後備儲存空間,儲存無法放到RAM中的程式的地址空間。然而,CPU仍然只能訪問RAM中的地址,因此,作業系統必須在磁碟後備儲存空間和RAM之間交換資料,以便能夠在程式執行時訪問記憶體。
在特定的時刻,程式可能只是需要使用分配的總記憶體的小部分,我們稱之為程式的工作集。只要作業系統將這一工作儲存到RAM中,就可以忽略虛擬記憶體對執行速度的影響。工作集是一個動態實體,根據程式執行時當前使用的資料而變化。
如果程式訪問RAM外部的記憶體地址,則需要從硬碟的後備儲存中讀取對應的資料,放到RAM中。如果當前沒有空閒的RAM使用者資料載入,就需要預先將RAM中現存的一些資料換出並儲存到磁碟,釋放物理RAM。
虛擬記憶體由作業系統處理。使用者程式並不參與這一過程的實現。他不用關心地址空間是否在RAM中,也不用關心訪問的資料是否轉移到了主存中。
使用虛擬記憶體的後果是,程式使用的地址與物理RAM的地址並不對應。只要想一想程式地址空間比RAM大,你就明白了。因此,需要將程式讀寫的地址從程式的虛擬地址空間轉換成物理的RAM地址。由於訪問每個記憶體都要進行地址的轉換,為了減少對執行速度的影響,這些工作全都是CPU執行的。
作業系統一般使用一種稱為“分頁”的方案,來實現虛擬地址到實體地址的轉換。使用分頁記憶體方案時,實體記憶體被劃分偉固定長度的塊,稱為(^-^)頁幀。大多數作業系統,包括mac OS 和 iOS,使用的幀長度均為4096位元組。類似的,每個程式的虛擬地址空間也都可以被劃分為固定長度的塊,稱之為頁。每頁的位元組數與每幀的位元組數始終相同。這樣便可以將程式中的每頁對映到實體記憶體中的一個幀裡。
虛擬記憶體的另一個優點是,程式虛擬地址空間中頁碼連續的緩衝區,可以分佈到實體記憶體中多個不連續的幀裡。這就解決了實體記憶體的碎片問題,因為一個程式分配的記憶體可以分佈到多個實體記憶體段,
相關文章
- 計算機作業系統——虛擬記憶體與實體記憶體計算機作業系統記憶體
- 讀懂作業系統之虛擬記憶體頁表(五)作業系統記憶體
- 虛擬記憶體系統——瞭解記憶體的工作原理記憶體
- 虛擬作業系統作業系統
- 清華大學-作業系統學習筆記(五)--- 虛擬記憶體技術作業系統筆記記憶體
- 虛擬記憶體檔案系統TMPFS記憶體
- 虛擬記憶體與系統效能(轉)記憶體
- 作業系統-記憶體管理作業系統記憶體
- 作業系統——記憶體管理作業系統記憶體
- 讀懂作業系統之虛擬記憶體地址翻譯原理分析篇(二)作業系統記憶體
- ucore作業系統學習(三) ucore lab3虛擬記憶體管理分析作業系統記憶體
- windows系統提示虛擬記憶體不足的原因Windows記憶體
- Windows及Linux系統虛擬記憶體WindowsLinux記憶體
- 作業系統記憶體管理概述作業系統記憶體
- 作業系統記憶體管理-原理作業系統記憶體
- 【作業系統】記憶體管理概述作業系統記憶體
- win10怎麼加虛擬記憶體_win10系統增加虛擬記憶體教程Win10記憶體
- win10怎麼清除虛擬記憶體 win10系統虛擬記憶體清理的辦法Win10記憶體
- HP-UX作業系統的記憶體UX作業系統記憶體
- windows作業系統支援的最大記憶體Windows作業系統記憶體
- 讀懂作業系統之虛擬記憶體TLB與快取(cache)關係篇(四)作業系統記憶體快取
- windows10系統如何增加虛擬記憶體Windows記憶體
- Windows 8系統下如何修改虛擬記憶體Windows記憶體
- win11系統設定虛擬記憶體記憶體
- Win10系統C盤虛擬記憶體怎麼設定?Win10專業版系統C盤虛擬記憶體設定方法Win10記憶體
- 作業系統-記憶體、檔案管理作業系統記憶體
- 虛擬的熱點,眼前的蛋糕:作業系統虛擬化作業系統
- 實體記憶體和虛擬記憶體記憶體
- win10 8g記憶體還需要虛擬記憶體嗎 win10系統8g記憶體怎麼分配虛擬記憶體Win10記憶體
- MySQL記憶體管理,記憶體分配器和作業系統MySql記憶體作業系統
- 虛擬記憶體筆記記憶體筆記
- 作業系統的記憶體管理你知道嗎作業系統記憶體
- 淺談作業系統對記憶體的管理作業系統記憶體
- 作業系統——記憶體管理學習筆記作業系統記憶體筆記
- 聊聊虛擬記憶體記憶體
- 作業系統級虛擬化概述作業系統
- Linux作業系統記憶體淺析Linux作業系統記憶體
- windows 7系統虛擬記憶體設定的最優方法Windows記憶體