操作系統--精髓與設計原理(第八版)第八章復習題答案


8.操作系統--精髓與設計原理(第八版)第八章復習題答案

8.1 簡單分頁與虛擬內存分頁有何區別?

​ 進程運行時,簡單分頁的所有頁必須都在內存中,除非使用了覆蓋技術,虛存分頁並非所有頁都須在內存頁框中,僅在需要時才讀入頁,把一頁讀入內存可能需要把另一頁寫出到磁盤。

8.2 什么是抖動?

​ 當操作系統讀取一塊內存時,它必須把另一塊換出。 如果一塊正好在將要用到之前換出,操作系統就不得不很快地把它取回。這類操作通常會導致一種稱為系統抖動( thrashing)的情況。這樣會使處理器的大部分時間都用於交換塊而非執行指令。

8.3 為何在使用虛擬內存時,局部性原理至關重要?

​ 局部性原理描述了一個進程中程序和數據引用的集簇傾向。因此,假設在很短的時間內僅需要進程的一部分塊是合理的。同時,還可以對將來可能會訪問的塊進行猜測,從而避免系統抖動。局部性原理表明虛擬內存方案是可行的。

8.4 哪些元素是頁表項中能找到的典型元素?簡單定義每個元素。

  • 頁號: 虛擬地址的頁號部分。
  • 進程標志符:使用該頁的進程。頁號和進程標志符共同標志-個特定進程的虛擬地址空間的一頁。
  • 控制位: 該域包含一些標記, 比如有效、訪問和修改,以及保護和鎖定信息。
  • 鏈指針: 若某項沒有鏈項,則該域為空(或用一個單獨的位來表示)。否則,該域包含鏈中下一項的索引值(0~2^m -1之間的數字)。

8.5 轉換檢測緩沖區的目的是什么?

​ 原則上,每次虛存訪問都可能會引起兩次物理內存訪問:一次取相應的頁表項,另一次取需要的數據。因此,簡單的虛擬內存方案會導致內存訪問時間加倍。為克服這個問題,大多數虛擬內存方案都為頁表項使用了一個特殊的高速緩存,通常稱為轉換檢測緩沖區(TranslationLookaside Buffer, TLB)。

8.6 簡單定義兩種可供選擇的頁面讀取策略。

  • 請求分頁,只有當訪問到某頁中的一個單元時才將該頁取入內存。若內存管理的其他策略比較合適,將發生下述情況:當一個進程首次啟動時,會在一段時間出現大量的缺頁中斷:取入越來越多的頁后,局部性原理表明大多數將來訪問的頁都是最近讀取的頁。因此,在一段時間后錯誤會逐漸減少,缺頁中斷的數量會降到很低。
  • 預先分頁,讀取的頁並不是缺頁中斷請求的頁。預先分頁利用了大多數輔存設備(如磁盤)的特性,這些設備有尋道時間和合理的延遲。若一 個進程的頁連續存儲在輔存中,則一次讀取許多連續的頁要比隔一段時間讀取一 頁有效。 當然,若大多數額外讀取的頁未引用到,則這個策略是低效的。

8.7 駐留集管理和頁面置換策略有何區別?

駐留集管理的概念為:
(1)給每個活動進程分配多少頁框。
(2)計划置換的頁集是局限於那些缺頁中斷的進程,還是局限於所有頁框都在內存中的進程。
置換策略的概念為:在計划置換的頁集中,選擇換出哪一頁。

8.8 FIFO 和時鍾頁面置換算法有何聯系?

​ 最簡單的時鍾策略需要給每個頁框關聯一個稱為使用位的附加位。FIFO和時鍾頁面置換算法都會掃描緩沖區,FIFO直接置換出最老的頁,而在時鍾策略中會跳過使用位為1的頁框。

8.9 頁緩沖實現什么功能?

​ 為提升性能,不丟棄置換出的頁,被置換出的頁任然駐留在內存中。因此,若進程訪問該頁,則可迅速返回該進程的駐留集,且代價很小。

8.10 為什么不能把全局置換策略和固定分配策略組合起來?

​ 因為固定分配策略下,駐留集的大小是固定不變的,從內存中移出的一頁必須由同一個進程的另一頁置換。

8.11 駐留集和工作集有何區別?

​ 駐留集表示進程在內存中的頁集,工作集表示進程在過去的一段時間中被訪問到的頁集。

8.12 請求式清除和預約式清除有何區別?

  • 請求式清除(demand cleaning),只有當一頁被選擇用於置換時才被寫回輔存;
  • 預約式清除(precleaning) 策略則將這些已修改的多頁在需要使用它們所占據的頁框之前成批寫回輔存。


免責聲明!

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



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