国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

大容量內存系統的管理

2014-07-28 04:56孫梅王超
電腦知識與技術 2014年16期
關鍵詞:大容量磁盤內核

孫梅 王超

摘要:實驗室準備批量更新硬件設備,升級到8GB內存。但我們在樣機上安裝了32位的windows7操作系統,發(fā)現可以識別到8G內存,但是只能使用3.5G內存。如此就不能享受大容量內存的優(yōu)勢,更換64位系統肯定能解決這個問題,但是實驗室的某些軟件在64位環(huán)境中卻是異常。為了解決這個矛盾,我們做出下列實踐。

關鍵詞:PAE;32位;64位

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)16-3821-03

Abstract:The PC in ourLaboratory needs to update to 8GB RAM.But The OS of win7 which is 32bit can only use the 3.5GB RAM,although other RAM can be detected. So we can not enjoy the advantage of Mass RAM.It is well-known that 64Bit OS support more than 8GB RAM. But some of our APP can notrun well in 64Bit system . We make research agendason solving the problem.

Key words: PAE;32bit;64bit

半導體器件價格的下降目前還是遵守摩爾定律,大容量、高速內存的普及勢不可擋。但是目前卻出現了類似上世紀的軟件危機的狀況,軟件的應用對大容量內存的使用出現適應困難的局面,雖然出現了64位的操作系統,但是32位的應用程序還是占相當大的比重,完全過渡到64位時代還需要一個過程。如何更快的融合進64位系統就成為了研究的熱點。

1 分析原因

上世紀80年代從386開始,就已經有了32位的CPU,內存地址線是32位,這樣理論上最多可尋址4GB的RAM空間,但是主流的應用程序很長一段時間用不上這么大的內存,新千年后進一步普及到了36條地址線,使得理論尋址空間擴展到了128GB,同時也出現了PAE技術,即Physical Address Extension——物理地址擴展。

這樣在32位的操作系統中,一些應用程序,主要是驅動程序就對“多余”的地址線進行編程,用來尋址廠商自己設備的存儲空間。所以對于一般的用戶,微軟的windows系統,如XP或win7等,在內核級的代碼中對用戶能使用的最大內存數作出了限制,這也是出于安全的考慮,因為如果用戶的應用程序使用的內存空間和特定程序如驅動程序使用的空間沖突,就很容易頻繁發(fā)生一致性錯誤,造成令所有人厭煩的藍屏現象。

2 解決方案

出于安全的考慮,我們最好選擇原生支持大內存的操作系統,例如64位的win7或XP,當然也可以選擇32位的windows服務器產品,該類產品對于PAE的支持良好,而且對用戶使用的最大內存地址沒有限制。對于不玩游戲的用戶,真的很適合采用這類服務器產品,本人就是,但它不符合教學大綱,而且在安裝windowsLive時出現錯誤。

我們也嘗試安裝64位的win7,相對于64位的XP,它的WoW64改進還是蠻大的,WoW64(Windows-on-windows 64-bit)是windows操作系統的一個子系統,理論上它允許我們在所有的64位的windows上執(zhí)行32位的程序。Intel65(AMD64/X64)上的WoW64不需要模擬指令。WoW64子系統只用通過在32位應用程序和64位windows API之間增加一層,來實現32位環(huán)境。 它并不是軟件模擬,所以這層的效率消耗在1%以內。但是經過測試,在運行我們的考試軟件或者本單位的撥號軟件時還是發(fā)生了兼容性的問題,而且暫時找不到這些軟件的64位的版本。其他的主流軟件一般都能找到相應的64位版本,這樣就不能保證以后不出現類似的問題。所以我們又需要尋找其他的解決方式。

32位的操作系統也是支持PAE的,只是被限制了[3],如果能破解這個限制就可同時解決兼容性和應用大容量內存的問題了。通過與windows Server 2008內核類比,我們尋找破解win7系統內核的方法。這種方法難度較大,但帶來的不兼容性則小的多,并且可以完美支持多至 128G 的內存!他的具體做法如下:為避免原始內核被破壞,首先復制系統內核文件 ntkrnlpa.exe,并命名為 ntkr128g.exe,之后的修改都在 ntkr128g.exe 上進行。用 hex 編輯器打開 ntkr128g.exe,查找下列兩個字符串:

