1. 程式人生 > >第五章 虛擬儲存器 *(續)

第五章 虛擬儲存器 *(續)

※抖動

  1. 系統抖動:
    • 為了提高處理機利用率,可增加多道程式併發度;
    • 但程序數目增加過多,每個程序分配得到的物理塊太少,在某個臨界點上,會出現剛被淘汰的頁很快又需重新調入;而調入不久又被淘汰出去;出現頻繁缺頁
    • 大部分處理器時間都用在來回的頁面排程上,這種局面稱為系統抖動或顛簸(thrashing)
  2. 抖動的後果:
    • 缺頁率急劇增加
    • 記憶體有效存取時間加長,
    • 系統吞吐量驟減;系統已基本不能完成什麼任務,而是忙於頁面對換操作,cpu雖然忙,但效率急劇下降。
  3. 根本原因:
    • 頁面淘汰演算法不合理;分配給程序的物理頁面數(駐留集)太少。

 

  1. 常用防抖動方法:
    • 區域性置換策略;
    • 頁面調入記憶體前檢查各程序工作集,為缺頁率高的增加有限物理塊;
    • L缺頁間的平均時間=S置換一個頁面所需時間,可使磁碟和cpu達到最大利用率;
    • 抖動發生時選擇暫停一些程序,調節多道程式度。

  1. 缺頁率與物理塊數有關聯,基於程式區域性性原理,若能預知程式在某段時間要訪問的頁面並全部調入他們,將大大降低缺頁率。
  2. Denning提出工作集概念:
    • 某段時間間隔中,程序實際要訪問的頁面的集合。可以用一個二元函式W(t,
      D)來表示, t是當前的執行時刻,D 稱為工作集視窗(working-set window )。

 

 

  1. 工作集模型的原理:
    • 作業系統跟蹤每個程序的工作集,併為程序分配大於其工作集的物理塊。
    • 如果還有空閒物理塊,則可以再調一個程序到記憶體以增加多道程式數。
    • 如果所有工作集之和增加以至於超過了可用物理塊的總數,那麼作業系統會暫停一個程序,將其頁面調出並且將其物理塊分配給其他程序,防止出現抖動現象。
  2. 正確選擇工作集的大小,對儲存器的利用率和系統吞吐量的提嵩,都將產生重要影響。

 

駐留集

  1. 駐留(常駐)集是指在當前時刻,程序實際駐留在記憶體當中的頁面集合。
  2. 工作集是程序在執行過程中固有的性質,而駐留集取決於系統分配給程序的物理頁面數目,以及所採用的頁面置換演算法;
  3. 如果一個程序的整個工作集都在記憶體當中,即駐留集 Ê 工作集,那麼程序將很順利地執行,而不會造成太多的缺頁中斷(直到工作集發生劇烈變動,從而過渡到另一個狀態);
  4. 當駐留集達到某個數目之後,再給它分配更多的物理頁面,缺頁率也不會明顯下降。

 

  1. 作業系統中的“抖動”是指   C   的現象。

A. 根據一定的頁面置換演算法,將頁面調出

B. 由於選擇了長期未被訪問的頁進行置換,導致系統更換頁面

C. 頁面調入不久就被匯出,匯出不久又被調入,導致系統頻繁更換頁面

D. 根據系統執行情況決定將哪個頁面調出,而不是由頁面置換演算法決定更換哪個頁面

  1. 系統資源利用率與系統效率是否一定成正比? 如不是,舉例說明之

          答:系統效率高則資源利用率高,而反之卻不盡然。例如,在虛擬頁式儲存管理系統中,當頁面置換演算法不合理或分給程序的頁框數過少時,可能發生抖動(thrashing),此時I/O裝置很忙碌,但系統效率可能很低。

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

            在請求分段系統中,程式執行之前,只需先調入若干個分段(不必調入所有的分段),便可啟動執行。當所訪問的段不在記憶體中時,可請求OS將所缺的段調入記憶體。

1)請求分段中的硬體支援

  • 段表機制
  • 缺段中斷機構
  • 地址變換機構

 

