1. 程式人生 > >第五章 虛擬儲存器

第五章 虛擬儲存器

主要知識點

1.基本概念

2.連續分配方式

3.非連續分配方式  

4.虛擬記憶體基本概念

5.請求分頁管理方式  

6.頁面置換演算法  

7.頁面分配策略

8.請求分段管理方式  

9.請求段頁式管理方式 

 

程式執行的區域性性:

1.時間區域性性(temporal locality)

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

2.空間區域性性(spatial locality)

如果一儲存器位置被引用了一次,那麼程式很可能在不遠的將來引用附近的一個儲存器位置。

 

交換技術與虛存使用的調入調出技術有何相同和不同之處

1.主要相同點是都要在記憶體與外存之間交換資訊;

2.主要區別在於交換技術換出換進一般是整個程序(proc結構和共享正文段除外),因此一個程序的大小受物理儲存器的限制;

3.而虛存中使用的調入調出技術在記憶體與外存之間來回傳遞的是儲存頁或儲存段,而不是整個程序,從而使得程序對映具有了更大的靈活性,且允許程序的大小比可用的物理儲存空間大的多 。

 

虛擬儲存器的定義:

指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。

 

特徵:

1.離散分配方式是基礎

2.多次性:一個作業被分成多次調入記憶體執行

3.對換性:允許在作業的執行過程中進行換進、換出。(程序整體對換不算虛擬) 

4.虛擬性:能夠從邏輯上擴充記憶體容量,使使用者所看到的記憶體容量遠大於實際記憶體容量。

 

請求分頁儲存管理方式

1.基本分頁 + “請求調頁”和“頁面置換”功能。

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

 

缺頁率= 頁面調入次數(缺頁次數)/ 總的頁面使用次數

 

虛擬儲存管理下訪問記憶體的有效時間

1.頁在記憶體,且快表檢索命中 EAT= λ + t

2.頁在記憶體,但快表檢索沒有命中

   EAT= 快表檢索時間+訪問頁表時間+修改更新快表時間+訪問頁面實體記憶體時間         

          = λ +t+ λ +t=2*(λ +t)

3.頁面不在記憶體

  EAT=快表檢索時間+訪問頁表時間+缺頁中斷處理時間+修改更新快表時間+訪問頁面實體記憶體時間         

         = λ+ t + s+ λ+ t 

4.加入概率的綜合公式(a是快表命中率,f是缺頁率)

   EAT= λ+ a*t +(1-a)*{    }           

          = λ+a*t +(1-a)*{t + f*(s+λ+t)  +(1-f)*(λ+ t) }

 

影響缺頁率的主要因素

1.分配給作業的主存塊數:     

   多則缺頁率低,反之則高。

2.頁面大小:     

   大則缺頁率低;反之則高。

3.頁面排程演算法:     

   對缺頁中斷率影響很大,但不可能找到一種最佳演算法。

4.程式編制方法:     

    以陣列運算為例,如果每一行元素存放在一頁中,則按行處理各元素缺頁中斷率低;

    反之,按列處理各元素,則缺頁中斷率高。

 

系統抖動:

1.為了提高處理機利用率,可增加多道程式併發度;

2.程序數目增加過多,每個程序分配得到的物理塊太少,在某個臨界點上,會出現剛被淘汰的頁很快又需重新調入;而調入不久又被淘汰出去;出現頻繁缺頁

3.大部分處理器時間都用在來回的頁面排程上,這種局面稱為系統抖動或顛簸(thrashing)

 

抖動的後果:

1.缺頁率急劇增加

2.記憶體有效存取時間加長 

3.系統吞吐量驟減;系統已基本不能完成什麼任務,而是忙於頁面對換操作,cpu雖然忙,但效率急劇下降。

 

抖動根本原因:

1.頁面淘汰演算法不合理;

2.分配給程序的物理頁面數(駐留集)太少。