作業系統與硬體

在硬體不維持快取一致性(非一致性,non-coherent)的系統中,於CPU讀取裝置以DMA寫入主記憶體的資料之前,軟體必須進行下列何種處理?

  1. A暫時降低CPU的時脈頻率
  2. B使對應範圍的快取內容無效,並改為從主記憶體重新讀取
  3. C將快取的內容全部寫回主記憶體後,丟棄經DMA送達的結果
查看答案與解析

正確答案:B. 使對應範圍的快取內容無效,並改為從主記憶體重新讀取

DMA不經過CPU,直接在裝置與主記憶體之間傳輸資料,因此在硬體不維持一致性的系統中,CPU的快取裡可能仍留有該範圍的舊資料。若直接讀取,讀到的會是舊值,而不是經DMA送達的新資料。所以驅動程式在讀取之前,要先使該範圍的快取無效,讓它從主記憶體讀取新值。相反地,要傳給裝置的資料,則須在開始DMA之前先從快取寫回。

  • A. 時脈頻率與一致性無關。
  • B. 正確。使舊的快取內容無效,改讀取新的資料。
  • C. 丟棄DMA的結果就沒有意義了。
練習這個領域 前往領域頁面

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

  1. 關於IOMMU的主要作用,下列何者正確?
  2. 關於裝置驅動程式(device driver)的作用,下列何者正確?
  3. 一般的作業系統不讓應用程式直接讀寫裝置暫存器,其主要理由為何?
  4. 在一台電腦上,讓多個作業系統各自作為獨立的虛擬機器同時運作的軟體稱為什麼?
  5. 關於虛擬機器監視器(hypervisor)類型的說明,下列何者正確?

這個領域的比較