1. 程式人生 > >段機制與頁機制

段機制與頁機制

一 分段機制

  1、什麼是分段機制

   分段機制就是把虛擬地址空間中的虛擬記憶體組織成一些長度可變的稱為段的記憶體塊單元。

  2、什麼是段

   每個段由三個引數定義:段基地址、段限長和段屬性。

   段的基地址、段限長以及段的保護屬性儲存在一個稱為段描述符的結構項中。

  3、段的作用

   段可以用來存放程式的程式碼、資料和堆疊,或者用來存放系統資料結構。

  4、段的儲存地址

   系統中所有使用的段都包含在處理器線性地址空間中。

  5、段選擇符

   邏輯地址包括一個段選擇符或一個偏移量,段選擇符是一個段的唯一標識,提供了段描述符表,段描述符表指明短的大小、訪問許可權和段的特權級、段型別以及段的第一個位元組線上性地址空間中的位置(稱為段的基地址)。邏輯地址的偏移量部分到段的基地址上就可以定位段中某個位元組的位置。因此基地址加上偏移量就形成了處理器線性地址空間中的地址。

  6 邏輯地址到線性地址的變換過程

  如果沒有開啟分頁,那麼處理器直接把線性地址對映到實體地址,即線性地址被送到處理器地址總線上;如果對線性地址空間進行了分頁處理,那麼就會使用二級地址轉換把線性地址轉換成實體地址。

  7、虛擬地址到實體地址的變換過程

二 分頁機制

  1、什麼是分頁機制

   分頁機制在段機制之後進行的,它進一步將線性地址轉換為實體地址。

  2、分頁機制的儲存

   分頁機制支援虛擬儲存技術,在使用虛擬儲存的環境中,大容量的線性地址空間需要使用小塊的實體記憶體(RAM或ROM)以及某些外部儲存空間來模擬。當使用分頁時,每個段被劃分成頁面(通常每頁為4K大小),頁面會被儲存於物理記憶體中或硬碟中。作業系統通過維護一個頁目錄和一些頁表來留意這些頁面。當程式(或任務)試圖訪問線性地址空間中的一個地址位置時,處理器就會使用頁目錄和頁表把線性地址轉換成一個實體地址,然後在該記憶體位置上執行所要求的操作。

  3、線性地址和實體地址之間的變換過程

 

三 分段機制和分頁機制的區別

  1、分頁機制會使用大小固定的記憶體塊,而分段管理則使用了大小可變的塊來管理記憶體。

  2、分頁使用固定大小的塊更為適合管理實體記憶體,分段機制使用大小可變的塊更適合處理複雜系統的邏輯分割槽。

  3、段表儲存線上性地址空間,而頁表則儲存在實體地址空間。