特征串1:7C 11 8B 45 FC 85 C0 74 0a

特征串2:7C 10 8B 45 FC 85 C0 74 09

兩個特征串在內核中都出現且只出現一次,雖然特征串內容不同,但修改方式相同:把 0x8B 開始的 7 個字節(jié)修改成:

后7個字節(jié)修改成:B8 00 00 02 00 90 90

對于目前市場上的兩個版本的 Vista 和 Windows 7,修改處的文件偏移地址(即 0x8B 字節(jié)的位置)分別如下:

接下來測試加載修改后的內核。首先需要為修改后的內核重新計算 checksum 和生成數字簽名。在命令行中輸入下面3個命令:

editbin /release ntkr128g.exe

makecert -r -ss my -n "CN=My Own Testing Authority"

signtool sign -s my -n "My Own Testing Authority" ntkr128g.exeendprint

上述簽名過程需要用到三個命令行工具,其中 editbin 在 Visual Studio 中自帶,而 makecert 和 signtool 在 Windows SDK 6.0 中自帶,我們安裝了 Visual Studio 2008,第一個工具可以在 %VS2008_Dir%\ VC\ Bin\ 中找到,后兩個工具可以在 %ProgramFiles%\ Microsoft SDKs\ Windows\ v6.0A\ bin\ 中找到。Visual Studio 2008 Express 和 Windows SDK 6.0 都可以從微軟網站免費下載。

最后在系統啟動菜單中加入一條新的啟動菜單項(需以管理員方式運行命令提示符)

bcdedit /copy {current} /d "Windows 7 With More Than 4GB"

運行成功后,該命令會返回一個 GUID 值,記錄下該 GUID 值,并運行下面三條,用之前返回的 GUID 值替換命令中的 guid,而且命令中包含 guid 的大括號也要輸入:

bcdedit /set {guid} paeForceEnable

bcdedit /set {guid} kernel ntkr128g.exe

bcdedit /set {guid} testsigning on

最后,重啟系統并在啟動菜單中選擇 "Windows 7 With More Than 4GB" 一項即可。由于修改了內核,系統啟動后桌面上會顯示“Test Mode”的提示。

3 衍生問題

不過,這個方法也有限制,一些不規(guī)范的驅動程序不能支持大于4G的內存,會導致系統崩潰。不過這些主要是一些使用大容量緩存的設備驅動,例如集成顯卡或者視頻采集卡,他們的緩存都常常超過1GB了,經過測試,在開啟cpu的集成核心顯卡與獨立顯卡交火時,就很容易藍屏,當把核心顯卡屏蔽時穩(wěn)定性就大為提高,基本杜絕了藍屏,甚至不同品牌內存條的混用也經常成功。而目前需要同時雙顯卡交火應用的程序很少,在實驗室用于教學的軟件就更不需要,況且獨立顯卡的性能就已經很強大了,萬一損壞了也很容易更換。

4 總結

對于單個任務,大容量內存的應用意義不大,因為用戶程序的任務是向操作系統申請內存的,操作系統總要設定一個可以分配的最大值[4],但是還是能支持64位編程定義的數據類型,保證其在分配內存時地址是連續(xù)不被截斷的[1]。對于內存讀寫速度的提升也是沒有幫助的,因為速度受限于內存顆粒設計時鎖定的頻率,且受到主板芯片的影響。但是大容量內存對于操作系統多任務性能的提升卻是很明顯的,在上程序設計課、操作系統或者數據庫等課程時,最多的應用就是IDE如Visual Studio和Eclipse、虛擬機、sqlServer等數據庫,這些都是內存消耗的大戶[2]。從實際測試情況看,這些應用開啟多個實例任務時,四核CPU加上4GB內存還是夠用的,不會發(fā)生死機的現象,但是任務間的切換就不那么流暢了,因為切換的過程中還是會涉及到讀寫硬盤的緩存,主流硬盤又是機械硬盤,隨著使用次數的最多,性能必然會有損耗。

