分頁

分頁

分頁(英語:Paging),是一種作業系統存儲器管理的一種技術,可以使電腦的主存可以使用存儲在輔助存儲器中的數據。作業系統會將輔助存儲器(通常是磁碟)中的數據分區成固定大小的區塊,稱為“頁”(pages)。當不需要時,將分頁由主存(通常是記憶體)移到輔助存儲器;當需要時,再將數據取回,載入主存中。相對於分段,分頁允許存儲器存儲於不連續的區塊以維持檔案系統的整齊。分頁是磁碟和記憶體間傳輸數據塊的最小單位。

基本介紹

  • 中文名:分頁
  • 外文名:Paging
  • 定義:一種作業系統存儲器管理的技術
  • 性質:磁碟和記憶體間傳輸數據塊最小單位
  • 學科:計算機
  • 領域:計算機
簡介,概覽,命中和缺頁,系統顛簸,頁面調度,分享,實現,Ferranti Atlas,Windows 3.X和Windows 9x,Windows NT,Unix及類Unix系統,32位硬體限制,

簡介

分頁(英語:Paging),是一種作業系統存儲器管理的一種技術,可以使電腦的主存可以使用存儲在輔助存儲器中的數據。作業系統會將輔助存儲器(通常是磁碟)中的數據分區成固定大小的區塊,稱為“頁”。當不需要時,將分頁由主存(通常是記憶體)移到輔助存儲器;當需要時,再將數據取回,載入主存中。相對於分段,分頁允許存儲器存儲於不連續的區塊以維持檔案系統的整齊。分頁是磁碟和記憶體間傳輸數據塊的最小單位。
分頁/虛擬記憶體能有助“大大地”降低整體及額外非必要的 I/O 次數,提高系統整體運作性能。因為這能有助提高 RAM 的讀取命中率,也透過其內部的高效率算法來達到 I/O 數據流的預快取工作,通過與之相關的等等手段也能很好地提高了 CPU 的使用效率,而擁有大物理記憶體的用戶更可能考慮利用如RamdiskSupercache、SoftPerfect RAM Disk等模擬出硬碟分區來同時將虛擬記憶體/系統臨時檔案等設定其上以進一步加強系統性能,及達至保障硬碟的措施。分頁是虛擬記憶體技術中的重要部分。

概覽

分頁就是當數據並沒有映射在隨機存取存儲器上時,作業系統必需控制使程式繼續運行所會做的動作。一般來說,作業系統會將運行中程式的數據放至隨機存取存儲器上空的幀中,將不需要的數據從幀上清除,但如果隨機存取存儲器沒有空的幀可用,作業系統會把一部分的數據存回輔助存儲器然後釋放。輔助存儲器會用分頁的方式將檔案存在經過平均分配大小的頁上,等到隨機存取存儲器需要使用時再寫回。如果在隨機存取存儲器釋放數據過後還需要更新數據,系統必須將數據先寫回後更新,再存入輔助存儲器中。高性能的系統需要在替換隨機存取存儲器上的數據時消耗較少的時間,所以一般的系統會採取最近最少使用算法(LFU)來達到較高的效果。

命中和缺頁

由於更早地被發明(20世紀60年代早期),類似CPU-存儲器之間的SRAM快取,虛擬存儲器系統使用不同的術語。
  • 虛擬存儲器系統中,DRAM快取命中,為稱讀取一個地址時,該地址在DRAM快取中的過程。命中過程不需要程式再從磁碟中緩慢讀取數據。
  • 相對地,DRAM不命中稱為缺頁(page fault)。由於頁幀由有效位物理頁號(或磁碟地址)構成,當有效位標記為0時,即表明該地址未在快取中,調用該地址則會引發缺頁異常,從而從磁碟中拷貝需要的內容,覆蓋快取中的一個犧牲頁,從而能夠命中。過多的缺頁將導致反覆的磁碟讀取和寫入,非常耗費計算時間。

系統顛簸

