虛擬記憶體技術的工作原理

  是什麼?虛擬記憶體有什麼技術?下面由小編來和大家一起了解吧!

  虛擬記憶體技術介紹

  虛擬記憶體別稱虛擬儲存器***Virtual Memory***。電腦中所執行的

  程式均需經由記憶體執行,若執行的程式佔用記憶體很大或很多,則會導致記憶體消耗殆盡。為解決該問題,Windows中運用了虛擬記憶體[2] 技術,即勻出一部分硬碟空間來充當記憶體使用。當記憶體耗盡時,電腦就會自動呼叫硬碟來充當記憶體,以緩解記憶體的緊張。若計算機執行程式或操作所需的隨機儲存器***RAM***不足時,則 Windows 會用虛擬儲存器進行補償。它將計算機的RAM和硬碟上的臨時空間組合。當RAM執行速率緩慢時,它便將資料從RAM移動到稱為“分頁檔案”的空間中。將資料移入分頁檔案可釋放RAM,以便完成工作。 一般而言,計算機的RAM容量越大,程式執行得越快。若計算機的速率由於RAM可用空間匱乏而減緩,則可嘗試通過增加虛擬記憶體來進行補償。但是,計算機從RAM讀取資料的速率要比從硬碟讀取資料的速率快,因而擴增RAM容量***可加記憶體條***是最佳選擇。虛擬記憶體是Windows 為作為記憶體使用的一部分硬碟空間。虛擬記憶體在硬碟上其實就是為一個碩大無比的檔案,檔名是PageFile.Sys,通常狀態下是看不到的。必須關閉資源管理器對系統檔案的保護功能才能看到這個檔案。虛擬記憶體有時候也被稱為是“頁面檔案”就是從這個檔案的檔名中來的。[2] 記憶體在計算機中的作用很大,電腦中所有執行的程式都需要經過記憶體來執行,如果執行的程式很大或很多,就會導致記憶體消耗殆盡。為了解決這個問題,WINDOWS運用了虛擬記憶體技術,即拿出一部分硬碟空間來充當記憶體使用,這部分空間即稱為虛擬記憶體,虛擬記憶體在硬碟上的存在形式就是 PAGEFILE.SYS這個頁面檔案。

  工作原理

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

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

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

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

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

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

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

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