安裝8GB內存條完畢后,打開任務管理器,可以看到8GB物理內存:

8G內存使用后,應該會減少磁盤緩存的讀寫次數。先來看看內存資源使用情況:

此時我們開啟了2個IDE,1個瀏覽器,2個通訊軟件,Windows Live Writer,還有若干小應用程序。已經使用的內存4012M,看來4G內存確實是不夠用的。為什么以前不覺得4G不夠呢?因為以前開啟了這么多程序,頁面文件的使用會明顯增加,而現在頁面文件的使用量查得為147M:

所以物理內存占用更多了。這樣帶來的直接好處就是程序響應更快。即使開啟了多個大內存任務,其使用依然流程,跟僅開啟一個這樣的任務時沒有什么區(qū)別?,F在使用多個IDE,瞬間切換,立即使用,不會有任何延遲。

我們再查看一下內存資源分配圖,其中Standby的內存為3869M。Standby的內存其實就是原來的磁盤緩存數據。接近4G的磁盤緩存,保證了我常用的磁盤文件能以最快的速度讀寫。這個感受最直觀的應該是在游戲中,切換場景的速度明顯加快,磁盤讀取明顯減少,不用長時間等待了。

根據實驗室計算機的使用情況,常常會開機八、九個小時供多個批次的學生參加考試,安裝了大容量內存后,就可以保持內存中的緩存數據,新批次的學生來運行考試相關的程序不用重新加載,操作快速如舊。

能夠保證持續(xù)流暢的使用體驗,是大容量內存的優(yōu)勢。4GB內存對于運行程序和游戲,確實是足夠的。但更多的內存能夠提供更流暢的用戶體驗,可以使PC更像家電,速度體驗始終如一。8GB內存是個新的起點,畢竟只夠提供4G緩存,16G或更多內存也會有明顯效果。配合寫緩存和休眠模式,PC的性能可以不再受限于硬盤。

同時,我們將大容量內存模式配置成可選擇的,若對程序或設備的穩(wěn)定性有特殊的要求,開機時任課教師或學生可以在bootLoader選擇進入普通模式,這樣就和一般的32位win7安裝版無異,只能使用4GB以內的RAM。

參考文獻:

[1] 陳樂,張延園,樊龍.開發(fā)和部署基于windows平臺的64位應用程序微處理機[J].微處理機,2008,29(6):136-142.

[2] 張成,高楊.32位Windows下Oracle使用大內存的方法 科技視界[J].科技視界,2012,(25):188-189.

[3] MICROSOFT.inc TechNet技術資源庫[EB/OL]http://technet.microsoft.com/zh-cn/library/dn482072.aspx.

[4] 韓敬偉,李樹彪.淺析WINDOWS環(huán)境下的內存分頁機制國外電子測量技術[J]. 國外電子測量技術,2008,27(6):35-38.endprint

上述簽名過程需要用到三個命令行工具,其中 editbin 在 Visual Studio 中自帶,而 makecert 和 signtool 在 Windows SDK 6.0 中自帶,我們安裝了 Visual Studio 2008,第一個工具可以在 %VS2008_Dir%\ VC\ Bin\ 中找到,后兩個工具可以在 %ProgramFiles%\ Microsoft SDKs\ Windows\ v6.0A\ bin\ 中找到。Visual Studio 2008 Express 和 Windows SDK 6.0 都可以從微軟網站免費下載。

最后在系統啟動菜單中加入一條新的啟動菜單項(需以管理員方式運行命令提示符)

bcdedit /copy {current} /d "Windows 7 With More Than 4GB"

運行成功后,該命令會返回一個 GUID 值,記錄下該 GUID 值,并運行下面三條,用之前返回的 GUID 值替換命令中的 guid,而且命令中包含 guid 的大括號也要輸入:

