操作系統(tǒng)第四章【4】虛擬存儲管理


1.虛擬存儲器的基本概念

?引入霉咨、實現(xiàn)、特征

2.請求分頁存儲管理方式

?硬件支持驶赏、地址變換院喜、分配算法

?頁面置換算法

?性能分析

3.請求分段存儲管理方式




1.? 虛擬存儲器的基本概念

分析常規(guī)存儲器管理不足的原因:

1)常規(guī)存儲器管理方式的特征

一次性:作業(yè)在運行前一次性地全部裝入內(nèi)存

駐留性:作業(yè)裝入內(nèi)存后,便一直駐留在內(nèi)存中证芭,直至作業(yè)運行結(jié)束冗疮。

?:一次性及駐留性在程序運行時是否是必須的?

? ? NO檩帐。程序運行有局部性术幔。

程序在執(zhí)行時將呈現(xiàn)出局部性規(guī)律:

在一較短的時間內(nèi)

程序的執(zhí)行僅局限于某個部分;

相應(yīng)地湃密,所訪問的存儲空間也局限于某個區(qū)域诅挑。

程序執(zhí)行的特點:?

多數(shù)情況下仍是順序執(zhí)行。??

少部分的轉(zhuǎn)移和過程調(diào)用指令會使程序執(zhí)行由一部分區(qū)域轉(zhuǎn)至另一部分區(qū)域(但研究表明調(diào)用深度多數(shù)情況下不超過5)許多由少數(shù)指令構(gòu)成的循環(huán)結(jié)構(gòu)會多次執(zhí)行泛源。u對許多數(shù)據(jù)結(jié)構(gòu)的處理(如數(shù)組)往往局限于很小的范圍內(nèi)拔妥。?

所有上述情況都表現(xiàn)出程序執(zhí)行的局部性:

u時間局部性(temporal locality)

被引用過一次的存儲器位置很可能在不遠的將來再被多次引用。

u空間局部性(spatial locality)

如果一個存儲器位置被引用了一次达箍,那么程序很可能在不遠的將來引用附近的一個存儲器位置没龙。


基于局部性原理

u程序運行前,不需全部裝入內(nèi)存(打破一次性)

僅裝入當前要運行的部分頁面或段即可運行缎玫,其余部分暫留在外存上硬纤。

缺頁/段的情況:要訪問的頁(段) 尚未調(diào)入內(nèi)存。程序應(yīng)利用OS所提供的請求調(diào)頁(段)功能赃磨,將它們調(diào)入內(nèi)存筝家,使程序繼續(xù)執(zhí)行。

u調(diào)入需要的頁/段時邻辉,如果內(nèi)存已滿溪王,無法再裝入新頁(段)腮鞍,通過置換功能將內(nèi)存中暫時不用的頁(段)調(diào)至外存,騰出足夠的內(nèi)存空間莹菱。(不總駐留)



交換技術(shù)與虛存使用的調(diào)入調(diào)出技術(shù)有何相同和不同之處移国?


主要相同點是都要在內(nèi)存與外存之間交換信息;

主要區(qū)別在于交換技術(shù)換出換進一般是整個進程(proc結(jié)構(gòu)和共享正文段除外)道伟,因此一個進程的大小受物理存儲器的限制桥狡;

而虛存中使用的調(diào)入調(diào)出技術(shù)在內(nèi)存與外存之間來回傳遞的是存儲頁或存儲段,而不是整個進程皱卓,從而使得進程映射具有了更大的靈活性裹芝,且允許進程的大小比可用的物理存儲空間大的多 。


3)虛擬存儲器的定義

所謂“虛擬存儲器”娜汁,是指具有請求調(diào)入功能和置換功能嫂易,能從邏輯上對內(nèi)存容量加以擴充的一種存儲器系統(tǒng)。

虛擬存儲管理下

內(nèi)存邏輯容量由內(nèi)存容量和外存容量之和所決定

運行速度接近于內(nèi)存速度

每位的成本卻接近于外存掐禁。

4)虛擬存儲器的實現(xiàn)

虛擬存儲管理:

