32位cpu如何訪問8G內存
32位cpu如何訪問8G內存
你還在為不知道32位cpu如何訪問8G內存而煩惱么?接下來是小編為大家收集的32位cpu如何訪問8G內存教程,希望能幫到大家。
32位cpu如何訪問8G內存:
PAE物理地址擴展可以讓系統(tǒng)最大能支持64G內存,具體實現(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 內核,讓系統(tǒng)內核支持PAE物理地址擴展
yum install kernel-PAE.i686
設置linux系統(tǒng)啟動,讓系統(tǒng)啟用PAE的內核系統(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)內核就能最大支持64G內存了。
通過查,cat /boot/config-*|grep PAE可以查看當前的支持情況。
眾所周知,所有的32位應用程序都有4GB的進程地址空間,因為32位地址最多可以映射4GB的內存(對于虛擬地址空間概念不太熟悉的朋友建議去看一下《Windows核心編程》這本書)。對于Microsoft Windows操作系統(tǒng),應用程序可以訪問2GB的進程地址空間(32位Linux可以訪問3GB地址空間),這就是稱為用戶模式的虛擬地址空間。這 2GB的用戶模式虛擬地址空間位于4GB地址空間的低一半,而與之相對應的高一半2GB地址空間由操作系統(tǒng)內核使用,因此被成為內核模式的虛擬地址空間。在一個進程中,所有的線程讀共享相同的2GB用戶模式虛擬地址空間。
對于一般的應用程序來說,2GB的地址空間是足夠使用的了,但是對于一些特殊的需要使用海量內存的應用程序(典型的例子是數(shù)據(jù)庫系統(tǒng))來說,2GB的地址空間就遠遠不夠了。為了緩解地址空間的不足,微軟提供了一個權宜的解決方案,所有從Windows 2000 Server開始的操作系統(tǒng)版本都提供了一個boot.ini啟動開關(/3GB),可以為應用程序提供訪問3GB的進程地址空間的能力,從而將內核模式的地址空間限定為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選項能夠將用戶模式的地址空間擴大50%(從2GB增加到3GB),但是對于數(shù)據(jù)庫系統(tǒng)這樣的應用程序來說,這1GB的地址空間的增加只能是杯水車薪,并不能解決多少問題,而且由于操作系統(tǒng)內核只能使用1GB地址空間,這樣可能會給操作系統(tǒng)的運行帶來一定的負面影響,因此除非沒有更好的解決方案,是不建議使用/3GB方式的。
鑒于像數(shù)據(jù)庫系統(tǒng)這樣的應用程序對海量內存的需求,Intel公司也覺得4GB的內存不夠用,因此就將CPU芯片中內存地址線由32根擴展到了36根(即最多64GB),這就是所謂的物理地址擴展(PAE:Physical Address Extension)。PAE使得操作系統(tǒng)或應用程序能夠最多使用64GB的物理內存,對于Windows系統(tǒng)(2000以上)來說,只需在 boot.ini文件中使用/PAE選項即可(類似于上面的/3GB選項)。需要提醒大家的是,如果沒有在boot.ini文件中使用/PAE選項,那么即使計算機已經配置了超過4GB的物理內存,在Windows操作系統(tǒng)中也不能使用超過4GB的那些內存(事實上,根據(jù)我的經驗,如果沒有使用/PAE選項,Windows系統(tǒng)最多只能識別3.25GB的物理內存,我也不清楚為什么不是4GB?如果有知道的,請告訴我一聲)。
雖然PAE使得在應用程序中使用超過4GB的物理內存成為可能,但是由于32位應用程序的虛擬地址空間并不隨著物理內存的增大而有任何變化,這意味著你不可能使用類似VirtualAlloc( GetCurrentProcess,2GB,...,...)這樣的函數(shù)=調直接分配接近用戶模式地址空間大小的內存區(qū)域。為了突破32位地址空間的限制,需要使用一種被成為地址窗口擴展(AWE:Address Windowing Extensions)的機制(參見上圖)。
AWE是Windows的內存管理功能的一組擴展,它使應用程序能夠使用的內存量超過通過標準32位尋址可使用的2~3GB內存。AWE允許應用程序獲取物理內存,然后將非分頁內存的視圖動態(tài)映射到32位地址空間。雖然32位地址空間限制為4GB,但是非分頁內存卻可以遠遠大于4GB。這使需要大量內存的應用程序(如大型數(shù)據(jù)庫系統(tǒng))能使用的內存量遠遠大于32位地址空間所支持的內存量。
在使用AWE機制時,需要注意以下幾點:
(1)AWE允許在32位體系結構上分配超過4GB的物理內存,只有當系統(tǒng)可用物理內存大于用戶模式的虛擬地址空間時,才應該使用AWE。
(2)若要使32位操作系統(tǒng)支持4GB以上的物理內存,必須在Boot.ini文件啟用/PAE選項。
(3)若在Boot.ini文件中啟用了/3GB選項,則操作系統(tǒng)最多能夠使用16GB的物理內存,因此如果實際的物理內存超過16GB,必須確保不使用/3GB選項。
(4)使用AWE分配的內存是非分頁的物理內存,這意味著這部分內存只能由分配的應用程序獨占使用,不能由操作系統(tǒng)或其他程序使用,直到這些內存被釋放為止,這與通常的VirtualAlloc函數(shù)分配的虛擬內存存在顯著的不同,它不會參與分頁替換。
看了“32位cpu如何訪問8G內存”還想看:
2.怎么查看win系統(tǒng)cpu核數(shù)和內存型號