bcdedit /set {guid} paeForceEnable

bcdedit /set {guid} kernel ntkr128g.exe

bcdedit /set {guid} testsigning on

最后,重啟系統并在啟動菜單中選擇 "Windows 7 With More Than 4GB" 一項即可。由于修改了內核,系統啟動后桌面上會顯示“Test Mode”的提示。

3 衍生問題

不過,這個方法也有限制,一些不規(guī)范的驅動程序不能支持大于4G的內存,會導致系統崩潰。不過這些主要是一些使用大容量緩存的設備驅動,例如集成顯卡或者視頻采集卡,他們的緩存都常常超過1GB了,經過測試,在開啟cpu的集成核心顯卡與獨立顯卡交火時,就很容易藍屏,當把核心顯卡屏蔽時穩(wěn)定性就大為提高,基本杜絕了藍屏,甚至不同品牌內存條的混用也經常成功。而目前需要同時雙顯卡交火應用的程序很少,在實驗室用于教學的軟件就更不需要,況且獨立顯卡的性能就已經很強大了,萬一損壞了也很容易更換。

4 總結

對于單個任務,大容量內存的應用意義不大,因為用戶程序的任務是向操作系統申請內存的,操作系統總要設定一個可以分配的最大值[4],但是還是能支持64位編程定義的數據類型,保證其在分配內存時地址是連續(xù)不被截斷的[1]。對于內存讀寫速度的提升也是沒有幫助的,因為速度受限于內存顆粒設計時鎖定的頻率,且受到主板芯片的影響。但是大容量內存對于操作系統多任務性能的提升卻是很明顯的,在上程序設計課、操作系統或者數據庫等課程時,最多的應用就是IDE如Visual Studio和Eclipse、虛擬機、sqlServer等數據庫,這些都是內存消耗的大戶[2]。從實際測試情況看,這些應用開啟多個實例任務時,四核CPU加上4GB內存還是夠用的,不會發(fā)生死機的現象,但是任務間的切換就不那么流暢了,因為切換的過程中還是會涉及到讀寫硬盤的緩存,主流硬盤又是機械硬盤,隨著使用次數的最多,性能必然會有損耗。

安裝8GB內存條完畢后,打開任務管理器,可以看到8GB物理內存:

8G內存使用后,應該會減少磁盤緩存的讀寫次數。先來看看內存資源使用情況:

此時我們開啟了2個IDE,1個瀏覽器,2個通訊軟件,Windows Live Writer,還有若干小應用程序。已經使用的內存4012M,看來4G內存確實是不夠用的。為什么以前不覺得4G不夠呢?因為以前開啟了這么多程序,頁面文件的使用會明顯增加,而現在頁面文件的使用量查得為147M:

所以物理內存占用更多了。這樣帶來的直接好處就是程序響應更快。即使開啟了多個大內存任務,其使用依然流程,跟僅開啟一個這樣的任務時沒有什么區(qū)別?,F在使用多個IDE,瞬間切換,立即使用,不會有任何延遲。

我們再查看一下內存資源分配圖,其中Standby的內存為3869M。Standby的內存其實就是原來的磁盤緩存數據。接近4G的磁盤緩存,保證了我常用的磁盤文件能以最快的速度讀寫。這個感受最直觀的應該是在游戲中,切換場景的速度明顯加快,磁盤讀取明顯減少,不用長時間等待了。

根據實驗室計算機的使用情況,常常會開機八、九個小時供多個批次的學生參加考試,安裝了大容量內存后,就可以保持內存中的緩存數據,新批次的學生來運行考試相關的程序不用重新加載,操作快速如舊。

能夠保證持續(xù)流暢的使用體驗,是大容量內存的優(yōu)勢。4GB內存對于運行程序和游戲,確實是足夠的。但更多的內存能夠提供更流暢的用戶體驗,可以使PC更像家電,速度體驗始終如一。8GB內存是個新的起點,畢竟只夠提供4G緩存,16G或更多內存也會有明顯效果。配合寫緩存和休眠模式,PC的性能可以不再受限于硬盤。