②缺段中斷機構

  1. 發現執行程序所訪問段尚未調入記憶體
    • 由缺段中斷機構產生一缺段中斷訊號
    • 進入OS,由缺段中斷處理程式將所需的段調入記憶體。
    • 缺段中斷同樣在一條指令的執行期間產生和處理中斷,一條指令執行可能產生多次缺段中斷。但不會出現一條指令被分割在兩個分段中或一組資訊被分割在兩個分段中的情況。

 地址變換機構。

基於分段系統地址變換機構的基礎

  1. 段調入記憶體
  2. 修改段表
  3. 再利用段表進行地址變換。

總之:就是增加了缺段中斷的請求及處理等功能

 

2)分段的共享和保護

 

分段在邏輯意義上劃分,實現共享和保護都較方便。以下討論具體實現:

①實現共享:共享段表

       在記憶體中配置一張共享段表,每個共享段都佔有一表項,記錄如下內容:

  1. 共享計數count:
    • 共享段為多個程序所需要,當某程序不再需要它而釋放它時,系統並不回收該段所佔記憶體區,僅當所有共享該段的程序全都不再需要它時,才由系統回收該段所佔記憶體區。設定count用於記錄有多少個程序需要共享該分段。

 

  1. 存取控制欄位:一個共享段給不同的程序以不同的存取許可權。
  2. 段號:對一個共享段,不同的程序可用不同的段號。

 

② 共享段如何分享與回收

 

  1. 共享段的分配
    • 第一個請求使用該共享段的程序A:系統為該共享段分配一物理區,再把共享段裝入該區;
    • 將該區的始址填入A的段表相應項;
    • 共享段表中增加一表項,填寫有關資料,count置1;
    • 其他程序B也呼叫該共享段時,無需再為該段分配記憶體,只需在B的段表中增加一表項,填寫該共享段的實體地址;在共享段的段表中,填上呼叫程序的程序名、存取控制等,再執行count:=count+1操作。
  2. 共享段的回收
    • 包括撤消在程序段表中共享段所對應的表項,執行count:=count-1。
    • 如果count為0,則由系統回收該共享段的實體記憶體,並取消共享段表中該段所對應的表項。

 

③ 分段保護

  1. 越界檢查
    • 段表暫存器存放了段表長度;段表中存放了每個段的段長。
    • 在進行儲存訪問時,將段號與段表長度比較,段內地址與段長比較。
  2. 存取控制檢查
    • 尤其表現在不同程序對共享段的不同使用上。段表每個表項都設定“存取控制”欄位,規定該段的訪問方式:只讀,只執行,讀/寫
  3. 環保護機構
    • 規定:低編號的環具有高優先權
    • 遵循的原則:一個程式可以訪問駐留在相同環或較低特權環中的資料。一個程式可以呼叫駐留在相同環或較高特權環中的服務

 

要點練習題

 

  1. 實現虛擬儲存器的目的是:

從邏輯上擴充主存容量

 

  1. 虛擬的基礎是區域性性原理,其基本含義是指令的區域性性(時間區域性性與空間區域性性)。
  2. 在虛存管理中,虛擬地址空間是指邏輯地址空間,實地址空間是指實體地址空間;前者的大小受   的限制,而後者的大小受      的限制。

答:機器的指令地址長度;實體記憶體大小。

 

4.在請求頁式系統中,OPT是       ;LRU是       ;NRU是       ;LFU是     

最佳置換演算法;最近最久未使用置換演算法;最近未使用置換演算法;最不經常使用置換演算法。

  1. 頁式虛擬儲存管理的主要特點是:

不要求將作業同時全部裝入到主存的連續區域。

 

  1. 在請求分頁儲存管理中,若採用FIFO頁面淘汰演算法,則當分配的頁面數增加時,缺頁中斷的次數      可能增加也可能減少     
  2. 在請求分頁系統中,地址變換過程可能會因為                       錯誤等原因而產生中斷 缺頁、地址越界、訪問許可權錯誤
  3.  

 

  1. 在請求分段儲存管理中,系統必須至少具有三種支援機構,分別為     段表、缺段中斷機構、地址變換機構。