允許將一個作業(yè)分多次調(diào)入內(nèi)存怜械。

若采用連續(xù)分配方式,需申請足夠空間傅事,再分多次裝入缕允,造成內(nèi)存資源浪費,并不能從邏輯上擴大內(nèi)存容量蹭越。

虛擬的實現(xiàn)建立在離散分配存儲管理基礎(chǔ)上

方式:請求分頁/請求分段系統(tǒng)

細節(jié):分頁/段機構(gòu)障本、中斷機構(gòu)、地址變換機構(gòu)响鹃、軟件支持

5)虛擬存儲器的特征


離散分配方式是基礎(chǔ)

多次性:一個作業(yè)被分成多次調(diào)入內(nèi)存運行

對換性:允許在作業(yè)的運行過程中進行換進驾霜、換出。(進程整體對換不算虛擬)

最終體現(xiàn)虛擬性:能夠從邏輯上擴充內(nèi)存容量买置,使用戶所看到的內(nèi)存容量遠大于實際內(nèi)存容量粪糙。

2.請求分頁存儲管理方式

基本分頁 + “請求調(diào)頁”和“頁面置換”功能。

換入和換出基本單位都是長度固定的頁面

1)硬件支持

? ?一臺具有一定容量的內(nèi)/外存的計算機

+ 頁表機制

+ 缺頁中斷機構(gòu)

+ 地址轉(zhuǎn)換機構(gòu)

缺頁中斷機構(gòu)

每當要訪問的頁面不在內(nèi)存時忿项,便產(chǎn)生一缺頁中斷通知OS蓉冈,OS則將所缺之頁調(diào)入內(nèi)存。作為中斷轩触,需經(jīng)歷幾個步驟:

a)“保護CPU環(huán)境”

b)“分析中斷原因”

c)“轉(zhuǎn)入缺頁中斷處理程序”

d)“恢復(fù)CPU環(huán)境”等寞酿。

作為一種特殊中斷,與一般中斷有明顯區(qū)別:

(1)

在指令執(zhí)行期間產(chǎn)生和處理中斷信號怕膛。

(2)

一條指令在執(zhí)行期間熟嫩,可能產(chǎn)生多次缺頁中斷秦踪。




2)內(nèi)存分配

? ?作業(yè)不一次裝入褐捻,部分裝入的情況下如何為進程分配內(nèi)存掸茅,涉及三個問題:

①最小物理塊數(shù)的確定

少于此數(shù)量進程將不能運行

與計算機的硬件結(jié)構(gòu)有關(guān),取決于指令的格式柠逞、功能和尋址方式

②物理塊的分配策略

③物理塊的分配算法


③物理塊的分配算法


u考慮優(yōu)先權(quán)的分配算法

???? 實際應(yīng)用中昧狮,要照顧重要、急迫的作業(yè)盡快完成板壮,為它分配較多的內(nèi)存空間逗鸣。

所有可用物理塊分兩部分:

?一部分按比例分配給各進程;

另一部分根據(jù)各進程優(yōu)先權(quán)绰精,適當?shù)貫槠湓黾臃蓊~撒璧,分配給各進程。

3)調(diào)頁策略

何時調(diào)入頁面

1.預(yù)調(diào)頁策略

以預(yù)測為基礎(chǔ)笨使,將預(yù)計不久后便會被訪問的若干頁面卿樱,預(yù)先調(diào)入內(nèi)存。

優(yōu)點:一次調(diào)入若干頁硫椰,效率較好

缺點:預(yù)測不一定準確繁调,預(yù)調(diào)入的頁面可能根本不被執(zhí)行到。主要用于進程的首次調(diào)入靶草,由程序員指出應(yīng)該先調(diào)入哪些頁蹄胰。

2.請求調(diào)頁策略

運行中需要的頁面不在內(nèi)存,便立即提出請求奕翔,由OS將其調(diào)入內(nèi)存裕寨。

優(yōu)點:由請求調(diào)頁策略所確定調(diào)入的頁,一定會被訪問派继;比較容易實現(xiàn)帮坚。