同時,我們將大容量內存模式配置成可選擇的,若對程序或設備的穩(wěn)定性有特殊的要求,開機時任課教師或學生可以在bootLoader選擇進入普通模式,這樣就和一般的32位win7安裝版無異,只能使用4GB以內的RAM。

參考文獻:

[1] 陳樂,張延園,樊龍.開發(fā)和部署基于windows平臺的64位應用程序微處理機[J].微處理機,2008,29(6):136-142.

[2] 張成,高楊.32位Windows下Oracle使用大內存的方法 科技視界[J].科技視界,2012,(25):188-189.

[3] MICROSOFT.inc TechNet技術資源庫[EB/OL]http://technet.microsoft.com/zh-cn/library/dn482072.aspx.

[4] 韓敬偉,李樹彪.淺析WINDOWS環(huán)境下的內存分頁機制國外電子測量技術[J]. 國外電子測量技術,2008,27(6):35-38.endprint

上述簽名過程需要用到三個命令行工具,其中 editbin 在 Visual Studio 中自帶,而 makecert 和 signtool 在 Windows SDK 6.0 中自帶,我們安裝了 Visual Studio 2008,第一個工具可以在 %VS2008_Dir%\ VC\ Bin\ 中找到,后兩個工具可以在 %ProgramFiles%\ Microsoft SDKs\ Windows\ v6.0A\ bin\ 中找到。Visual Studio 2008 Express 和 Windows SDK 6.0 都可以從微軟網站免費下載。

最后在系統啟動菜單中加入一條新的啟動菜單項(需以管理員方式運行命令提示符)

bcdedit /copy {current} /d "Windows 7 With More Than 4GB"

運行成功后,該命令會返回一個 GUID 值,記錄下該 GUID 值,并運行下面三條,用之前返回的 GUID 值替換命令中的 guid,而且命令中包含 guid 的大括號也要輸入:

bcdedit /set {guid} paeForceEnable

bcdedit /set {guid} kernel ntkr128g.exe

bcdedit /set {guid} testsigning on

最后,重啟系統并在啟動菜單中選擇 "Windows 7 With More Than 4GB" 一項即可。由于修改了內核,系統啟動后桌面上會顯示“Test Mode”的提示。

3 衍生問題

不過,這個方法也有限制,一些不規(guī)范的驅動程序不能支持大于4G的內存,會導致系統崩潰。不過這些主要是一些使用大容量緩存的設備驅動,例如集成顯卡或者視頻采集卡,他們的緩存都常常超過1GB了,經過測試,在開啟cpu的集成核心顯卡與獨立顯卡交火時,就很容易藍屏,當把核心顯卡屏蔽時穩(wěn)定性就大為提高,基本杜絕了藍屏,甚至不同品牌內存條的混用也經常成功。而目前需要同時雙顯卡交火應用的程序很少,在實驗室用于教學的軟件就更不需要,況且獨立顯卡的性能就已經很強大了,萬一損壞了也很容易更換。

4 總結

對于單個任務,大容量內存的應用意義不大,因為用戶程序的任務是向操作系統申請內存的,操作系統總要設定一個可以分配的最大值[4],但是還是能支持64位編程定義的數據類型,保證其在分配內存時地址是連續(xù)不被截斷的[1]。對于內存讀寫速度的提升也是沒有幫助的,因為速度受限于內存顆粒設計時鎖定的頻率,且受到主板芯片的影響。但是大容量內存對于操作系統多任務性能的提升卻是很明顯的,在上程序設計課、操作系統或者數據庫等課程時,最多的應用就是IDE如Visual Studio和Eclipse、虛擬機、sqlServer等數據庫,這些都是內存消耗的大戶[2]。從實際測試情況看,這些應用開啟多個實例任務時,四核CPU加上4GB內存還是夠用的,不會發(fā)生死機的現象,但是任務間的切換就不那么流暢了,因為切換的過程中還是會涉及到讀寫硬盤的緩存,主流硬盤又是機械硬盤,隨著使用次數的最多,性能必然會有損耗。

