純粹的分段並不是很流行,並沒有被許多操作系統所使用。 但是,分段可以與分頁結合使用,以從兩種技術中獲得最佳功能。
在分段的分頁中,主記憶體被分成可變大小的段,它們被進一步分成固定大小的頁面。
- 頁面比分段小。
- 每個段都有一個頁表,這意味著每個程式都有多個頁表。
- 邏輯地址表示為分段號(基地址),頁碼和頁面偏移量。
分段號 → 它指向相應的分段號。
頁碼 → 它指向分段中的確切頁面。
頁面偏移 → 用作頁面幀內的偏移量。
每頁表都包含有關該分段每個頁面的各種資訊。 分段表包含有關每個分段的資訊。 每個分段表項都指向一個頁表項,並且每個頁表項都被映射到一個分段內的頁面。
邏輯地址到物理地址的轉換
CPU產生一個分為兩部分的邏輯地址:分段號和分段偏移。 分段偏移必須小於分段限制量。 偏移量進一步分為分頁碼和分頁偏移量。 為了映射頁表中的確切分頁碼,分頁碼被添加到頁表基地中。
具有頁面偏移量的實際幀號被映射到主記憶體以在該過程的某個段的頁面中獲得期望的字。
分段分頁的優點
- 它減少了記憶體使用量。
- 分頁表大小受到分段大小的限制。
- 分段表只有一個對應於一個實際分段的條目。
- 外部碎片不存在。
- 它簡化了記憶體分配。
分段分頁的缺點
- 內部碎片將在那裏。
- 與分頁相比,分段複雜度要高得多。
- 分頁表需要連續存儲在內存中。