多核心與同步
關於記憶體屏障(fence)指令的作用,下列何者正確?
- A保證屏障之前的記憶體操作,會比屏障之後的操作更早被其他核心看到
- B將記憶體在物理上隔開,禁止存取
- C讓程式的執行暫停,直到所有執行緒都到齊
查看答案與解析
正確答案:A. 保證屏障之前的記憶體操作,會比屏障之後的操作更早被其他核心看到
由於CPU有時會調換記憶體操作的順序,若要以既定的順序與其他核心交換資料,就需要阻止調換的指示。記憶體屏障會讓之前的讀寫全部完成(使其他核心看得到)之後,才進行後面的讀寫。鎖的取得與釋放之中也含有屏障的作用,因此受鎖保護的變數才能被正確地傳遞。
- A. 正確。可以阻止記憶體操作順序的調換。
- B. 禁止存取是分頁保護等機制。
- C. 那是執行緒之間的屏障同步。