安裝8GB內存條完畢后,打開任務管理器,可以看到8GB物理內存:

8G內存使用后,應該會減少磁盤緩存的讀寫次數。先來看看內存資源使用情況:

此時我們開啟了2個IDE,1個瀏覽器,2個通訊軟件,Windows Live Writer,還有若干小應用程序。已經使用的內存4012M,看來4G內存確實是不夠用的。為什么以前不覺得4G不夠呢?因為以前開啟了這么多程序,頁面文件的使用會明顯增加,而現在頁面文件的使用量查得為147M:

所以物理內存占用更多了。這樣帶來的直接好處就是程序響應更快。即使開啟了多個大內存任務,其使用依然流程,跟僅開啟一個這樣的任務時沒有什么區(qū)別。現在使用多個IDE,瞬間切換,立即使用,不會有任何延遲。

我們再查看一下內存資源分配圖,其中Standby的內存為3869M。Standby的內存其實就是原來的磁盤緩存數據。接近4G的磁盤緩存,保證了我常用的磁盤文件能以最快的速度讀寫。這個感受最直觀的應該是在游戲中,切換場景的速度明顯加快,磁盤讀取明顯減少,不用長時間等待了。

根據實驗室計算機的使用情況,常常會開機八、九個小時供多個批次的學生參加考試,安裝了大容量內存后,就可以保持內存中的緩存數據,新批次的學生來運行考試相關的程序不用重新加載,操作快速如舊。

能夠保證持續(xù)流暢的使用體驗,是大容量內存的優(yōu)勢。4GB內存對于運行程序和游戲,確實是足夠的。但更多的內存能夠提供更流暢的用戶體驗,可以使PC更像家電,速度體驗始終如一。8GB內存是個新的起點,畢竟只夠提供4G緩存,16G或更多內存也會有明顯效果。配合寫緩存和休眠模式,PC的性能可以不再受限于硬盤。

同時,我們將大容量內存模式配置成可選擇的,若對程序或設備的穩(wěn)定性有特殊的要求,開機時任課教師或學生可以在bootLoader選擇進入普通模式,這樣就和一般的32位win7安裝版無異,只能使用4GB以內的RAM。

參考文獻:

[1] 陳樂,張延園,樊龍.開發(fā)和部署基于windows平臺的64位應用程序微處理機[J].微處理機,2008,29(6):136-142.

[2] 張成,高楊.32位Windows下Oracle使用大內存的方法 科技視界[J].科技視界,2012,(25):188-189.

[3] MICROSOFT.inc TechNet技術資源庫[EB/OL]http://technet.microsoft.com/zh-cn/library/dn482072.aspx.

[4] 韓敬偉,李樹彪.淺析WINDOWS環(huán)境下的內存分頁機制國外電子測量技術[J]. 國外電子測量技術,2008,27(6):35-38.endprint

猜你喜歡
大容量磁盤內核
強化『高新』內核 打造農業(yè)『硅谷』
解決Windows磁盤簽名沖突
基于嵌入式Linux內核的自恢復設計
Linux內核mmap保護機制研究
修改磁盤屬性
12-20升大容量PET瓶裝式吹瓶機
磁盤組群組及iSCSI Target設置
創(chuàng)建VSAN群集
微生物內核 生態(tài)型農資
能變出雨衣的18升大容量背包
崇左市| 和田市| 泗阳县| 通山县| 上犹县| 高邑县| 梓潼县| 云霄县| 遵义市| 石景山区| 招远市| 南雄市| 出国| 松江区| 阳春市| 九寨沟县| 金平| 桃园县| 交口县| 辉县市| 大同市| 甘德县| 连平县| 建昌县| 尉犁县| 隆安县| 海安县| 绵阳市| 泰来县| 奎屯市| 阳信县| 贡觉县| 成武县| 沙雅县| 扎鲁特旗| 万宁市| 宾阳县| 嘉祥县| 吉林省| 观塘区| 绵阳市|