分頁和分段的區別


分頁

分頁是一種記憶體管理技術,其中程序地址空間被劃分為大小相同的塊,稱為頁(大小為2的冪,介於512位元組和8192位元組之間)。程序的大小以頁數來衡量。類似地,主記憶體被劃分為小的固定大小的塊(物理)記憶體,稱為幀,並且幀的大小與頁的大小保持一致,以最佳化主記憶體的使用並避免外部碎片。

類似地,主記憶體被劃分為小的固定大小的塊(物理)記憶體,稱為幀,並且幀的大小與頁的大小保持一致,以最佳化主記憶體的使用並避免外部碎片。

分段

分段是一種記憶體管理技術,其中每個作業被劃分為多個不同大小的段,每個段對應一個包含執行相關功能的程式碼塊的模組。每個段實際上是程式的不同邏輯地址空間。當要執行一個程序時,其對應的段被載入到非連續的記憶體中,儘管每個段都載入到一個連續的可用記憶體塊中。分段記憶體管理的工作方式與分頁非常相似,但是這裡的段是可變長度的,而分頁中的頁是固定大小的。

程式段包含程式的主函式、實用函式、資料結構等等。作業系統為每個程序維護一個段對映表和一個空閒記憶體塊列表,其中包含段號、大小和主記憶體中的相應記憶體位置。對於每個段,該表儲存段的起始地址和段的長度。對記憶體位置的引用包括一個標識段的值和一個偏移量。

以下是分頁和分段之間的一些重要區別。

序號關鍵點分頁分段
1記憶體大小在分頁中,程序地址空間被劃分為固定大小的塊,稱為頁。在分段中,程序地址空間被劃分為大小不同的塊,稱為段。
2職責作業系統將記憶體劃分為頁。編譯器負責計算段的大小、虛擬地址和實際地址。
3大小頁的大小由可用記憶體確定。段的大小由使用者確定。
4速度就記憶體訪問而言,分頁技術更快。分段比分頁慢。
5碎片分頁可能會導致內部碎片,因為某些頁可能未得到充分利用。分段可能會導致外部碎片,因為某些記憶體塊根本沒有被使用。
6邏輯地址在分頁中,邏輯地址被劃分為頁號和頁偏移量。在分段中,邏輯地址被劃分為段號和段偏移量。
7在分頁中,邏輯地址被劃分為頁號和頁偏移量。在分段中,邏輯地址被劃分為段號和段偏移量。
8資料儲存頁表儲存頁資料。段表儲存段資料。

更新於:2023年9月13日

31K+ 瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.