操作系統-第5章習題解析


第5章習題解析

1.常規存儲器管理方式具有哪兩大特征?它對系統性能有何影響?
答:一次性:進程必須全部裝入內存,對空間浪費非常大;

  駐留性:在程序運行過程中,進程全部駐留在內存,暫時不用的數據無法釋放。
2.什么是程序運行時的時間局限性和空間局限性?
答:(1)   時間局限性:如果程序中的某條指令一旦執行,則不久的將來該指令可能再次被執行;如果某個存儲單元被訪問,則不久的將來該存儲單元可能再次被訪問。產生時間局限性的典型原因是在程序中存在着大量的循環操作。
     (2)空間局限性:一旦程序訪問了某個存儲單元,則在不久的將來,其附近的存儲單元也最有可能被訪問,即程序在一段時間內所訪問的地址,可能集中在一定的范圍內。產生空間局限性的典型原因是程序是順序執行的。
3.虛擬存儲器有哪些特征?其中最本質的特征是什么?
答:虛擬存儲器有多次性、對換性、虛擬性三大特征。最本質的特征是虛擬性。
4.實現虛擬存儲器需要哪些硬件支持?
答:a. 請求分頁(段)的頁(段)表機制

  b. 缺頁(段)中斷機構

  c. 地址變換機構

5.實現虛擬存儲器需要哪幾個關鍵技術?
答:(1)在分頁請求系統中是在分頁的基礎上,增加了請求調頁功能和頁面置換功能所形成的頁式虛擬存儲系統。允許只裝入少數頁面的程序(及數據),使啟動運行。

     (2)在請求分段系統中是在分段系統的基礎上,增加了請求調段及分段置換功能后形成的段式虛擬存儲系統。允許只裝入少數段(而非所有段)的用戶程序和數據,即可啟動運行。
6.在請求分頁系統中,頁表應包括哪些數據項?每項的作用是什么?
答:頁表應包括:頁號、物理塊號、狀態位P、訪問字段A、修改位M和外存地址。其中狀態位P指示該頁是否調入內存,供程序訪問時參考;

  訪問字段A用於記錄本頁在一段時間內被訪問的次數,或最近己有多長時間未被訪問,提供給置換算法選擇換出頁面時參考;

  修改位M表示該頁在調入內存后是否被修改過:

  外存地址用於指出該頁在外存上的地址,通常是物理塊號,供調入該頁時使用。
7.試比較缺頁中斷機構與一般的中斷,它們之間有何明顯的區別?
答:a. 一般中斷只需要保護現場然后就直接跳到需及時處理的地方。
  b .缺頁中斷除了保護現場之外,還要判斷內存中是否有足夠的空間存儲所需的頁或段,然后再把所需頁調進來再使用。
8.試說明請求分頁系統中的地址變換過程。
答:1)取邏輯地址分解為頁號P和頁內偏移w;

  2)根據頁號查找頁表,獲得該頁的描述信息;

  3)若該頁中斷位為1,產生缺頁中斷;  

  4)更新該頁的描述信息;

  5) 根據頁塊號和頁內偏移w,計算物理地址。
9.何謂固定分配局部置換和可變分配和全局置換的內存分配策略?

答:(1)固定分配局部置換固定分配是指,為每個進程分配一組固定數目的物理塊,在進程運行期間不再改變。
    局部置換是指,如果進程在運行中發現缺頁,則只能從分配給該進程的n個頁面中,選出一頁換出,然后再調入一頁。
  (2)可變分配全局置換可變分配是指,先為每個進程分配一定數目的物理塊,在進程運行期間,可根據情況做適當地改變。
    全局置換是指,如果進程在運行中發現缺頁,則將0S所保留的空閑物理塊或者以所有進程的全部物理塊為標的,選擇一塊換出,然后將所缺之頁調入。
10.在請求分頁系統中,應從何處將所需頁面調入內存?
答:請求分頁系統中的缺頁從何處調入內存分三種情況:
  (1)系統擁有足夠對換區空間時,可以全部從對換區調入所需頁面,提高調頁速度。在進程運行前將與該進程有關的文件從文件區拷貝到對換區。
  (2)系統缺少足夠對換區空間時,不被修改的文件直接從文件區調入:當換出這些頁面時,未被修改的不必換出,再調入時,仍從文件區直接調入。對於可能修改的,在換出時便調到對換區,以后需要時再從對換區調入。
  (3)UNIX方式。未運行頁面從文件區調入。曾經運行過但被換出頁面,下次從對換區調入。UNIX系統允許頁面共享,某進程請求的頁面有可能已調入內存,直接使用不再調入。
