多核心與同步

關於快取一致性的窺探(snooping)方式,下列說明何者正確?

  1. A作業系統每隔一段時間檢查所有快取,修正不一致
  2. B各核心的快取監視共用匯流排等處流動的其他核心之讀寫,並改變自己快取列的狀態
  3. C程式設計師每次寫入時,手動把值傳送給其他核心
查看答案與解析

正確答案:B. 各核心的快取監視共用匯流排等處流動的其他核心之讀寫,並改變自己快取列的狀態

在窺探方式中,核心的讀寫請求會傳到所有快取,各快取檢查自己是否持有相同的快取列,並進行無效化或傳遞資料。其機制簡單,適合核心數較少的情況。然而核心數增加後,將所有請求傳到所有快取的通訊量會變得過大,因此大規模系統會使用目錄(directory)方式。

  • A. 由硬體自動進行。
  • B. 正確。這是偷看(snoop)的方式。
  • C. 程式設計師不需要特別留意。
練習這個領域 前往領域頁面

多核心與同步的其他題目

  1. 在核心數量眾多的系統中,使用目錄方式的一致性協定而非窺探方式,其原因下列何者正確?
  2. 一致性協定有無效化型與更新型。許多CPU採用無效化型,其最適當的原因為下列何者?
  3. 關於多執行緒程式中發生的偽共享(false sharing),下列說明何者正確?
  4. 像「long cnt[8];」這樣排列每個執行緒的計數器陣列,發生了偽共享。下列何者是最適當的對策?
  5. 關於資料競爭(data race),下列說明何者正確?

這個領域的比較