儘管在整個運行過程中程式引用的不同頁面總數(也就是虛擬記憶體大小)可能超出物理存儲器(DRAM)總大小,但是程式常常在較小的活動頁面(active page)上活動,這個集合叫作工作集(working set)或常駐集(resident set)。在工作集被快取後,對它的反覆調用將使程式命中提高,從而提高性能。
大部分的程式都可以在存儲器獲取數據和讀取中達到穩定的狀態,當程式達到穩定狀態時,存儲器的使用量通常都不會太大。虛擬記憶體雖然可以有效率的去控制存儲器的使用,但解決大量的頁缺失還是造成系統遲緩的主要因素。當工作集的大小超過物理存儲器大小,程式將發生一種不幸的情況,這種情況被稱為“顛簸(Thrashing)”,頁面將不停地寫入、釋放、讀取,由於大量的丟失(而非命中)而損失極大性能。用戶可以增加隨機存取存儲器的大小或是減少同時在系統里運行程式的數量來降低系統顛簸的機率。

頁面調度

  • 當需要用到數據時再向系統請求,使系統將數據由輔助存儲器傳入存儲器上,這就叫“需求分頁”。它使得系統不需要將全部的程式都放在存儲器上,減少了所需要的存儲器的數量。所有現代系統都使用按需頁面調度(paging)的方式。
  • 當系統查看分頁表時認為某些數據可能需要用到,而先將數據傳到存儲器上的行為,就叫做“先行分頁”, 當存儲器夠大的話通常會採取這種方式。
  • Unix系統會定期使用sync程式來清理所有經過更動的幀,它會將所有被更動過的幀存到輔助存儲器中。Windows系統有時亦會進行類似功能的操作,它可以使新程式在打開時更快速。

分享

多任務處理或多用戶的環境下,經常遇到不同的程式需要用到相同的數據,如果採用個別處理的話,很多的存儲器會被浪費掉,分享的功用使不同的程式可以使用相同的存儲器。分享功能還需注意的是系統必須要分離經過修改過後的數據以防止其他程式需要用到修改前的數據。

實現

Ferranti Atlas

第一台支持分頁系統的電腦是Atlas,這台電腦有著分區成各250字的分頁的結合存儲

Windows 3.X和Windows 9x

微軟為了要使1990年的Windows 3.x不像Windows 1.0Windows 2.0一樣需要大量的硬體資源,因而把分頁系統加到Microsoft Windows內。系統會創造名為386SPART.PAR或WIN386.SWP的隱藏檔來跟存儲器交換檔案,通常可以在根目錄找到,有時候也會生成在WINDOWS資料夾中。此檔案的大小決定頁面檔案的大小(可以在控制臺中調整),如果用戶移動或刪除這個檔案會在下次引導時出現藍屏當機

Windows NT

Windows NT的系統中(如Windows XPVista78等),頁面檔案名稱為pagefile.sys並存儲在根目錄中。有時在引導扇區會出現系統崩潰並出現存儲器傾印的狀況,Windows系統會將頁面檔案作為暫存用途,並在下次重起系統時釋放頁面檔案的空間。

Unix及類Unix系統

Unix及類Unix系統中,系統會定期更新隨機存取存儲器與虛擬記憶體間的數據,其中有些系統會在硬碟上劃一塊專門的區塊作為頁面檔案交換檔案用,稱為交換分區(swap partitions),有些系統還可以把這個區塊用檔案的形式出現。
Linux核心2.6以上中,因為系統可以直接繞過其他程式直接跟檔案形式的分區交換,分區檔的速度已經可以跟交換分區一樣快了,且分區檔可以自動被存放在硬碟讀取最頻繁的地方,不過紅帽公司還是建議將硬碟劃專門區塊做使用。不過使用檔案形式的分區的靈活度較高,可以自由存放在任一個磁碟,更改成任一大小,在硬碟劃專門區塊後除非使用特殊的工具,否則無法更動位置及大小。Linux可以創建無數個分區,並將檔案排優先權,硬碟讀取越頻繁的地方通常越是系統優先使用該分區,因此要謹慎的排好優先權,否則會大大的降低系統的性能。
OS X使用多重的分區檔案,雖然它可以存到其他的地方,但默認就會將檔案存到硬碟的根目錄中。

32位硬體限制

由於32位的硬體地址匯流排最高只能定址到4GB的位置,超過的部分將不能被電腦進行分頁使用存儲器。

相關詞條

熱門詞條

聯絡我們