缺點:每次僅調(diào)入一頁,需花費較大的系統(tǒng)開銷互艾,增加了磁盤I/O的啟動頻率试和。


進程運行過程中,訪問的頁面不在內(nèi)存纫普,調(diào)入時內(nèi)存已無空閑空間阅悍,需要將內(nèi)存中的一頁程序或數(shù)據(jù)調(diào)到外存。

3.頁面置換算法

頁面置換算法(pagereplacement algorithms):選擇換出哪些頁面的算法昨稼,其好壞直接影響系統(tǒng)的性能节视。

應(yīng)具有較低的缺頁率:

頁面調(diào)入次數(shù)(缺頁次數(shù))/總的頁面使用次數(shù)

1)最佳(Optimal)置換算法

Belady,1966年提出的一種理論上的算法

換出以后永不再用的假栓,或在最長(未來)時間內(nèi)不再被訪問的頁面寻行。

優(yōu)點:保證獲得最低的缺頁率

不足:無法實現(xiàn),因為無法預(yù)知一進程將來的運行情況

作用:作為參照標準匾荆,評價其他算法拌蜘。

2)先進先出置換算法(FIFO)

先進入的先淘汰杆烁,即選擇內(nèi)存中駐留時間最久的頁面予以淘汰。

優(yōu)點:實現(xiàn)簡單简卧,把一進程已調(diào)入內(nèi)存的頁面按先后次序組織成一個隊列兔魂,并設(shè)置一個指針(替換指針),使它總是指向隊首最老的頁面举娩。

不足:與進程實際運行規(guī)律不相適應(yīng)(較早調(diào)入的頁往往是經(jīng)常被訪問的頁析校,頻繁被對換造成運行性能降低)



Belady現(xiàn)象:出現(xiàn)分配的頁面數(shù)增多,缺頁率反而提高的異惩妫現(xiàn)象智玻。

描述:一個進程P要訪問M個頁,OS分配N個內(nèi)存頁面給進程P芙代;對一個訪問序列S尚困,發(fā)生缺頁次數(shù)為PE(S,N)。當N增大時链蕊,PE(S, N)時而增大事甜,時而減小。

Belady現(xiàn)象的原因:FIFO算法的置換特征與進程訪問內(nèi)存的動態(tài)特征矛盾滔韵,即被置換的頁面并不是進程不會訪問的逻谦。

3)最近最久未使用(LRU)置換算法

無法預(yù)測將來的使用情況,只能利用“最近的過去”作為“最近的將來”的近似陪蜻,因此邦马,LRU置換算法選擇最近最久未使用(least recently used)的頁面予以淘汰

①寄存器記錄時間的原理

一進程有8個頁面,每個頁面需配備一個8位的(移位)寄存器宴卖。

移位寄存器表示為

? ? ? ? ? ? R=Rn-1Rn-2Rn-3…R2R1R0

頁面被訪問后的操作:

將該頁對應(yīng)的寄存器的Rn-1位置為1

如何記時:

由系統(tǒng)發(fā)出定時信號滋将,每隔一定時間將所有寄存器右移1位。

某一時刻症昏,比較各寄存器的值随闽,被用到的標志1逐漸往低位上積累,若高位上沒有1肝谭,就說明最近沒用過掘宪。所以最近最久未使用的就是寄存器值最小的那個頁。

4)輪轉(zhuǎn)算法(clock)?又稱最近未使用算法(NRU, Not Recently Used)攘烛,

LRU(最近最久未使用算法)近似算法

折衷FIFO

每個頁設(shè)一個使用標志位(use bit)魏滚,若該頁被訪問則將其置為1。

設(shè)置一個指針坟漱,從當前指針位置開始按地址先后檢查各頁鼠次,尋找use bit=0的頁面作為被置換頁。

若指針經(jīng)過的頁use bit=1,修改use bit=0(暫不凋出腥寇,給被用過的頁面駐留的機會 )成翩,指針繼續(xù)向下。到所有頁面末尾后再返回隊首檢查花颗。

5)其他置換算法

最少使用 (LFU, Least Frequently Used)

關(guān)鍵在次數(shù)記錄上

