多核心與同步

關於硬體交易式記憶體(hardware transactional memory)的概念,下列何者正確?

  1. A以推測方式執行臨界區段,若沒有與其他執行緒衝突就一併確定,若發生衝突則取消並重做
  2. B像銀行交易一樣,將所有記憶體的讀寫記錄到磁碟
  3. C禁止記憶體的寫入,只允許讀取
查看答案與解析

正確答案:A. 以推測方式執行臨界區段,若沒有與其他執行緒衝突就一併確定,若發生衝突則取消並重做

在交易式記憶體中,臨界區段會作為交易來執行,期間的寫入視為暫時的,不讓其他執行緒看到。若其他執行緒沒有接觸相同的資料,最後會一次確定所有的寫入;若發生衝突,則全部取消並重做,或切換成一般的鎖。衝突少的時候,即使維持粗粒度的鎖,也能獲得接近細粒度鎖的平行度。

  • A. 正確。有時不必取得鎖就能平行執行。
  • B. 與記錄到磁碟無關。
  • C. 寫入也是會進行的。
練習這個領域 前往領域頁面

多核心與同步的其他題目

  1. 以條件變數(condition variable)「等到佇列不為空」時,被喚醒後之所以用while敘述而非if敘述重新確認條件,其理由下列何者正確?
  2. 兩個核心各自的快取中都有變數x的副本。核心0寫入x之後,核心1讀取x時,若沒有快取一致性(cache coherency)機制,可能發生下列何種問題?
  3. 快取一致性協定MESI的四種狀態,下列哪一組是正確的?
  4. 在MESI協定中,快取列處於Modified(M)狀態時,其意義下列何者正確?
  5. 在MESI協定中,核心對處於Exclusive(E)狀態的快取列寫入時,其動作下列何者正確?

這個領域的比較