32位cpu如何訪問8G內(nèi)存
32位cpu如何訪問8G內(nèi)存
你還在為不知道32位cpu如何訪問8G內(nèi)存而煩惱么?接下來是小編為大家收集的32位cpu如何訪問8G內(nèi)存教程,希望能幫到大家。
32位cpu如何訪問8G內(nèi)存:
PAE物理地址擴展可以讓系統(tǒng)最大能支持64G內(nèi)存,具體實現(xiàn)方法如:
windows系統(tǒng)的配置
右擊桌面“我的電腦”屬性,選擇“高級”,再點擊“啟動與恢復”下面的“設置”,再點擊框中的“編輯”
鍵,此時會打開BOOT.INI文件,修改此文件,在后面添加空格/PAE,如下所示
multi(0)disk(0)rdisk(0)partition(2)\%systemroot%="Windows Server 2003, Datacenter Edition" /PAE
在“文件”菜單上,單擊“保存”。 為使更改生效,請重新啟動計算機。
linux系統(tǒng)的配置
安裝 kernel-PAE.i686 內(nèi)核,讓系統(tǒng)內(nèi)核支持PAE物理地址擴展
yum install kernel-PAE.i686
設置linux系統(tǒng)啟動,讓系統(tǒng)啟用PAE的內(nèi)核系統(tǒng)
# vi /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/sda1
# initrd /boot/initrd-version.img
#boot=/dev/sda
default=0 (將default=1修改為default=0就可以了)
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.1.6.el5PAE) 升級后的系統(tǒng)引導
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-92.1.6.el5PAE ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-92.1.6.el5PAE.img
title CentOS (2.6.18-8.el5) 升級前的系統(tǒng)引導
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-8.el5.img
保存后重啟linux,系統(tǒng)內(nèi)核就能最大支持64G內(nèi)存了。
通過查,cat /boot/config-*|grep PAE可以查看當前的支持情況。
眾所周知,所有的32位應用程序都有4GB的進程地址空間,因為32位地址最多可以映射4GB的內(nèi)存(對于虛擬地址空間概念不太熟悉的朋友建議去看一下《Windows核心編程》這本書)。對于Microsoft Windows操作系統(tǒng),應用程序可以訪問2GB的進程地址空間(32位Linux可以訪問3GB地址空間),這就是稱為用戶模式的虛擬地址空間。這 2GB的用戶模式虛擬地址空間位于4GB地址空間的低一半,而與之相對應的高一半2GB地址空間由操作系統(tǒng)內(nèi)核使用,因此被成為內(nèi)核模式的虛擬地址空間。在一個進程中,所有的線程讀共享相同的2GB用戶模式虛擬地址空間。
對于一般的應用程序來說,2GB的地址空間是足夠使用的了,但是對于一些特殊的需要使用海量內(nèi)存的應用程序(典型的例子是數(shù)據(jù)庫系統(tǒng))來說,2GB的地址空間就遠遠不夠了。為了緩解地址空間的不足,微軟提供了一個權(quán)宜的解決方案,所有從Windows 2000 Server開始的操作系統(tǒng)版本都提供了一個boot.ini啟動開關(guān)(/3GB),可以為應用程序提供訪問3GB的進程地址空間的能力,從而將內(nèi)核模式的地址空間限定為1GB。以下就是一個開啟了3GB選項的boot.ini文件示例:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows Server 2003, Enterprise" /fastdetect /3GB
雖然使用/3GB選項能夠?qū)⒂脩裟J降牡刂房臻g擴大50%(從2GB增加到3GB),但是對于數(shù)據(jù)庫系統(tǒng)這樣的應用程序來說,這1GB的地址空間的增加只能是杯水車薪,并不能解決多少問題,而且由于操作系統(tǒng)內(nèi)核只能使用1GB地址空間,這樣可能會給操作系統(tǒng)的運行帶來一定的負面影響,因此除非沒有更好的解決方案,是不建議使用/3GB方式的。
鑒于像數(shù)據(jù)庫系統(tǒng)這樣的應用程序?qū)A績?nèi)存的需求,Intel公司也覺得4GB的內(nèi)存不夠用,因此就將CPU芯片中內(nèi)存地址線由32根擴展到了36根(即最多64GB),這就是所謂的物理地址擴展(PAE:Physical Address Extension)。PAE使得操作系統(tǒng)或應用程序能夠最多使用64GB的物理內(nèi)存,對于Windows系統(tǒng)(2000以上)來說,只需在 boot.ini文件中使用/PAE選項即可(類似于上面的/3GB選項)。需要提醒大家的是,如果沒有在boot.ini文件中使用/PAE選項,那么即使計算機已經(jīng)配置了超過4GB的物理內(nèi)存,在Windows操作系統(tǒng)中也不能使用超過4GB的那些內(nèi)存(事實上,根據(jù)我的經(jīng)驗,如果沒有使用/PAE選項,Windows系統(tǒng)最多只能識別3.25GB的物理內(nèi)存,我也不清楚為什么不是4GB?如果有知道的,請告訴我一聲)。
雖然PAE使得在應用程序中使用超過4GB的物理內(nèi)存成為可能,但是由于32位應用程序的虛擬地址空間并不隨著物理內(nèi)存的增大而有任何變化,這意味著你不可能使用類似VirtualAlloc( GetCurrentProcess,2GB,...,...)這樣的函數(shù)=調(diào)直接分配接近用戶模式地址空間大小的內(nèi)存區(qū)域。為了突破32位地址空間的限制,需要使用一種被成為地址窗口擴展(AWE:Address Windowing Extensions)的機制(參見上圖)。
AWE是Windows的內(nèi)存管理功能的一組擴展,它使應用程序能夠使用的內(nèi)存量超過通過標準32位尋址可使用的2~3GB內(nèi)存。AWE允許應用程序獲取物理內(nèi)存,然后將非分頁內(nèi)存的視圖動態(tài)映射到32位地址空間。雖然32位地址空間限制為4GB,但是非分頁內(nèi)存卻可以遠遠大于4GB。這使需要大量內(nèi)存的應用程序(如大型數(shù)據(jù)庫系統(tǒng))能使用的內(nèi)存量遠遠大于32位地址空間所支持的內(nèi)存量。
在使用AWE機制時,需要注意以下幾點:
(1)AWE允許在32位體系結(jié)構(gòu)上分配超過4GB的物理內(nèi)存,只有當系統(tǒng)可用物理內(nèi)存大于用戶模式的虛擬地址空間時,才應該使用AWE。
(2)若要使32位操作系統(tǒng)支持4GB以上的物理內(nèi)存,必須在Boot.ini文件啟用/PAE選項。
(3)若在Boot.ini文件中啟用了/3GB選項,則操作系統(tǒng)最多能夠使用16GB的物理內(nèi)存,因此如果實際的物理內(nèi)存超過16GB,必須確保不使用/3GB選項。
(4)使用AWE分配的內(nèi)存是非分頁的物理內(nèi)存,這意味著這部分內(nèi)存只能由分配的應用程序獨占使用,不能由操作系統(tǒng)或其他程序使用,直到這些內(nèi)存被釋放為止,這與通常的VirtualAlloc函數(shù)分配的虛擬內(nèi)存存在顯著的不同,它不會參與分頁替換。
看了“32位cpu如何訪問8G內(nèi)存”還想看:
2.怎么查看win系統(tǒng)cpu核數(shù)和內(nèi)存型號
3.32位系統(tǒng)最大只能支持4GB內(nèi)存的原因