操作系統--課堂問答筆記19--習題答案

課堂筆記學習視頻來自 操作系統
說明:其他”課堂問答筆記“也在”操作系統“專欄

【4-5、4-6、4-7】

  1. 簡述段頁式存儲管理方式的特點和優勢。
    答:簡單說,段頁式存儲管理就是把用戶程序採用外部分段、內部分頁的方式裝入內存,其結合了分頁和分段兩種存儲管理的優勢,對用戶來講,按段的邏輯關係進行劃分;對系統講,按頁劃分每一段。一個用戶程序對應一個段表和若干個頁表(有多少個段表項,即用戶程序分多少段,那麼就有多少個頁表),段頁式存儲管理方式在進行地址變換時需要三次訪問內存(引入快表後則可能一次訪問高速緩存和一次訪問內存)。
    在這裏插入圖片描述
    優點:保留了分段和請求分頁存儲管理的全部優點;提供了虛擬存儲空間,能更有效利用主存。
    缺點:增加了硬件成本;系統複雜度較大。

  2. 簡述局部性原理。
    答:之前介紹的各種存儲器管理方式(分區、分頁、分段)統稱爲傳統存儲器管理方式,它們全都具有如下兩個共同的特徵:1) 一次性(一次並全部裝入內存);2) 駐留性(未執行完則常駐內存)。但程序在執行時將呈現出局部性規律,即在一較短的時間內,程序的執行僅侷限於某個部分,相應地,它所訪問的存儲空間也侷限於某個區域。因此程序執行時無需一次並全部裝入內存也無需常駐內存,而僅須將那些當前要運行的少數頁面或段先裝入內存便可運行,其餘部分暫留在外存中。
    局部性通常有兩種不同的形式:時間局部性和空間局部性。時間局部性:在一個具有良好的時間局部性的程序中,被訪問過一次的內存地址空間很可能在不遠的將來會被再次訪問。空間局部性:在一個具有良好空間局部性的程序中,如果一個內存地址空間被訪問了一次,那麼程序很可能在不遠的將來訪問其附近的某一個內存地址空間。
    正是由於局部性原理的存在,使得虛擬存儲器技術的實現成爲可能。

  3. 虛擬存儲器的定義和特徵。
    答:定義:虛擬存儲器是指具有請求調入功能和置換功能,能從邏輯上對內存容量進行擴充的一種存儲器系統。在虛擬存儲器系統中,作業無需全部都裝入,只要裝入一部分就可運行。當用戶看到自己的程序能在系統中正常運行時,他會認爲,該系統所具有的內存容量一定比自己的程序大,或者說,用戶所感覺到的內存容量會比實際內存容量大得多。但用戶所看到的大容量只是一種錯覺,是虛的,故人們把這樣的存儲器稱爲虛擬存儲器。
    特徵:與傳統的存儲器管理方式比較,虛擬存儲器具有以下三個重要特徵:1) 多次性:所需的全部程序和數據要分成多次調入內存;2) 對換性:允許在作業的運行過程中進行換進、換出;3) 虛擬性:能夠從邏輯上擴充內存容量,使用戶所看到的內存容量遠大於實際內存容量。

  4. 在請求分頁系統中,頁表應包含哪些表項?每項的作用是什麼?
    答:如下圖:
    在這裏插入圖片描述
    在請求分頁系統中,其頁表項中包含的數據項有頁號,物理塊號,狀態位P,訪問字段A,修改位M和外存地址;
    頁號和物理塊號:與基本分頁系統中對應頁表項含義相同;
    狀態位P:指示該頁是否調入內存,供程序訪問時參考,通常0表示未調入、1表示已調入;
    訪問字段A:用於記錄本頁在一段時間內被訪問的次數,或最近已有多長時間未被訪問,提供給置換算法在選擇換出頁面時參考;
    修改位M:表示該頁在調入內存後是否被修改過,通常0表示未修改(淘汰該頁也就是從內存換出該頁時無需替換外存對應頁)、1表示已修改(淘汰該頁時需要替換外存對應頁),提供給置換頁面時參考;
    外存地址:用於指出該頁在外存上的地址,通常是物理塊號(注意是外存的物理塊號,頁表的第二個表項:物理塊號是內存的物理塊號),供調入該頁時使用(知道在哪調入該頁)。

  5. 簡述請求分頁系統中的三種內存分配策略。
    答:在請求分頁時,可採取兩種內存分配策略,即固定和可變分配策略。在進行置換時,也可採取兩種策略,即全局置換和局部置換。於是可組合出以下三種適用的策略。

  1. 固定分配局部置換(Fixed Allocation,Local Replacement):爲每個進程分配一組固定數量的物理塊(設爲N個頁面),進程運行時不再改變(即N值固定不變)。若發生缺頁,從分配的N個頁面中選出一頁換出,從外存調入缺少的那一頁,以保證分配給該進程的內存空間不變(N值固定)。
  2. 可變分配全局置換(Variable Allocation,Global Replacement):進程運行時,先爲系統中的每個進程分配一定數目的物理塊,而OS自身也保持一個空閒物理塊隊列。當某進程發現缺頁時,由系統從空閒物理塊隊列中取出一個物理塊分配給該進程,並將欲調入的(缺)頁裝入其中。這樣,凡產生缺頁(中斷)的進程,都將獲得新的物理塊。僅當空閒物理塊隊列中的物理塊用完時,OS才能從內存中選擇一頁調出,該頁可能是系統中任一進程的頁,這樣,自然又會使那個進程的物理塊減少,進而使其缺頁率增加。
  3. 可變分配局部置換(Variable Allocation,Local Replacement):這同樣是基於進程的類型或根據程序員的要求,爲每個進程分配一定數目的物理塊,但當某進程發現缺頁時,只允許從本身進程在內存的頁面中選出一頁換出,這樣就不會影響其它進程的運行。如果進程在運行中頻繁地發生缺頁中斷,則系統需再爲該進程分配若干個附加的物理塊,直至該進程的缺頁率減少到適當程度爲止;反之,若一個進程在運行過程中的缺頁率特別低,則此時可適當減少分配給該進程的物理塊數,但不應引起其缺頁率的明顯增加。(即和第二種方式一樣,N值不固定)
    總結:全局是指置換頁面時,換出的頁面可能是內存中的任一進程的頁面,局部只能是本進程(就是當前缺頁的進程)的頁面;固定分配指爲一個進程分配的物理塊是固定的,可變分配指可根據缺頁率調整所分配的物理塊數。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章