操作系统原理之内存管理(第四章第二部分)
?一、基本分頁存儲管理方式
1、分?存儲管理的基本原理:
- 頁:將?個進(jìn)程的邏輯地址空間分成若?個??相等的?
- 頁框:將物理內(nèi)存空間分成與???相同的若?個存儲塊
- 分?存儲:將進(jìn)程中的若??分別裝?多個可以不相鄰的?框中
- 頁內(nèi)碎片:進(jìn)程最后???般裝不滿?個?框,形成?內(nèi)碎?
- 頁表:實(shí)現(xiàn)從?號到?框號的映射
?************************************************************************************************
?
?2、分?地址結(jié)構(gòu):基本分頁存儲管理方式的邏輯地址結(jié)構(gòu)包括兩部分,即頁內(nèi)偏移量 和頁號
*******************************************************************************************************************
?例題:
?
*****************************************************************************************************************
?
?
?3、分?地址變換
- 進(jìn)程執(zhí)行,PCB中頁表起始地址和頁表長度送到CPU的頁表寄存器
- CPU訪問某個邏輯單元A
- 由分頁地址變換硬件自動將A分為頁號和頁內(nèi)偏移兩部分
- 由硬件檢索頁表,得到A所在的頁對應(yīng)的頁框號
- 頁框號和頁內(nèi)偏移地址送物理地址寄存器,計算物理地址。物理地址=頁框大小?頁框號+頁內(nèi)偏移量
4、???的選擇因素
- 管理內(nèi)存開銷 :頁較?,劃分為較多?,?表過?,占內(nèi)存 較?
- 內(nèi)存的利?率: 頁較?,?內(nèi)碎??,空間利?率低
5、快表TLB:
快表也稱“轉(zhuǎn)換后援緩沖”,是為了提?CPU訪存速度?采?的專?緩存, ?來存放最近被訪問過的?表項。
?
?
?快表TLB的計算:
?
***************************************************************************************************************************************
?
?
?
?
?6、兩級和多級?表
?將?表再分?,形成兩級或多級?表,將?表離散地存放在物理內(nèi)存中。
?
?
?**********************************************************************************************************
?
二、基于分頁的虛擬存儲系統(tǒng)
1、虛擬存儲器:
- 虛擬存儲器是指具有請求調(diào)?功能和置換功能,能從邏輯上對內(nèi)存容量 進(jìn)?擴(kuò)充的?種存儲器系統(tǒng)
- 就是說,先將進(jìn)程的?部分裝?內(nèi)存,其余的部分什么時候需要,什么 時候請求系統(tǒng)裝?,即請求調(diào)?
- 如果請求調(diào)?時,沒有?夠的內(nèi)存,則由操作系統(tǒng)選擇?部分內(nèi)存中的 進(jìn)程內(nèi)容移到外存,以騰出空間把當(dāng)前需要裝?的內(nèi)存調(diào)?,即置換
?
?2、請求分?系統(tǒng)是最基本、最常?的虛擬存儲系統(tǒng)的實(shí)現(xiàn)?式
請求分?中的硬件?持:
為了實(shí)現(xiàn)請求分?,需要: 特殊的?表、缺?異常機(jī)構(gòu)和?持請求分?的地址變換機(jī)構(gòu)。
?
?
?
?
?
?
?
?
? ?分配策略:
?*****************************************************************************************************************************?
?***********************************************************************************************************************************
?
****************************************************************************************************************************************
3、 ?置換算法:從內(nèi)存?中選擇換出?的算法
A、最佳置換算法(主要?于理論研究):選擇以后永遠(yuǎn)不會被訪問的?或者在未來最?時間內(nèi)不再被訪問的?作為換出?
?
B、先進(jìn)先出置換算法FIFO(最簡單的?置換算法):為每個?記錄該?調(diào)?內(nèi)存的時間,選擇換出?時,選擇進(jìn)?內(nèi)存時間最早的?
?
?
?
C、最近最久未使?置換算法 LRU(實(shí)現(xiàn)最佳算法的近似算法):選擇最近最久未使?的?換出(??個字段記錄?個??上次被訪問以來所經(jīng)歷的時間)
?
?
?
D、附加引?位算法
E、簡單Clock置換算法:選擇最近沒有被訪問的淘汰
F、改進(jìn)型Clock算法:選擇既沒有被訪問過?沒有被修改過的淘汰
G、最少使?置換算法:選擇最近時期內(nèi)使?次數(shù)最少的淘汰
H、?緩沖算法
4、請求分?系統(tǒng)的性能:
a、缺?率對有效訪問時間的影響
有效訪問時間=0.1+24999.9?P(P為缺?率)
有效訪問時間與缺?率成正?,缺?率越?,有效訪問時間越?,訪問效率越低有效訪問時間越低
b、?作集 :? ?引??作集?的:降低缺?率,提?訪問內(nèi)存效率? ? ?含義:某段時間間隔?,進(jìn)程實(shí)際要訪問的?的集合
c、抖動 :? 運(yùn)?進(jìn)程的?部分時間都?于?的換?換出 ?乎不能完成任何有效果?作的狀態(tài)
產(chǎn)?原因:? ?進(jìn)程數(shù)量太多? ? 分配?框太少
預(yù)防?法:采取局部置換策略? ? ? 引??作集? ? ? 掛起若?進(jìn)程
?三、分段存儲管理
?分段機(jī)制的引?:在分段存儲管理的系統(tǒng)中,程序員使??維的邏輯地址,?個數(shù)?來表示段, 另?個數(shù)?來表示段內(nèi)偏移。
?
?
?
?引?分段機(jī)制的優(yōu)點(diǎn): ?便編程、分段共享、分段保護(hù)、動態(tài)鏈接,以及動態(tài)空間的增?。
分段:
- 進(jìn)程的地址空間被劃分成若?個段。
- 每個段定義了?組邏輯信息,每個段的??由相應(yīng)的邏輯信息組的?度確定,段 的??不?樣,每個段的邏輯地址從0開始,采??段連續(xù)的地址空間。 系統(tǒng)為每個段分配?個連續(xù)的物理內(nèi)存區(qū)域,各個不同的段可以離散地放?物理 內(nèi)存不同的區(qū)域。
- 系統(tǒng)為每個進(jìn)程建??張段表,段表的每?個表項紀(jì)錄的信息包括段號、段?和 該段的基址,段表存放在內(nèi)存中。
分段的邏輯地址結(jié)構(gòu):
?
?
?段表:段表是由操作系統(tǒng)維護(hù)的?于?持分段存儲管理地址映射的數(shù)據(jù)結(jié)構(gòu)。每個進(jìn)程有?個段表,段表由段表項構(gòu)成。每個段表項包括段號、段基址(段的 起始地址)和段?(段??)3個部分。
?
*********************************************************************************************************************************************************
?
?
?
**********************************************************************************************************************************
?
?分頁和分段都屬于離散分配?式,都要通過數(shù)據(jù)結(jié)構(gòu)與硬件的配合來實(shí)現(xiàn)邏輯地址到物理地址的映射。
分?和分段的主要區(qū)別:
1)頁是按物理單位劃分的,分頁的引入是為了提高內(nèi)存的利用率和支持虛擬存儲;分段是按邏輯單位劃分的,一個段含有一組意義相對完整的信息,引入分段的目的是為了方便程序員編程。
2)頁的大小是固定的,而段的大小不固定,取決于用戶編寫的程序;
3)分頁的地址空間是一維的,分段的地址空間是二維的
?
四、段?式存儲管理
1、段?式存儲管理的基本原理
?
?
?
?四、?Linux的伙伴系統(tǒng)
?
轉(zhuǎn)載于:https://www.cnblogs.com/jalja/p/11455440.html
總結(jié)
以上是生活随笔為你收集整理的操作系统原理之内存管理(第四章第二部分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 线程之线程状态
- 下一篇: 操作系统原理之文件系统(第五章)