和春技術學院資訊管理系 九十三學年度第一學期 系統程式 教學投影片 課程網頁 講師:毛立仁 第六章 虛擬記憶體管理      6-1 6-2 6-3 6-4 6-5 虛擬記憶體管理策略 需求式分頁系統的效能評估 分頁的取代策略 動盪現象 畢雷帝的異常現象 6-1 虛擬記憶體管理策略    虛擬記憶體的管理策略依其存取程式、 資料的時機可分成兩種類型:(此處將以 分頁系統做討論) (1) 需求式分頁策略 (Demand Paging) (2) 預期式分頁策略 (Anticipatory Paging)

Download Report

Transcript 和春技術學院資訊管理系 九十三學年度第一學期 系統程式 教學投影片 課程網頁 講師:毛立仁 第六章 虛擬記憶體管理      6-1 6-2 6-3 6-4 6-5 虛擬記憶體管理策略 需求式分頁系統的效能評估 分頁的取代策略 動盪現象 畢雷帝的異常現象 6-1 虛擬記憶體管理策略    虛擬記憶體的管理策略依其存取程式、 資料的時機可分成兩種類型:(此處將以 分頁系統做討論) (1) 需求式分頁策略 (Demand Paging) (2) 預期式分頁策略 (Anticipatory Paging)

和春技術學院資訊管理系 九十三學年度第一學期

系統程式

教學投影片

課程網頁

講師:毛立仁

1

第六章 虛擬記憶體管理

     6-1 虛擬記憶體管理策略 6-2 需求式分頁系統的效能評估 6-3 分頁的取代策略 6-4 動盪現象 6-5 畢雷帝的異常現象 2

6-1 虛擬記憶體管理策略

   虛擬記憶體的管理策略依其存取程式、 資料的時機可分成兩種類型:(此處將以 分頁系統做討論) (1) 需求式分頁策略 (Demand Paging) (2) 預期式分頁策略 (Anticipatory Paging) 3

需求式分頁策略

需求式分頁策略是種最一般化的虛擬記 憶體系統 (Virtual Memory System), 此種策略可視為具有置換 (Swap) 能力 的分頁系統。程式中的各頁無需整個置 放於記憶體內,僅有在程式確實需要取 用此頁時,才會將它從次儲存體中載入 主記憶體中。 4

預期式分頁策略

此種策略與需求式分頁策略相類似,其 不同在於作業系統會預先判斷可能會需 要的頁次 (依據局限性 (Locality) 的 特性判斷),而預先將該頁載入主記憶體 中,藉以減少等候的時間。在記憶體空 間夠大時,可以採用此法。 5

6-2 需求式分頁系統效能評估

     需求式分頁系統的效能一般是以有效存取時間 (Effective Access Time) 為評估依據。假設 p:發生取頁失敗 (Page Fault) 的機率。 t ma :至記憶體中存取資料所需花費的時間 (Memory Access Time)。 t pf :處理取頁失敗所需花費的時間 (Page Fault Time)。則 有效存取時間 = (1 - p)  t ma + p  t pf 。 6

取頁失敗 (Page Fault)

若 CPU 所要使用的頁 (Page) 目前並沒有 在記憶體內,則謂之取頁失敗。此現象可 由頁映成表 (Page Map Table) 中的頁駐 存位元 (Page Resident Bit) r = 0 得知。 7

當取頁失敗發生時,OS 會有如下的處理步驟: (1) CPU 會檢測所參考到的位址 (Reference Address) 是否為有效的位址。如果所參考到的 位址不是有效的位址,則中止此程式的執行。 (即產生一個中斷 (Trap))。 (2) 如果所參考到的位址是有效的位址,但所 需求的頁 (Page) 目前並不在記憶體內 (即頁 駐存位元 r = 0),則發出取頁失敗的訊息,準 備由次儲存體將所需求的頁載入記憶體中。 (3) 從記憶體中找尋一個可用的頁幅 (Free Frame),以供該頁載入時使用。 8

