win10 4g內存最佳虛擬內存 怎樣設置虛擬內存

如何設置虛擬內存(win10 4g內存是最好的虛擬內存)
傳統存儲管理中的問題為什么會出現虛擬內存?他出現的背景是什么?
在內存管理三部曲的物理內存管理中提到,隨著用戶程序功能的增加,進程空所需的內存越來越大,進程空很容易突破物理內存的實際大小,導致進程無法運行 。
因此,為了解決內存不足的問題,緩解大程序和小內存的矛盾,擴充內存容量勢在必行 。
可以從物理和邏輯兩方面考慮擴充內存容量 。物理擴張沒有技術含量 。我們自然需要研究的是如何在邏輯上擴大記憶容量 。
所謂邏輯擴展,就是實際上物理內存的容量并沒有變化,只是可以裝更多的東西,讓用戶看起來內存比實際內存大很多 。
內存的邏輯擴展技術主要有三種:覆蓋技術、交換技術和虛擬內存,也稱虛擬內存 。其實這些邏輯擴展技術的核心概念都是一樣的,把哪個進程(或者進程的一部分)臨時從內存移到外存(磁盤)上,為其他進程(或者進程的一部分)占用內存騰出空間空 。
早期操作系統中存在的兩種邏輯擴展技術覆蓋和交換現在已經成為歷史 。下面簡單介紹一下:
如前所述,早期的操作系統只是將內存空分為兩塊:系統區(用于存儲與操作系統相關的數據)和用戶區(用于存儲與用戶進程相關的數據) 。內存中只能有一個用戶程序,用戶程序占用整個用戶區空 。很明顯,經常會出現內存空中沒有空間容納一個用戶程序的情況 。
【win10 4g內存最佳虛擬內存 怎樣設置虛擬內存】

覆蓋技術的基本思想是,當一個程序運行時,并不總是需要訪問程序的所有部分和數據(尤其是小程序),因此可以將用戶空室(內存)劃分為一個固定區域和一個或多個覆蓋區域 。
把程序頻繁活動的部分放在固定區域,其余部分按照調用關系分段:先把要用的段放在覆蓋區域,其他段放在外存(磁盤) 。在呼叫之前,用戶將安排特定的系統調用,將外部存儲器中的這些段轉移到覆蓋區域,以替換覆蓋區域中的原始段 。
疊加技術的缺點是顯而易見且不可接受的,即疊加技術給用戶帶來了解決內存空不足的問題 。操作系統只給用戶提供一個系統調用,把被覆蓋的段調入內存,但是用戶必須解釋要覆蓋哪個段,調用哪個段 。
當我使用計算機的時候,我必須想出如何防止我的程序崩潰 。
好了,我們可以看到疊加技術實際上是用在同一個作業/流程的不同段之間,那么不同的作業/流程呢?
這是交換技術的適用場景 。
交換的基本思想是:空空閑的進程/作業主要存放在外存(磁盤) 。當一個進程/作業需要運行時,完全從磁盤轉移到內存,讓進程運行一段時間,然后再返回磁盤 。因此,當進程/作業不運行時,它們不會占用內存 。
事實上,覆蓋和交換技術分別解決了傳統存儲管理(物理內存管理)中的某個問題:
覆蓋技術打破了作業/進程必須一次加載到內存中才能開始運行(一次)的限制 。
交換技術打破了作業一旦加載到內存中,就會一直留在內存中直到作業運行結束(駐留)的限制 。
當然,反正這兩種邏輯擴展技術已經成為歷史,虛擬內存技術是目前的主流 。它綜合了這兩種古老技術的特點,自己解決了傳統存儲管理中的這兩個問題 。
什么是虛擬內存?有了以上切換技術的鋪墊,理解虛擬內存就沒那么奇怪了 。
當然,在此之前,我必須強調,虛擬內存不是一個真實的東西,它是一種技術!和交換技術疊加技術一樣,是邏輯擴展內存的技術空!
虛擬內存技術基于一個非常重要的原則,即局部性原則:
1)時間的局部性:如果程序中的一條指令被執行,很可能很快又被執行;如果已經訪問了一些數據,很可能很快會再次被訪問 。(因為程序中有很多循環)
2)空局部性:程序一旦訪問一個內存位置,很有可能在不久的將來訪問附近的內存位置(因為內存中連續存儲了大量數據,程序的指令也是順序存儲在內存中的) 。
基于這種局部性原理,當一個程序加載到內存中時,只有這個程序中很快就會用到的部分才能加載到內存中,暫時不用的部分保留在外存(磁盤)中,程序才能正常執行 。
在程序執行過程中,當CPU所需信息不在內存中時,操作系統負責將所需信息從外存(磁盤)中轉移到內存中,然后繼續執行程序;
如果傳輸到內存時沒有足夠的內存空,操作系統負責將內存中暫時未使用的信息換出到外部內存 。
以上是虛擬內存技術 。

推薦閱讀