虛擬記憶體設定教程

  很多電腦小白對電腦虛擬記憶體設定一無所知,虛擬記憶體怎麼設定最好?下面就帶來虛擬記憶體正確設定方法,跟著小編一起來看看。

  

  虛擬記憶體怎麼設定最好的辦法:

  根據電腦記憶體的大小和特性,可分為下面幾種:

  a、電腦記憶體小於256M,其虛擬記憶體應設定為實體記憶體的2倍

  b、電腦記憶體大於256M,其虛擬記憶體應設定為實體記憶體的1.5倍

  c、電腦記憶體大於512M小於1G的,其實體記憶體以可以滿足需求,虛擬記憶體可設定為與實體記憶體同樣的值

  d、實體記憶體等於或大於1G的,其實體記憶體已經相當充足,所需的虛擬記憶體應該減少,舉個例子來說:電腦的實體記憶體為1G,這時其虛擬記憶體應該設定成512MB,最大值則應該設定成3GB以備不時之需。

  虛擬記憶體設定方法

  找到“我的電腦”——點選“屬性”——點選“高階”——點選“效能”——設定——選擇“高階”——點選“更改”——就會彈出“虛擬記憶體設定視窗”——按照前面講述的關於記憶體設定的值進行設定就可以了——設定後按確定和應用——重新啟動電腦便完成了。

  虛擬記憶體設定

  減輕記憶體的負擔

  第一、儘量不要開過多的程式,開啟的程式太多,就會造成記憶體執行超負荷。

  第二、注意刪除不想主動載入的啟動專案,具體方法為:點選“開始”——執行——輸入“Msconfig”——“確定”,開啟“系統配置實用程式”視窗——刪除不想主動載入的啟動專案。

  關於虛擬記憶體

  虛擬記憶體是計算機系統記憶體管理的一種技術。它使得應用程式認為它擁有連續的可用的記憶體***一個連續完整的地址空間***,而實際上,它通常是被分隔成多個實體記憶體碎片,還有部分暫時儲存在外部磁碟儲存器上,在需要時進行資料交換。目前,大多數作業系統都使用了虛擬記憶體,如Windows家族的“虛擬記憶體”;Linux的“交換空間”等。

  Windows 8/8.1 作業系統如出現開機時卡在Windows徽標頁面,無法進入系統,必須強制關機再重啟才能開啟時,可適當調整虛擬記憶體設定解決。

  技術介紹

  虛擬記憶體別稱虛擬儲存器***Virtual Memory***。電腦中所執行的程式均需經由記憶體執行,若執行的程式佔用記憶體很大或很多,則會導致記憶體消耗殆盡。為解決該問題,Windows中運用了虛擬記憶體[2] 技術,即勻出一部分硬碟空間來充當記憶體使用。當記憶體耗盡時,電腦就會自動呼叫硬碟來充當記憶體,以緩解記憶體的緊張。若計算機執行程式或操作所需的隨機儲存器***RAM***不足時,則 Windows 會用虛擬儲存器進行補償。它將計算機的RAM和硬碟上的臨時空間組合。當RAM執行速率緩慢時,它便將資料從RAM移動到稱為“分頁檔案”的空間中。將資料移入分頁檔案可釋放RAM,以便完成工作。 一般而言,計算機的RAM容量越大,程式執行得越快。若計算機的速率由於RAM可用空間匱乏而減緩,則可嘗試通過增加虛擬記憶體來進行補償。但是,計算機從RAM讀取資料的速率要比從硬碟讀取資料的速率快,因而擴增RAM容量***可加記憶體條***是最佳選擇。

  虛擬記憶體是Windows 為作為記憶體使用的一部分硬碟空間。虛擬記憶體在硬碟上其實就是為一個碩大無比的檔案,檔名是PageFile.Sys,通常狀態下是看不到的。必須關閉資源管理器對系統檔案的保護功能才能看到這個檔案。虛擬記憶體有時候也被稱為是“頁面檔案”就是從這個檔案的檔名中來的。

  [2] 記憶體在計算機中的作用很大,電腦中所有執行的程式都需要經過記憶體來執行,如果執行的程式很大或很多,就會導致記憶體消耗殆盡。為了解決這個問題,WINDOWS運用了虛擬記憶體技術,即拿出一部分硬碟空間來充當記憶體使用,這部分空間即稱為虛擬記憶體,虛擬記憶體在硬碟上的存在形式就是 PAGEFILE.SYS這個頁面檔案。

  工作原理

  [3] 虛擬儲存器是由硬體和作業系統自動實現儲存資訊排程和管理的。它的工作過程包括6個步驟:

  ①中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組資訊是否存放在主存內。

  ②如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閒區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組資訊調入主存。

  ③從輔存讀出所要的組,並送到主存空閒區,然後將那個空閒的物理組號a和邏輯組號a登入在地址變換表中。

  ④從地址變換表讀出與邏輯組號a對應的物理組號a。

  ⑤從物理組號a和組內位元組地址b得到實體地址。

  ⑥根據實體地址從主存中存取必要的資訊。

  排程方式有分頁式、段式、段頁式3種。頁式排程是將邏輯和實體地址空間都分成固定大小的頁。主存按頁順序編號,而每個獨立編址的程式空間有自己的頁號順序,通過排程輔存中程式的各頁可以離散裝入主存中不同的頁面位置,並可據表一一對應檢索。頁式排程的優點是頁內零頭小,頁表對程式設計師來說是透明的,地址變換快,調入操作簡單;缺點是各頁不是程式的獨立模組,不便於實現程式和資料的保護。段式排程是按程式的邏輯結構劃分地址空間,段的長度是隨意的,並且允許伸長,它的優點是消除了記憶體零頭,易於實現儲存保護,便於程式動態裝配;缺點是調入操作複雜。將這兩種方法結合起來便構成段頁式排程。在段頁式排程中把物理空間分成頁,程式按模組分段,每個段再分成與物理空間頁同樣小的頁面。段頁式排程綜合了段式和頁式的優點。其缺點是增加了硬體成本,軟體也較複雜。大型通用計算機系統多數採用段頁式排程。

  虛實地址

  實地址與虛地址

  [3] 使用者編制程式時使用的地址稱為虛地址或邏輯地址,其對應的儲存空間稱為虛存空間或邏輯地址空間;而計算機實體記憶體的訪問地址則稱為實地址或實體地址,其對應的儲存空間稱為物理儲存空間或主存空間。程式進行虛地址到實地址轉換的過程稱為程式的再定位。

  虛存的訪問過程

  虛存空間的使用者程式按照虛地址程式設計並存放在輔存中。程式執行時,由地址變換機構依據當時分配給該程式的實地址空間把程式的一部分調入實存。每次訪存時,首先判斷該虛地址所對應的部分是否在實存中:如果是,則進行地址轉換並用實地址訪問主存;否則,按照某種演算法將輔存中的部分程式排程進記憶體,再按同樣的方法訪問主存。由此可見,每個程式的虛地址空間可以遠大於實地址空間,也可以遠小於實地址空間。前一種情況以提高儲存容量為目的,後一種情況則以地址變換為目的。後者通常出現在多使用者或多工系統中:實存空間較大,而單個任務並不需要很大的地址空間,較小的虛存空間則可以縮短指令中地址欄位的長度。

  異構體系

  [3] 從虛存的概念可以看出,主存-輔存的訪問機制與cache-主存的訪問機制是類似的。這是由cache儲存器、主存和輔存構成的三級儲存體系中的兩個層次。cache和主存之間以及主存和輔存之間分別有輔助硬體和輔助軟硬體負責地址變換與管理,以便各級儲存器能夠組成有機的三級儲存體系。cache和主存構成了系統的記憶體,而主存和輔存依靠輔助軟硬體的支援構成了虛擬儲存器。

  在三級儲存體系中,cache-主存和主存-輔存這兩個儲存層次有許多相同點:

  ***1***出發點相同:二者都是為了提高儲存系統的效能價格比而構造的分層儲存體系,都力圖使儲存系統的效能接近高速儲存器,而價格和容量接近低速儲存器。

  ***2***原理相同:都是利用了程式執行時的區域性性原理把最近常用的資訊塊從相對慢速而大容量的儲存器調入相對高速而小容量的儲存器。

  但cache-主存和主存-輔存這兩個儲存層次也有許多不同之處:

  ***1***側重點不同:cache主要解決主存與CPU的速度差異問題;而就效能價格比的提高而言,虛存主要是解決儲存容量問題,另外還包括儲存管理、主存分配和儲存保護等方面。

  ***2***資料通路不同:CPU與cache和主存之間均有直接訪問通路,cache不命中時可直接訪問主存;而虛存所依賴的輔存與CPU之間不存在直接的資料通路,當主存不命中時只能通過調頁解決,CPU最終還是要訪問主存。

  ***3***透明性不同:cache的管理完全由硬體完成,對系統程式設計師和應用程式設計師均透明;而虛存管理由軟體***作業系統***和硬體共同完成,由於軟體的介入,虛存對實現儲存管理的系統程式設計師不透明,而只對應用程式設計師透明***段式和段頁式管理對應用程式設計師“半透明”***。

  ***4***未命中時的損失不同:由於主存的存取時間是cache的存取時間的5~10倍,而主存的存取速度通常比輔存的存取速度快上千倍,故主存未命中時系統的效能損失要遠大於cache未命中時的損失。

  關鍵問題

  [3] ***1***排程問題:決定哪些程式和資料應被調入主存。

  ***2***地址對映問題:在訪問主存時把虛地址變為主存實體地址***這一過程稱為內地址變換***;在訪問輔存時把虛地址變成輔存的實體地址***這一過程稱為外地址變換***,以便換頁。此外還要解決主存分配、儲存保護與程式再定位等問題。

  ***3***替換問題:決定哪些程式和資料應被調出主存。

  ***4***更新問題:確保主存與輔存的一致性。

  在作業系統的控制下,硬體和系統軟體為使用者解決了上述問題,從而使應用程式的程式設計大大簡化。

  排程介紹

  頁式排程

  1、頁式虛存地址對映頁式虛擬儲存系統中,虛地址空間被分成等長大小的頁,稱為邏輯頁;主存空間也被分成同樣大小的頁,稱為物理頁。相應地,虛地址分為兩個欄位:高欄位為邏輯頁號,低欄位為頁內地址***偏移量***;實存地址也分兩個欄位:高欄位為物理頁號,低欄位為頁內地址。通過頁表可以把虛地址***邏輯地址***轉換成實體地址。

  在大多數系統中,每個程序對應一個頁表。頁表中對應每一個虛存頁面有一個表項,表項的內容包含該虛存頁面所在的主存頁面的地址***物理頁號***,以及指示該邏輯頁是否已調入主存的有效位。地址變換時,用邏輯頁號作為頁表內的偏移地址索引頁表***將虛頁號看作頁表陣列下標***並找到相應物理頁號,用物理頁號作為實存地址的高欄位,再與虛地址的頁內偏移量拼接,就構成完整的實體地址。現代的中央處理機通常有專門的硬體支援地址變換。

  2、轉換後援緩衝器由於頁表通常在主存中,因而即使邏輯頁已經在主存中,也至少要訪問兩次物理儲存器才能實現一次訪存,這將使虛擬儲存器的存取時間加倍。為了避免對主存訪問次數的增多,可以對頁表本身實行二級快取,把頁表中的最活躍的部分存放在高速儲存器中,組成快表。這個專用於頁表快取的高速儲存部件通常稱為轉換後援緩衝器***TLB***。儲存在主存中的完整頁表則稱為慢表。

  3、內頁表是虛地址到主存實體地址的變換表,通常稱為內頁表。與內頁表對應的還有外頁表,用於虛地址與輔存地址之間的變換。當主存缺頁時,調頁操作首先要定位輔存,而外頁表的結構與輔存的定址機制密切相關。例如對磁碟而言,輔存地址包括磁碟機號、磁頭號、磁軌號和扇區號等。

  段式排程

  [3] 段是按照程式的自然分界劃分的長度可以動態改變的區域。通常,程式設計師把子程式、運算元和常數等不同型別的資料劃分到不同的段中,並且每個程式可以有多個相同型別的段。在段式虛擬儲存系統中,虛地址由段號和段內地址***偏移量***組成。虛地址到實主存地址的變換通過段表實現。每個程式設定一個段表,段表的每一個表項對應一個段。每個表項至少包含下面三個欄位:

  ***1***有效位:指明該段是否已經調入實存。

  ***2***段起址:指明在該段已經調入實存的情況下,該段在實存中的首地址。

  ***3***段長:記錄該段的實際長度。設定段長欄位的目的是為了保證訪問某段的地址空間時,段內地址不會超出該段長度導致地址越界而破壞其他段。段表本身也是一個段,可以存在輔存中,但一般駐留在主存中。

  段式虛擬儲存器有許多優點:

  ①段的邏輯獨立性使其易於編譯、管理、修改和保護,也便於多道程式共享。②段長可以根據需要動態改變,允許自由排程,以便有效利用主存空間。段式虛擬儲存器也有一些缺點:

  ①因為段的長度不固定,主存空間分配比較麻煩。②容易在段間留下許多外碎片,造成儲存空間利用率降低。

  ③由於段長不一定是2的整數次冪,因而不能簡單地像分頁方式那樣用虛地址和實地址的最低若干二進位制位作為段內偏移量,並與段號進行直接拼接,必須用加法操作通過段起址與段內偏移量的求和運算求得實體地址。因此,段式儲存管理比頁式儲存管理方式需要更多的硬體支援。

  段頁式排程

  [3] 段頁式虛擬儲存器是段式虛擬儲存器和頁式虛擬儲存器的結合。實存被等分成頁。每個程式則先按邏輯結構分段,每段再按照實存的頁大小分頁,程式按頁進行調入和調出操作,但可按段進行程式設計、保護和共享。它把程式按邏輯單位分段以後,再把每段分成固定大小的頁。程式對主存的調入調出是按頁面進行的,但它又可以按段實現共享和保護,兼備頁式和段式的優點。缺點是在映象過程中需要多次查表。在段頁式虛擬儲存系統中,每道程式是通過一個段表和一組頁表來進行定位的。段表中的每個表目對應一個段,每個表目有一個指向該段的頁表起始地址及該段的控制保護資訊。由頁表指明該段各頁在主存中的位置以及是否已裝入、已修改等狀態資訊。如果有多個使用者在機器上執行,多道程式的每一道需要一個基號,由它指明該道程式的段表起始地址。虛擬地址格式如下:

  基號 段號 頁號 頁內地址

  變換演算法

  [3] 虛擬儲存器地址變換基本上有3種形虛擬儲存器工作過程式:全聯想變換、直接變換和組聯想變換。任何邏輯空間頁面能夠變換到物理空間任何頁面位置的方式稱為全聯想變換。每個邏輯空間頁面只能變換到物理空間一個特定頁面的方式稱為直接變換。組聯想變換是指各組之間是直接變換,而組內各頁間則是全聯想變換。替換規則用來確定替換主存中哪一部分,以便騰空部分主存,存放來自輔存要調入的那部分內容。常見的替換演算法有4種。

  ①隨機演算法:用軟體或硬體隨機數產生器確定替換的頁面。

  ②先進先出:先調入主存的頁面先替換。

  ③近期最少使用演算法***LRU,Least Recently Used***:替換最長時間不用的頁面。

  ④最優演算法:替換最長時間以後才使用的頁面。這是理想化的演算法,只能作為衡量其他各種演算法優劣的標準。

  虛擬儲存器的效率是系統性能評價的重要內容,它與主存容量、頁面大小、命中率,程式區域性性和替換演算法等因素有關。[

  記憶體不足

  【1】、感染病毒:有些病毒發作時會佔用大量記憶體空間,導致系統出現記憶體不足問題。

  【2】、虛擬記憶體設定不當:通常,應設定為實體記憶體大小的2倍。若設定過小,則會影響系統程式的正常執行。此時便需重設虛擬記憶體數值,以“Windows XP”為例,右擊“我的電腦”,選擇“屬性”,在“高階”標籤頁點選“效能”框中的“設定”按鈕,切換至“高階”標籤頁,後在“虛擬記憶體”框中點選“更改”按鈕,接著重設虛擬記憶體數值,再點“設定”並“確定”,完後重啟系統即可。

  【3】、系統盤空間不足:在預設情況下,虛擬記憶體是以名為“Pagefile.sys”的交換檔案存於硬碟的系統分割槽中。若系統盤剩餘容量過小,即會出現該問題。系統盤至少應留有300MB的可用空間,當然此數值需據使用者的實際需要而定。儘量不要將各種應用軟體裝在系統盤,以保證有足夠的空間供虛擬記憶體檔案使用,且最好將虛擬記憶體檔案安放至非系統盤內。

  【4】、System使用者許可權設定不當:基於NT核心的Windows系統啟動時,System使用者會為系統建立虛擬記憶體檔案。有些使用者為了系統的安全,採用NTFS檔案系統,但卻取消了System使用者在系統盤“寫入”和“修改”的許可權,這樣就無法為系統建立虛擬記憶體檔案,執行大型程式時,也會出現此類問題。對策:重新賦予System使用者“寫入”和“修改”的許可權即可。***注:該僅限於使用NTFS檔案系統的使用者。***