多核心與同步

關於臨界區段(critical section),下列說明何者正確?

  1. A為了操作共用資料,同一時間只能有一個執行緒執行的程式部分
  2. B程式中執行時間最長的部分
  3. C只在發生錯誤時才執行的部分
查看答案與解析

正確答案:A. 為了操作共用資料,同一時間只能有一個執行緒執行的程式部分

若多個執行緒同時執行讀取並改寫共用變數的部分,就會發生資料競爭。這種應該同一時間只由一個執行緒執行的部分稱為臨界區段,進入前先取得鎖,離開時釋放,以此加以保護。臨界區段越長,其他執行緒等待的時間也越長,所以基本原則是盡量縮短。

  • A. 正確。以鎖等來保護。
  • B. 不是由執行時間的長短來決定。
  • C. 不是指錯誤處理。
練習這個領域 前往領域頁面

多核心與同步的其他題目

  1. 關於平行程式中使用的屏障同步(barrier synchronization),下列說明何者正確?
  2. 64個核心持續同時以原子指令更新一個共用計數器時,即使增加核心也不會變快。其主要原因為下列何者?
  3. 關於NUMA(非均勻記憶體存取)系統,下列說明何者正確?
  4. 在Linux的NUMA系統中常用的首次接觸(first touch)策略(將頁面放在第一次寫入該頁面的執行緒所在節點的記憶體),下列關於需要注意之處的說明何者正確?
  5. 在平行程式中,即使增加核心數量,效能仍未如預期成長,下列何者不屬於其原因?

這個領域的比較