11.試說明在請求分頁系統中頁面的調入過程。
答:每當程序所要訪問的頁面未在內存時(存在位為“0”),便向CPU發出一缺頁中斷,中斷處理程序首先保留CPU環境,分析中斷原因后,轉入缺頁中斷處理程序。

該程序通過查找頁表,得到該頁在外存的物理塊后,如果此時內存能容納新頁,則啟動磁盤I/0,將所缺之頁調入內存,然后修改頁表。如果內存已滿,則須先按照某種置換算法,從內存中選出一頁准備換出;

如果該頁未被修改過(修改位為“0”),可不必將該頁寫回磁盤;但如果此頁已被修改(修改位為“1”),則必須將它寫回磁盤,然后再把所缺的頁調入內存,並修改頁表中的相應表項,置其存在位為“1”,並將此頁表項寫入快表中。

在缺頁調入內存后,利用修改后的頁表,去形成所要訪問數據的物理地址,再去訪問內存數據。整個頁面的調入過程對用戶是透明的。
12.在請求分頁系統中,常采用哪幾種頁面置換算法?
答:采用的頁面置換算法有:最佳置換算法和先進先出置換算法,最近最久未使用(LRU)置換算法,Clock置換算法,最少使用置換算法,頁面緩沖算法等。

13.在一個請求分頁系統中,采用FIFO頁面置換算法時,假如一個作業的頁面走向為4、3、2、1、4、3、5、4、3、2、1、5,當分配給該作業的物理塊數M分別為3和4時,試計算在訪問過程中所發生的缺頁次數和缺頁率,並比較所得結果。

    

 

  M=3時,采用FIFO頁面置換算法的缺頁次數為9次,缺頁率為75%;M=4時,采用FIFO頁面置換算法的缺頁次數為10次,缺頁率為83%。
  由此可見,增加分配給作業的內存塊數,反而增加了缺頁次數,提高了缺頁率,這種現象被稱為是Belady現象。
14.實現LRU算法所需的硬件支持是什么?
答:需要寄存器和棧等硬件支持。寄存器用於記錄某進程在內存中各頁的使用情況,棧用於保存當前使用的各個頁面的頁面號。
15.試說明改進型Clock置換算法的基本原理.
答:因為修改過的頁面在換出時付出的開銷比未被修改過的頁面大,在改進型Clock算法中,既考慮頁面的使用情況,還要增加置換代價的因素;在選擇頁面作為淘汰頁面時,把同時滿足未使用過和未被修改作為首選淘汰頁面。
16.影響頁面換進換出效率的若干因素是什么?
(1)頁面置換算法:影響頁面換進換出效率最重要的因素,直接影響進程在運行過程中的缺頁率,影響頁面換進換出的開銷。
(2)寫回磁盤的頻率:如果是采取每個頁面換出時,就將它寫回磁盤的策略,這意味着每換出一個頁面,便需要啟動一次磁盤。

  但如果在系統中建立了一個已修改換出頁面鏈表,對每一個要被換出的頁面(已修改),系統可暫不把它們寫回磁盤,而是將它們掛在已修改換出頁面鏈表上,

  僅當被換出頁面數目達到一定值時,再將它們一起寫回到磁盤上,這樣就顯著地減少了磁盤I/0的操作次數。或者說,減少已修改頁面換出的開銷。
(3)讀入內存的頻率:在設置了已修改換出頁面鏈表后,在該鏈表上就暫時有一批裝有數據的頁面,如果需要再次訪問這些頁面時,就不需從外存上調入,

  而直接從已修改換出頁面鏈表中獲取,這樣也可以減少將頁面從磁盤讀入內存的頻率,減少頁面換進的開銷。或者說,只需花費很小的開銷,便可使這些頁面,又回到該進程的駐留集中。
17.頁面緩沖算法的主要特點是什么?它是如何降低頁面換進換出的頻率的?
答:① 顯著地降低了頁面換進、換出的頻率,使磁盤I/0的操作次數大為減少,因而減少了頁面換進、換出的開銷;

  ②由於換入換出的開銷大幅度減小,才能使其采用一種較簡單的置換策略,如先進先出(FIFO)算法,它不需要特殊硬件的支持,實現起來非常簡單。

  在該系統中,內存分配策略上采用了可變分配和局部置換方式。為了能顯著地降低了頁面換進、換出的頻率,在內存中設置了如下兩個鏈表:
  (1)空閑頁面鏈表:是一個空閑物理塊鏈表,用於分配給頻繁發生缺頁的進程,以降低該進程的缺頁率。當有一個未被修改的頁要換出時,實際上並不將它換出到外存,而是把它們所在的物理塊,掛在空閑鏈表的末尾。
  (2)修改頁面鏈表:由已修改的頁面所形成的鏈表。設置該鏈表的目的,是為了減少已修改頁面換出的次數。降低將已修該頁面寫回磁盤的頻率,以及降低將磁盤內容讀入內存的頻率。
