32位作業系統使用4GB以上記憶體

2021-09-04 13:46:32 字數 2046 閱讀 3181

一、「/3gb」方式

1、記憶體分配

從80386開始,出於安全性的考慮(防止使用者訪問並篡改作業系統的關鍵部分),以及考慮到系統的穩定性,該系列的cpu可以執行於ring0至ring3從高到低4個許可權級別,對資料也提供相應的4個保護級別。規則如下:

(1)執行於較低階別的**不能隨意呼叫高階別的**和訪問高階別的資料。

(2)只有ring0層的**可以直接對物理硬體進行訪問。

為了相容其他平台,windows只用了2個執行級別:ring0、ring3 。分別對應以下2種處理器儲存模式:

(1)核心模式,對應ring0層。這是作業系統的核心部分,裝置驅動程式就是執行在該模式下。在此模式下,程式可以訪問所有的記憶體和硬體,並使用所有的處理器指令。

(2)使用者模式,對應ring3層。這是給使用者的應用程式用的,包括作業系統的使用者介面部分(即win32 api)以及所有的應用程式都執行在該級別。在此模式下的應用程式不能訪問其他程序的資源,除非通過api呼叫。

在32位作業系統中,最大定址空間為2^32=4gb。在預設情況下,作業系統將4gb的vas的高位分配給了核心模式,只有低位的2gb是使用者位址空間。

2、修改啟動選項

預設情況下,作業系統和應用程式各佔2gb記憶體。 對於windows server 2003,考慮在boot.ini檔案中使用「/3gb」方式減少核心模式占用的位址空間,從而使應用程式獲得更多的vas。

例如:[boot loader]

timeout=30

default-multi(0)disk(0)rdisk(0)partition(1)\winnt

[operating system]

default-multi(0)disk(0)rdisk(0)partition(1)\winnt="microsoft windows server 2003" /fastdetect /3gb

3、更多選項

如果不將全部3gb都用於應用程式,那麼可以在「/3gb」引數後面再加上「/userva」引數,精確指定記憶體位址空間分配給應用程式的大小。例如:「/userva=2500」表明配置2500mb記憶體的位址空間預留給應用程式,作業系統只保留的核心記憶體空間為:3072-2500=572mb。 

建議將userva的值設定在2800至3030之間。

二、pae與awe

1、擴充套件記憶體空間

intel pentium pro之後的處理器把管腳數從32增加到36,從而處理器現在定址能力達2^36=64gb。可是記憶體的位址表還只是支援4gb定址,為此intel推出一種記憶體對映模式,稱為實體地址擴充套件(pae)。這樣,系統就可以對映更多的記憶體空間,定址寬度可達標準的2倍。

windows的址址視窗擴充套件(awe)機制可以允許32位的應用程式訪問超過4gb的物理記憶體。虛擬記憶體視窗被用來快取awe讀寫訪問物理記憶體的請求。 

2、修改啟動引數

在boot.ini檔案通過新增「/pae」引數

3、對「/3gb」方式的影響

(1)「/3gb」引數必須放在「/pae」之後。

(2)通過「/3gb」引數壓縮了核心記憶體的空間,同進也壓縮了其中windows用於管理物理記憶體的表,因此,「/3gb」方式下最大只能管理16gb的物理記憶體。如果可用的物理記憶體超過16gb,要確保boot.ini檔案中沒有「/3gb」引數。 

4、注意事項

在windows server 2003或windows server 2008中啟用awe時,都必須鎖定記憶體中的頁,以防將它們寫入分頁檔案。

修改組策略,依次展開 「計算機配置-windows設定-安全設定-本地策略-使用者許可權分派」。例如,要防止sql server把記憶體寫入分頁檔案,就在「將頁鎖定在記憶體」策略中新增sql server啟動帳戶。

上述使用者的程序將資料保持在物理記憶體中,這樣就防止系統將資料分布到磁碟上的虛擬記憶體中。

在windows server 2008 r2中,此項組策略為「鎖定記憶體頁」。

32位系統最大只能支援4GB記憶體之由來

也許大家對這個問題都不陌生,實際裝過系統用過電腦的朋友可能都有這樣的經歷 自己電腦配的是4g的記憶體條,可是裝完系統之後發現電腦上顯示的只有3.2g左右可用記憶體,其它的記憶體跑到哪去了?網上也有很多朋友給出了一些解釋,大部分我覺得都沒有解釋得很清楚,今天我們就來看一下其中的具體緣由。在此之前先來了...

32位系統最大只能支援4GB記憶體之由來

也許大家對這個問題都不陌生,實際裝過系統用過電腦的朋友可能都有這樣的經歷 自己電腦配的是4g的記憶體條,可是裝完系統之後發現電腦上顯示的只有3.2g左右可用記憶體,其它的記憶體跑到哪去了?網上也有很多朋友給出了一些解釋,大部分我覺得都沒有解釋得很清楚,今天我們就來看一下其中的具體緣由。在此之前先來了...

32位系統最大只能支援4GB記憶體之由來

也許大家對這個問題都不陌生,實際裝過系統用過電腦的朋友可能都有這樣的經歷 自己電腦配的是4g的記憶體條,可是裝完系統之後發現電腦上顯示的只有3.2g左右可用記憶體,其它的記憶體跑到哪去了?網上也有很多朋友給出了一些解釋,大部分我覺得都沒有解釋得很清楚,今天我們就來看一下其中的具體緣由。在此之前先來了...