發布時間:2024-03-29 文章來源:深度系統下載 瀏覽:
一、什么時虛擬內存? ![]() 這個虛擬內存空間大小是由什么決定的呢? 虛擬內存的大小,由于CPU的位數決定的,也就是CPU能尋址多少位,虛擬內存就有多大 32位的CPU,虛擬內存的空間就是4GB 64位的CPU,虛擬內存空間就是:4G*4G=16G CPU在處理數據時,都在是虛擬內存中進行讀寫操作,但是畢竟是虛擬內存,最終的數據還是要存放在真正的物理內存上的。 ![]() 這時呢還需要內存管理單無MMU和操作系統一起合作,來實現虛擬內存和物理內存之間的映射。 MMU是Memory Management Unit的縮寫,中文名是內存管理單元,有時稱作分頁內存管理單元(英語:paged memory management unit,縮寫為PMMU)。它是一種負責處理中央處理器(CPU)的內存訪問請求的計算機硬件。 ![]() 這種虛擬內存與物理內存之前的映射,對用戶和程序員是無感的。 二、使用虛擬內存有什么好處呢? 1、簡化程序運行條件,虛擬內存為程序加載提供了很大的靈活性。 現在比如一個程序直接跑在物理內存上,有很多時候,很多程序都需要調試,如果都直接跑到物理內存上,現在就要一直占用著實際的物理內存,如果程序調試的多,那么物理內存就會被占用的很大。 ![]() 現在如果說,所有的程序都在虛擬內存上調試使用,這些程序如果映射到物理內存上,這個是由CPU靈活調用的,不需要我們參與,這樣就可以節省很大一部分內存空間。 ![]() 2、隔離進程 當有一個程序員,或者用戶,要使用兩個相同的程序進行編譯的時候,會出現兩個相同的虛擬內存,然后映射到不同的物理內存存儲模塊內,當有一個程序進程死掉的時候,不影響另外一個進程。 ![]() 3、有效使用內存 ![]() 舉一個簡單的例子,當我們系統開機時,加載的字體文件,直接加載到虛擬內存中,當我們進入系統后,有些程序需要使用到這些字體時,那么就可以共享使用內存中的字體,如果進入系統需要編輯字體文件時,這時就需要這程序自己單獨再copy一份字體在內存中進行修改。 ![]() 4、擴大內存應用 ![]() ![]() 很重要的知識點: swap 假設我們現在的操作系統程序已經全部用完了物理內存,簡單起見,我們通過設置頁表讓虛擬內存頁和物理內存頁,一一對應,此時,如果還有程序還需要申請一個內存頁,這時應該如何處理呢? ![]() 為了讓程序繼續運行下去,操作系統會通過一定的算法,選擇某一個內存頁,暫時轉移到硬盤上,同時更新一下對應的頁表的信息,記錄一下內存頁所在的:硬盤扇區號碼,這樣就臨時騰出了一個空間的內存頁,更新一個頁表,完成內存映射后,就可以返回給程序使用了 那如果程序需要讀取:剛才轉移到硬盤上的內存頁,那該怎么辦呢?顯然,這時仍然沒有空宋的物理內存可供使用,還是老辦法,操作系統再選擇一個內存頁,將它也暫時轉移到硬盤上面,并更新一下頁表。 ![]() 這樣就又臨時騰出了一個空閑的內存頁,此時操作系統,就可以根據頁表上的硬盤扇區號碼,把存在硬盤上的內存頁,讀取到剛剛空閑的內存頁上了,當然由于改變了位置,頁表也需要更新一下,不得不說, 這是一個偉大的功能,重點來了,當你的電腦需要使用swap的時候,這時就需要使用到硬盤的讀取,因為swap是需要使用到硬盤的讀寫速度的,如果是機械硬盤那么電腦就會變慢了,如果是固態盤那還是可以的。 三、虛擬內存如何設置大小 在運行中sysdm.cpl打開系統屬性。 ![]() 找到高級--設置 ![]() 在性能選項中,找到高級--更改。 ![]() ![]() 我們可以看一下,我電腦物理內存是12G,虛擬內存推薦的大小是2399MB=2.3GB ![]() 系統中存放的內存分頁文件在哪呢? pagefile.sys即安裝過程中創建的虛擬內存頁面文件。這個文件的大小是自己系統虛擬內存設置的最小值的大小。假如虛擬內存的設置為800MB-1600MB那么你在自己的設定驅動盤下面就可看到大小為800MB的pagefile.sys文件 ![]() Pagefile.sys是用于管理虛擬內存的Windows分頁(或交換)文件。它在系統物理內存 RAM 不足時使用。 Windows使用pagefile.sys來存儲數據,否則這些數據將位于計算機的隨機存取存儲器 RAM 中。有時根本沒有足夠的容量在RAM中保存所有必要的文件,因此pagefile.sys位于您的硬盤驅動器或SSD C:\pagefile.sys 上,隨時準備在必要時接收數據,通常是最少使用的文件在RAM中被“分頁”到這個文件中。 |