每頁設(shè)置訪問計數(shù)器捕传,每當頁面被訪問時惠拭,該頁面的訪問計數(shù)器加1扩劝;缺頁中斷時,淘汰計數(shù)值最小的頁面职辅,并將所有計數(shù)清零棒呛;

計數(shù)的實現(xiàn)類似LRU,用移位寄存器域携,但比較時不是簡單比較寄存器的值簇秒,而是比較寄存器每位的和∑Ri。

頁面緩沖算法PBA(page buffering algorithm)

對FIFO算法的發(fā)展秀鞭,彌補了FIFO可能造成的I/O開銷趋观,又不需要LRU等算法的硬件支持。

仍用FIFO算法選擇被置換頁

但并不將其馬上換入外存锋边。

系統(tǒng)將頁面放入兩個鏈表之一:如果頁面未被修改皱坛,就將其歸入到空閑頁面鏈表的末尾;否則將其歸入到已修改頁面鏈表豆巨。

需要調(diào)入新的物理頁面時剩辟,將新頁面內(nèi)容讀入到空閑頁面鏈表的第一項所指的頁面,然后將第一項刪除(從空閑鏈表摘下)往扔。

空閑頁面和已修改頁面贩猎,仍停留在內(nèi)存中一段時間,如果這些頁面被再次訪問萍膛,只需較小開銷吭服,而被訪問的頁面可以返還作為進程的內(nèi)存頁。

當已修改頁面達到一定數(shù)目后蝗罗,再將它們一起調(diào)出到外存噪馏,然后將它們歸入空閑頁面鏈表,這樣能大大減少I/O操作的次數(shù)绿饵。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末欠肾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拟赊,更是在濱河造成了極大的恐慌刺桃,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吸祟,死亡現(xiàn)場離奇詭異瑟慈,居然都是意外死亡桃移,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門葛碧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來借杰,“玉大人,你說我怎么就攤上這事进泼≌岷猓” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵乳绕,是天一觀的道長绞惦。 經(jīng)常有香客問我,道長洋措,這世上最難降的妖魔是什么济蝉? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮菠发,結(jié)果婚禮上王滤,老公的妹妹穿的比我還像新娘。我一直安慰自己滓鸠,他們只是感情好雁乡,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哥力,像睡著了一般蔗怠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吩跋,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天寞射,我揣著相機與錄音,去河邊找鬼锌钮。 笑死桥温,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的梁丘。 我是一名探鬼主播侵浸,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼氛谜!你這毒婦竟也來了掏觉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤值漫,失蹤者是張志新(化名)和其女友劉穎澳腹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡酱塔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年沥邻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羊娃。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡唐全,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蕊玷,到底是詐尸還是另有隱情邮利,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布集畅,位于F島的核電站近弟,受9級特大地震影響缅糟,放射性物質(zhì)發(fā)生泄漏挺智。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一窗宦、第九天 我趴在偏房一處隱蔽的房頂上張望赦颇。 院中可真熱鬧,春花似錦赴涵、人聲如沸媒怯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扇苞。三九已至,卻和暖如春寄纵,著一層夾襖步出監(jiān)牢的瞬間鳖敷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工程拭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留定踱,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓恃鞋,卻偏偏與公主長得像崖媚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子恤浪,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. 虛擬存儲器的基本概念 分析常規(guī)存儲器管理不足的原因: 1)常規(guī)存儲器管理方式的特征 一次性:作業(yè)在運行前一...
    盆栽木只閱讀 1,320評論 0 0
  • 1. 虛擬存儲器的基本概念 分析常規(guī)存儲器管理不足的原因: 1)常規(guī)存儲器管理方式的特征 一次性:作業(yè)在運行前一...
    Whocare_2f87閱讀 1,092評論 0 0
  • Suppose an array sorted in ascending order is rotated at ...
    ShutLove閱讀 193評論 0 0
  • 其實兩個人之間早已傷痕累累畅哑, 其實兩個人之間早已不付初心。 其實兩個人之間早已貌離神各水由, 其實兩個人之間早已失衡天...
    雪梨燉冰糖閱讀 185評論 0 0