(4)將所需求的頁由次儲存體載入指定的頁幅中。 (5)在該需求頁已載入記憶體後,更改頁映成表 (Page Map Table) 內頁駐存位元的值為 r = 1,以指示此需求頁目前已經在記憶體內。 (6)重新執行在發生取頁失敗前的指令。即重新自 記憶體中讀取剛才程式中所需求的頁。  °Ñ¦Ò¨ìªº-¶ LOA D A r = 0  ¨ú-¶¥¢±Ñ ªº°T®§  ©Ò»Ý¨D¤§-¶¦b ¦¸Àx¦sÅ餤  -«·s °õ¦æ -¶¬M¦¨ªí OS µ{¦¡ ¥i¥Îªº-¶´T (Free Frame) ¦¸Àx¦sÅé  ¸ü¤J©Ò»Ý¨Dªº-¶  -קï-¶¬M¦¨ªí ¨Ï r=1 ¥D°O¾ÐÅé 9

6-3 分頁的取代策略

當發生一個取頁失敗時,而且在記憶體中 所有的頁幅皆已被佔滿時,則此時那一頁 該被移走,以便能從次儲存體中載入所需 要的頁。在本章節中將介紹各種分頁取代 策略 (Page Replacement Strategy) 來處 理取頁失敗之情況。 10

  範例: 設有一參考字串 (Reference String) 如下: FABCADAECDADCBCABFAB 且假設記憶體中僅有 3 個頁幅 (Frame)。 11

最佳取代原則(Optimal Replacement)

它是個理想化的取代法則,它可以預測 未來,被取代的頁是要經過一段很長的 時間才會再被用到的頁,此法並不切實 際,且非常難實現。 °Ñ¦Ò¦r¦ê¡G F A B F F F C C A C D C A C E C C C D C A C D C C C B C C C A C B C F F A F B F A A B A B A B A D A D E D E D E D A D A D A D A B A B A B A B A B A B A B -¶´T 總共有 9 次的取頁失敗 (Page Fault)。 12

先進先出取代法(First-In-First-Out,FIFO) 此方法在頁被載入時,便記錄其載入記憶 體的時間,時間愈早者,愈先被取代。缺 點是被取代的頁常是將馬上會被使用的。 °Ñ¦Ò¦r¦ê¡G F A B F F F C A A D A B A C E D C D A E A C D C C C B C D A A A B A F B A C B F A A B B C B C C D D A A E E C C D D A D A D A A B B C B C B C C F F A A B -¶´T 總共有 15 次的取頁失敗 (Page Fault)。 13

最久未用的頁取代法(Least Recently Used,LRU) 選擇最久未再被使用到的頁為取代對象。缺點 是每次使用時,便需要記錄被使用時的時間, 故浪費 CPU 時間,同時很久未被使用的頁可 能馬上就會被用到。例如在較大的迴路 (Loop) 中就常有這種情況發生。 °Ñ¦Ò¦r¦ê¡G F A B F F F C A A B D C A C E D C D A E A C D C C A B D C D A B B C F A A B B F A A B B C C A A D A D A E E C C D D A A D D C C B B C C A A B B F F A A B -¶´T 總共有 12 次的取頁失敗 (Page Fault)。 14

最不常用的頁取代法(Least Frequetly Used,LFU) 每個頁都會有一個參考計數器 用來計錄該頁 被參考的次數,該頁每被參考一次,則計數器 加 1,被取代的對象為該頁的計數器值最小者。 此方法的缺點是最不常用的頁可能就是剛拿進 來不久的頁;因此,該頁會馬上被取代掉。 °Ñ¦Ò¦r¦ê¡G F A B C A D A E C D A D C B C A B F A B F F F C C C C E E D D D D B B B B F F B A A A A A A A A A A A A A A A A A A A B B B D D D C C C C C C C C C C C C -¶´T A=0 B=0 C=0 D=0 E=0 F=1 A=1 B=0 C=0 D=0 E=0 F=1 A=1 B=1 C=0 D=0 E=0 F=1 A=1 B=1 C=1 D=0 E=0 F=1 A=2 B=1 C=1 D=0 E=0 F=1 A=2 B=1 C=1 D=1 E=0 F=1 A=3 B=1 C=1 D=1 E=0 F=1 A=3 B=1 C=1 D=1 E=1 F=1 A=3 B=1 C=2 D=1 E=1 F=1 A=3 B=1 C=2 D=2 E=1 F=1 A=4 B=1 C=2 D=2 E=1 F=1 A=4 B=1 C=2 D=3 E=1 F=1 A=4 B=1 C=3 D=3 E=1 F=1 A=4 B=2 C=3 D=3 E=1 F=1 A=4 B=2 C=4 D=3 E=1 F=1 A=5 B=2 C=4 D=3 E=1 F=1 A=5 B=3 C=4 D=3 E=1 F=1 A=5 B=3 C=4 D=3 E=1 F=2 A=6 B=3 C=4 D=3 E=1 F=2 A=6 B=4 C=4 D=3 E=1 F=2 總共有 11 次的取頁失敗 (Page Fault)。 15

近來未用的頁取代法(Not Used Recently,NUR) 其觀念為如果最近未被使用到的頁,則它在最近 的一段時間內也將比較不會被使用到,此種觀念 以乎比較合理。此法必須在每一個頁上附加兩個 取用位元,且隨時需要更新。 (1)參考位元 (Referent Bit),0 表示此頁沒有 使用過,1 表示已被使用過。 (2)修改位元 (Modified Bit),0 表示此頁未被 修改過,1 表示已被修改過。 16

NUR 策略如下: 當需要取代一個頁時,則以一個仍未被使用過 的頁為優先慮的對象。若是全部的頁都已使用 過,則選擇以未被修改的頁為優先考慮。而且 被取代的頁若是已經被修改過,則必須重新寫 回次儲存體;否則,直接蓋掉即可。採用此種 方式時,必須需週期性的把取用位元重新設定 為零;否則,會喪失應用的功能 (因時間過久 時,所有的頁將都會被參考過或修改過)。 17

LRU 之二次機會法(LRU Second Chance) 就 LRU 之二次機會法的基本觀念而言,它是類 似於 FIFO 替換法則。該替換法則的作業方式是 循序選擇一個頁並檢查該選定頁的參考位元。若 是該參考位元為 0,則取代該頁;反之,若是該 參考位元為 1,則將該參考位元重新設為 0。在 所有的參考位元皆為 1 的情況下,則此取代法 則將退化成 FIFO 替代法則。因為在第一次時, 它會逐一選定某頁並檢查該頁之參考位元後,每 一頁的參考位元皆已被重新設定為 0,所以又重 頭 (第二次) 選取第一頁並檢查其參考位元。因 為此時該參考位元已為 0,故取代該頁。 18

任意頁取代法(Random Page Replacement) 隨意選擇一頁為取代的對象,因效果不 佳,故此法很少被採用。 19

6-4 動盪現象

當取頁失敗 的頻率過高時,則會有過多 的取頁與頁取代的動作,使得有太多的 CPU 時間花費於頁的取入 與取出 ,而 僅有少量的 CPU 時間真正的用於程式的 執行。此種現象謂之動盪現象 (Thrashing)。 20

理論上,增加多程式的程度 會增加 CPU 的使用 率,但是當多程式的程度到達某一程度時,再繼 續增加多程式的程度反而會降低 CPU 的使用率。 因為多程式的程度增加,相對的取頁失敗 的機 率亦會增加,因而造成動盪現象,CPU 的使用率 自然就降低了。 CPU ³Ì¤j¨Ï¥Î²v CPU ¨Ï¥Î²v (Degree of Multiprogramming) ¦hµ{¦¡¤§µ{«× ¶}©l²£¥Í°ÊÀú¡A CPU ªº¨Ï¥Î²v¶}©l«æ³t¤U-° 21

降低發生動盪的方法

(1) 局限性 (Locality) (2) 工作組 (Working Set) 22

局限性(Locality)

由經驗法則中得知,儲存體的存取經常具 有局限性的現象;即處理單元在執行時經 常傾向於以不規則的方式取用儲存體,但 是卻常局限於某一局部的區域。局限性的 表現有時間 (Temporal) 與空間 (Spatial) 兩種。 23

時間局限性 (Temporal Locality): 表示剛才被使用過的資料很可能不久又會再被使用 到。 例如:   迴路 (Looping) 副程式 (Subrountines)  堆疊 (Stack)  用 做 計 數 的 變 數 Counting) (Variable Used For 24

 空間局限性 (Spatial Locality): 若某一位置的資料被取用到,則在其附 近位置的資料也極有可能馬上會被取用。 例如:   矩陣的運算     程式的循序性執行 程式設計師常把相關的變數放在一起 25

工作組(Working Set)

由於處理單元在執行時常具有局限性的特性,而 所謂的工作組即是處理單元在某段時間內所有取 用到的頁的集合。工作組是一個為了使處理單元 執行時更有效率,而必須放在主儲存體中的頁所 形成的集合。處理單元在某一執行時段內會較偏 重於某部份的頁次 (即工作組),僅有在程式執 行位址有明顯變動時 (例如:跳出迴圈外),才 又會形成另一個工作組。故可依此觀念設計工作 組取代策略,使工作組均放在主儲存體裡,系統 依據頁的置換程度而動態性的調整工作組的大小。 26

6-5 畢雷帝的異常現象

直覺上增加記憶體內頁框的數量應會使得 取頁失敗的次數降低,但事實上並非如此。 所謂畢雷帝異常現象 (Belady's anormaly) 即是在採用頁替換法則時,當頁框的個數 增加時,其取頁失敗的次數不降反增之現 象。 27

 範例: 假設有一參考字串為 A B C D A B E A B C D E,且採用 FIFO 取代法則時, ²¦¹p«Ò (Belady) ªº²§±`²{¶H «h·í-¶®Ø¼Æ¬° 2 ®É¡A¦@¦³ 12 ¦¸ªº¨ú-¶¥¢±Ñ¡C «h·í-¶®Ø¼Æ¬° 3 ®É¡A¦@¦³ 9 ¦¸ªº¨ú-¶¥¢±Ñ¡C «h·í-¶®Ø¼Æ¬° 4 ®É¡A¦@¦³ 10 ¦¸ªº¨ú-¶¥¢±Ñ¡C «h·í-¶®Ø¼Æ¬° 5 ®É¡A¦@¦³ 8 ¦¸ªº¨ú-¶¥¢±Ñ¡C 28