1. What is the benefit of using sparse addresses in virtual memory?
虛擬位址空間中堆積和堆疊之間的空白空間稱為鬆散的位址空間,使用鬆散的位址空間是有益的,因為在堆疊或堆疊的成長區段,或者程式在執行時,如果我們想要動態連結到程式庫,皆能將區間填滿。
2. Explain the distinction between a demand-paging system and a paging system with swapping.
需求分頁系統就像一種使用置換法的分頁系統,process存放在輔助記憶體,使用需求分頁,當process執行時,就把那個process換至記憶體中.不將整個process交換到記憶體中,而是使用lazy swapper需要時才將該頁換到記憶體,因此,具有交換功能的分頁系統操縱整個process,而請求分頁器則關注process的各個頁面。
3. Explain the sequence of events that happens when a page-fault occurs.
當os無法載入需要的分頁到記憶體將會發生分頁錯誤.首先,檢查記憶體參考的有效性,在請求無效的情況下,process將終止.如果請求有效,則找到一個空白欄.disk operation 會安排將頁面讀入剛剛找到的欄,更新頁表,重新啟動因為分頁錯誤而造成中斷的指令,並相對。
4. How is the effective access time computed for a demand-paged memory system?
有效存取時間=(1-分頁錯誤出現的機率)*記憶體存取時間+分頁錯誤出現的機率*分頁。
5. Explain how copy-on-write operates.
COW讓父process和子process在最初時共享相同的分頁,只要任一process只讀取-不修改-共享頁面,兩個process就可以共享相同頁面,因此提高系統效率,然而,只要一process修改共享頁面,就會創建一個共享頁面的副本,因此為每個process提供自己的私有頁面,例如,假設一個值為 5 的整數 X 在標記為 COW 的共享頁面中。然後父process繼續修改 X,將其值更改為 10。由於此頁面被標記為 COW,因此為父process創建了該頁面的副本,這將 X 的值更改為 10。X 的值保持為5 為子process
6. Explain the usefulness of a modify bit.
在每頁或每欄都可以有一個修改位元來伴隨它,如果欄被修改,則修改位元被設定,當頁面被選擇進行替換時,修改位很有用,如果該位未設置,該頁不需要寫入disk。如果設置了修改位,則頁面選擇替換時需要寫入disk。
7. How does the second-chance algorithm for page replacement differ from the FIFO page replacement algorithm?
second-chance 算法是基於 FIFO 替換算法,在最壞的情況下退化為 FIFO。在第二次機會演算法中,使用參考位元實作 FIFO 替換。如果參考位元被設置,則將其清除,頁面的到達時間設置為當前時間,程序以類似的方式在頁面中移動,直到找到已清除的參考位元並隨後將其替換。
8. Explain the distinction between global allocation versus local allocation.
全域替換法允許一個process從所有欄數中選出一個替換欄,即使目前該欄正分配給其他某process使用中,一個process可以從其他process獲得一欄.區域替換法要求每一個行程只能從自己選出欄。
9. Why doesn't a local replacement algorithm solve the problem of thrashing entirely?
若使用區域替換法,如果某process開始出現輾轉現象,他就無法從其他process處取得自己要用的欄,將會引起其他process也出現輾轉現象.如果有好幾個process都出現輾轉現象,那麼他們大部分時間將在等待分頁裝置的佇列中.處理分頁錯誤的平均時間將會增加,這是因為在等待分頁裝置的佇列中所費的時間平均變長,因此即使沒有出現輾轉現象的process,它的有效存取時間也會增加。
10. What are the benefits of using slab allocation to allocate kernel memory?
平板配置器提供兩種主要優點:
1.不會因為斷裂而浪費記憶體,當核心為一個物件要求記憶體時,平板配置器傳回代表物件需求的精確記憶體量.
2.記憶體需求能很快被滿足.預先產生物件且能很快地從快取配置,當核心用完物件釋放他的時候,他被標示當作可用,並且歸還到他的快取,因此來自核心後來的需求立刻可以使用
11. Explain the concept behind prepaging.
例如純需求分頁系統,當一個process開始執行的時候就會出現一大堆分頁錯誤.預先分頁就是想要防止這種高度的一開始需求分頁.其策略就是把所有需要的頁都在同一時間都載入記憶體.
12. Discuss two strategies for increasing TLB reach.
(1)加大TLB entry 數目
=>缺點:費用貴
仍不足以包含working set
(2)加大page size
=>缺點:內部碎裂嚴重
現行解法:提供不同size的pages,由os管理,非硬體,TLB由OS管理
13. How are lock bits useful in I/O requests?
鎖定位元與每個欄相關聯。如果欄被鎖定,則無法選擇它進行更換。
為了在磁帶上寫入一個區塊,我們將包含該區塊的頁面鎖定到記憶體中。系統就可以正常的運作.這些分頁無法被替換掉.當I/O工作完之後,這些分頁的鎖就會被打開.
14. Explain how working set model works.
工作集模型使用一個參數∆,在最近∆頁參考中的頁所組成的集合就是工作集.
僅當process的整個工作集都可以容納在記憶體中時,才允許process運行。 否則,進程被換出。 如果記憶體中有足夠的額外欄,則可以啟動另一個process。