作業系統與硬體

行程的環境切換有時造成的效能下降,實際上比儲存與還原暫存器所花的時間更大,其主要理由為何?

  1. A因為每次切換,CPU的時脈頻率都會下降
  2. B因為每次切換,都要重新從磁碟讀取程式
  3. C因為切換之後,快取與TLB的未命中會增加
查看答案與解析

正確答案:C. 因為切換之後,快取與TLB的未命中會增加

儲存與還原暫存器本身只需很短的時間,但對切換後的行程而言,快取與TLB裡的內容是前一個行程的,在重新載入所需的資料與轉換結果之前,未命中會持續發生。在沒有ASID的CPU上,切換位址空間時還必須清空TLB。這種間接的成本,有時會比直接的切換時間更大。時脈並不會下降,也不會從磁碟重新讀取程式。

  • A. 切換並不會使時脈頻率下降。
  • B. 程式已在記憶體中,不會重新讀取。
  • C. 正確。這是快取與TLB未命中增加所造成的間接成本。
練習這個領域 前往領域頁面

作業系統與硬體的其他題目

  1. 在TLB的每個項目加上ASID(位址空間識別碼)的優點,下列何者正確?
  2. 作業系統即使面對不主動釋出CPU的程式,仍能每隔一段時間取回CPU並切換到其他行程,主要是靠什麼機制?
  3. 如上方所示,以記憶體映射I/O(memory-mapped I/O)讀取裝置的狀態暫存器時,加上volatile並將該區域設為不快取,其理由為下列何者?
  4. CPU不使用中斷而是反覆檢查裝置狀態的方式(輪詢,polling),在下列哪種情況較有利?
  5. 在硬體不維持快取一致性(非一致性,non-coherent)的系統中,於CPU讀取裝置以DMA寫入主記憶體的資料之前,軟體必須進行下列何種處理?

這個領域的比較