操做系統原理以內存管理(第四章第二部分)

 1、基本分頁存儲管理方式

一、分⻚存儲管理的基本原理:程序員

  • 頁:將⼀個進程的邏輯地址空間分紅若⼲個⼤⼩相等的⽚
  • 頁框:將物理內存空間分紅與⻚⼤⼩相同的若⼲個存儲塊
  • 分⻚存儲:將進程中的若⼲⻚分別裝⼊多個能夠不相鄰的⻚框中
  • 頁內碎片:進程最後⼀⻚⼀般裝不滿⼀個⻚框,造成⻚內碎⽚
  • 頁表:實現從⻚號到⻚框號的映射

 ************************************************************************************************算法

 

 二、分⻚地址結構:基本分頁存儲管理方式的邏輯地址結構包括兩部分,即頁內偏移量 和頁號編程

*******************************************************************************************************************緩存

 例題:數據結構

 

*****************************************************************************************************************性能

 

 

 三、分⻚地址變換spa

  • 進程執行,PCB中頁表起始地址和頁表長度送到CPU的頁表寄存器
  • CPU訪問某個邏輯單元A
  • 由分頁地址變換硬件自動將A分爲頁號和頁內偏移兩部分
  • 由硬件檢索頁表,獲得A所在的頁對應的頁框號
  • 頁框號和頁內偏移地址送物理地址寄存器,計算物理地址。物理地址=頁框大小✖頁框號+頁內偏移量

四、⻚⼤⼩的選擇因素操作系統

  • 管理內存開銷 :頁較⼩,劃分爲較多⻚,⻚表過⻓,佔內存 較⼤
  • 內存的利⽤率: 頁較⼤,⻚內碎⽚⼤,空間利⽤率低

五、快表TLB:3d

快表也稱「轉換後援緩衝」,是爲了提⾼CPU訪存速度⽽採⽤的專⽤緩存, ⽤來存放最近被訪問過的⻚表項。blog

 

 

 快表TLB的計算:

 

***************************************************************************************************************************************

 

 

 

 

 六、兩級和多級⻚表

 將⻚表再分⻚,造成兩級或多級⻚表,將⻚表離散地存放在物理內存中。

 

 

 **********************************************************************************************************

 

2、基於分頁的虛擬存儲系統

一、虛擬存儲器:

  • 虛擬存儲器是指具備請求調⼊功能和置換功能,能從邏輯上對內存容量 進⾏擴充的⼀種存儲器系統
  • 就是說,先將進程的⼀部分裝⼊內存,其他的部分何時須要,什麼 時候請求系統裝⼊,即請求調⼊
  • 若是請求調⼊時,沒有⾜夠的內存,則由操做系統選擇⼀部份內存中的 進程內容移到外存,以騰出空間把當前須要裝⼊的內存調⼊,即置換

 

 二、請求分⻚系統是最基本、最常⽤的虛擬存儲系統的實現⽅式

  請求分⻚中的硬件⽀持:

    爲了實現請求分⻚,須要: 特殊的⻚表、缺⻚異常機構和⽀持請求分⻚的地址變換機構。

 

 

 

 

 

 

 

 

   ⻚分配策略:

    

 ***************************************************************************************************************************** 

    

 ***********************************************************************************************************************************

     

****************************************************************************************************************************************

三、 ⻚置換算法:從內存⻚中選擇換出⻚的算法

A、最佳置換算法(主要⽤於理論研究):選擇之後永遠不會被訪問的⻚或者在將來最⻓時間內再也不被訪問的⻚做爲換出⻚

 

B、先進先出置換算法FIFO(最簡單的⻚置換算法):爲每一個⻚記錄該⻚調⼊內存的時間,選擇換出⻚時,選擇進⼊內存時間最先的⻚

 

 

 

C、最近最久未使⽤置換算法 LRU(實現最佳算法的近似算法):選擇最近最久未使⽤的⻚換出(⽤⼀個字段記錄⼀個⻚⾃上次被訪問以來所經歷的時間)

 

 

 

D、附加引⽤位算法

E、簡單Clock置換算法:選擇最近沒有被訪問的淘汰

F、改進型Clock算法:選擇既沒有被訪問過⼜沒有被修改過的淘汰

G、最少使⽤置換算法:選擇最近時期內使⽤次數最少的淘汰

H、⻚緩衝算法

四、請求分⻚系統的性能:

a、缺⻚率對有效訪問時間的影響

有效訪問時間=0.1+24999.9✖P(P爲缺⻚率)

有效訪問時間與缺⻚率成正⽐,缺⻚率越⾼,有效訪問時間越⻓,訪問效率越低有效訪問時間越低

b、⼯做集 :   引⼊⼯做集⽬的:下降缺⻚率,提⾼訪問內存效率     含義:某段時間間隔⾥,進程實際要訪問的⻚的集合

c、抖動 :  運⾏進程的⼤部分時間都⽤於⻚的換⼊換出 ⼏乎不能完成任何有效果⼯做的狀態

產⽣緣由:   進程數量太多    分配⻚框太少

預防⽅法:採起局部置換策略      引⼊⼯做集      掛起若⼲進程

 3、分段存儲管理

 分段機制的引⼊:在分段存儲管理的系統中,程序員使⽤⼆維的邏輯地址,⼀個數⽤來表示段, 另⼀個數⽤來表示段內偏移。

 

 

 

 引⼊分段機制的優勢: ⽅便編程、分段共享、分段保護、動態連接,以及動態空間的增⻓。

分段:

  • 進程的地址空間被劃分紅若⼲個段。
  • 每一個段定義了⼀組邏輯信息,每一個段的⼤⼩由相應的邏輯信息組的⻓度肯定,段 的⼤⼩不⼀樣,每一個段的邏輯地址從0開始,採⽤⼀段連續的地址空間。 系統爲每一個段分配⼀個連續的物理內存區域,各個不一樣的段能夠離散地放⼊物理 內存不一樣的區域。
  • 系統爲每一個進程建⽴⼀張段表,段表的每⼀個表項紀錄的信息包括段號、段⻓和 該段的基址,段表存放在內存中。

分段的邏輯地址結構:

 

 

 段表:段表是由操做系統維護的⽤於⽀持分段存儲管理地址映射的數據結構。每一個進程有⼀個段表,段表由段表項構成。每一個段表項包括段號、段基址(段的 起始地址)和段⻓(段⼤⼩)3個部分。

 

*********************************************************************************************************************************************************

 

 

 

**********************************************************************************************************************************

 

 分頁和分段都屬於離散分配⽅式,都要經過數據結構與硬件的配合來實現邏輯地址到物理地址的映射。

分⻚和分段的主要區別:

1)頁是按物理單位劃分的,分頁的引入是爲了提升內存的利用率和支持虛擬存儲;分段是按邏輯單位劃分的,一個段含有一組意義相對完整的信息,引入分段的目的是爲了方便程序員編程。
2)頁的大小是固定的,而段的大小不固定,取決於用戶編寫的程序;
3)分頁的地址空間是一維的,分段的地址空間是二維的

 

4、段⻚式存儲管理

一、段⻚式存儲管理的基本原理

 

 

 

 4、 Linux的夥伴系統

相關文章
相關標籤/搜索