18.什么是抖動? 產生抖動的原因是什么?
答:a. 抖動(Thrashing) 就是指當內存中已無空閑空間而又發生缺頁中斷時,需要從內存中調出一頁程序或數據送磁盤的對換區中,如果算法不適當,剛被換出的頁很快被訪問,需重新調入,

因此需再選一頁調出,而此時被換出的頁很快又要被訪問,因而又需將它調入,如此頻繁更換頁面,使得系統把大部分時間用在了頁面的調進換出上,而幾乎不能完成任何有效的工作,我們稱這種現象為"抖動"。
  b. 產生抖動的原因是由於CPU的利用率和多道程序度的對立統一矛盾關系引起的,為了提高CPU利用率,可提高多道程序度,但單純提高多道程序度又會造成缺頁率的急劇上升,導致CPU的利用率下降,

  而系統的調度程序又會為了提高CPU利用率而繼續提高多道程序度,形成惡性循環,我們稱這時的進程是處於"抖動"狀態。
19.何謂工作集?它是基於什么原理確定的?
答:工作集(或駐留集)是指在某段時間間隔內,進程要訪問的頁面集合。經常被使用的頁面需要在工作集中,而長期不被使用的頁面要從工作集中被丟棄。為了防止系統出現抖動現象,需要選擇合適的工作集大小。

  工作集模型的原理是:
    讓操作系統跟蹤每個進程的工作集,並為進程分配大於其工作集的物理塊。如果還有空閑物理塊,則可以再調一個進程到內存以增加多道程序數。

    如果所有工作集之和增加以至於超過了可用物理塊的總數,那么操作系統會暫停一個進程,將其頁面調出並且將其物理塊分配給其他進程,防止出現抖動現象。正確選擇工作集的大小,對存儲器的利用率和系統吞吐量的提嵩,都將產生重要影響。
20.當前可以利用哪幾種方法來防止“抖動”?
(1)采取局部置換策略(2)把工作集算法融入到處理機調度中(3)利用“L=S”准則調節缺頁率(4)選擇暫停的進程

21.試試說明如何利用“L=S”准則來調節缺頁率,以避免“抖動”的發生?

答:P173 於1980年Denning提出了“L=S”的准則,來調節多道程序度,其中L是缺頁之間的平均時間,S是平均缺頁服務時間,即用於置換一個頁面所需的時間。利用“L=S”准則,對於調節缺頁率是十分有效的。
22.為了實現請求分段式存儲管理,應在系統中增加配置哪些硬件結構?
答:請求段表機制、缺段中斷機制和地址變換機構。
23.在請求段表機制中,應設置哪些段表項?

  

24.說明請求分段系統中的缺頁中斷處理過程。
答:請求分段系統中的缺頁中斷處理過程描述如下:
  (1)根據當前執行指令中的邏輯地址查頁表,判斷該頁是否在主存儲器中(2)該頁標志為“0”形成缺頁中斷,中斷裝置通過交換PSW讓操作系統的中斷處理程序占用處理器。
  (3)操作系統處理缺頁中斷處理的辦法是查主存分配表找一個空閑的主存塊,查頁表找出該頁在磁盤上位置,啟動磁盤讀出該頁信息。
  (4)把從磁盤上讀出的信息裝入找到的主存塊中。
  (5)當頁面住處被裝入主存后,應修改頁表中對應的表目,填上該頁所占用的主存塊把標志置為“1”,表示該頁已在主存儲器中

  (6)由於產生缺頁中斷時的那條指令並沒執行完,所以在把頁面裝入之后應重新執行被中斷指令。
請求分段系統中的缺頁中斷處理過程如下圖所示:

  

26.如何實現共享分段的分配和回收?
答:①共享段的分配:在為共享段分配內存時,對第一個請求使用該共享段的進程,由系統為該共享段分配一物理區,當又有其它進程需要調用該共享段時,無須再為該段分配內存。
  ②共享段的回收:當共享此段的某進程不再需要該段時,若無其他進程使用該段,則由系統回收該共享段的物理內存,否則只是取消調用者進程在共享段表中的有關記錄。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM