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