分頁效能


分頁是一種記憶體管理方法。作業系統可以建立和釋放記憶體中的頁面,頁面是更小、固定大小的塊。由於分頁,作業系統可以使用虛擬記憶體,允許程序訪問比物理上可訪問的記憶體更多的記憶體。但是,分頁也會引入頁面錯誤和頁面替換開銷。因此,分頁效能是設計和改進現代作業系統的一個關鍵考慮因素。

本文將涵蓋許多與分頁相關的效能主題,包括基準測試、頁面替換技術、工作集模型、抖動、頁面大小選擇、TLB(轉換旁路緩衝區)和快取以及結論。

頁面替換演算法

當程序嘗試訪問物理記憶體中不存在的頁面時,就會發生頁面錯誤,在這種情況下,作業系統必須將頁面從磁碟載入到記憶體中。如果記憶體已滿,作業系統必須決定將哪個頁面從記憶體中移除以騰出空間供新頁面使用。此過程稱為頁面替換,它是影響分頁效能的最重要因素之一。

作業系統可以使用多種頁面替換技術來選擇要刪除的頁面。一些最流行的演算法如下:

先進先出 (FIFO)

這種方法會移除最先載入到記憶體中的頁面。

最近最少使用 (LRU)

最近最少使用 (LRU) 演算法會移除最長時間未被訪問的頁面。

時鐘 (或第二次機會)

此技術類似於 FIFO,但會給最近讀取的頁面第二次機會。

每種演算法都有其優點和缺點,演算法的選擇取決於系統的特定需求和特性。

工作集模型

工作集模型是一種確定程序將使用多少記憶體的方法。該模型假設一個工作集,即每個程序經常訪問的頁面集合。工作集大小是指保持程序有效執行所需的最小頁面數。

工作集概念可用於透過更改程序工作集的大小來提高分頁速度。如果工作集太小,則程序將經常遇到頁面錯誤;如果工作集太大,則會浪費記憶體。

抖動

抖動是一種現象,當作業系統比實際執行任務更頻繁地將頁面移入和移出記憶體時發生。抖動會大大降低系統速度,這是一個嚴重的效能問題。

當作業系統難以在分配給每個程序的頁面數和可用的總記憶體量之間取得平衡時,就會發生抖動。如果程序分配到的頁面太少,則它會經常遇到頁面錯誤,這會導致作業系統花費額外的時間將頁面移入和移出記憶體。但是,如果程序分配到的頁面太多,作業系統將耗盡記憶體,並且必須開始將頁面交換到磁碟,這是一個緩慢的操作。

頁面大小選擇

頁面大小也會極大地影響分頁的效能。較小的頁面會導致更精確的記憶體管理,從而減少未使用的記憶體量。但是,較小的頁面會導致更大的頁面表,這可能會減慢頁面表查詢的速度。另一方面,較大的頁面會導致更少的浪費記憶體,但會減小頁面表的大小。

頁面大小的選擇取決於系統的特定需求和特性。通常,大多數現代作業系統使用 4KB 或 8KB 的頁面。

轉換旁路緩衝區 (TLB) 和快取

快取和轉換旁路緩衝區 (TLB) 是兩個可以提高分頁速度的硬體元件。

TLB 充當最近訪問的頁面表條目的快取。當 CPU 需要將虛擬地址轉換為物理地址時,它首先會在 TLB 中搜索。如果轉換可以由 CPU 快速訪問,則它將儲存在 TLB 中。如果轉換不在 TLB 中,則 CPU 必須在頁面表中進行較慢的查詢。

特別是對於具有大型頁面表的系統,使用 TLB 可以顯著減少頁面表查詢的成本。

另一個可以提高分頁速度的硬體元件是快取。快取是一塊小而快的記憶體,它儲存了經常請求的頁面。當作業系統需要訪問頁面時,它首先會在快取中搜索。如果在快取中找到頁面,則作業系統可以快速訪問它,而無需從磁碟讀取它。

在具有高區域性性引用的系統中,使用快取可以顯著減少頁面錯誤的數量。

基準測試

基準測試是評估和比較不同系統或演算法效能的過程。在分頁的背景下,基準測試可用於比較不同頁面替換技術、頁面大小、TLB 設定和快取配置的效能。

SPEC CPU 和 SPECint 是作業系統行業中常用的基準測試示例。這些基準測試提供了一組標準測試,可用於比較不同系統在各種工作負載下的效能。

結論

現代作業系統的設計和最佳化必須考慮到分頁的效能。由於作業系統使用分頁實現虛擬記憶體,因此程序可以訪問比物理上可訪問的記憶體更多的記憶體。但是,分頁也會引入頁面錯誤和頁面替換開銷。

作業系統使用多種技術來提高分頁速度,包括頁面替換演算法、工作集模型、TLB 和快取。所選方法取決於系統的特定需求和特性。

基準測試是評估不同分頁方法在各種工作負載下的效能的有用工具。透過仔細調整系統設定並選擇正確的分頁機制,可以在現代作業系統中實現高效能和有效的記憶體利用率。

更新於: 2023-07-19

606 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告