多核心與同步
關於具有取得(acquire)與釋放(release)意義的記憶體操作,下列何者正確?
- A取得與釋放都是完全停止所有讀寫的、最重的屏障
- B取得是配置記憶體,釋放是free記憶體的操作
- C取得之後的讀寫不會移到取得之前,釋放之前的讀寫不會移到釋放之後
查看答案與解析
正確答案:C. 取得之後的讀寫不會移到取得之前,釋放之前的讀寫不會移到釋放之後
取得鎖時的操作具有取得的意義,放開鎖時的操作具有釋放的意義。取得之後的操作不會洩漏到取得鎖之前,釋放之前的操作不會洩漏到放開鎖之後,所以受鎖保護範圍內的讀寫會被限制在範圍之中。由於限制比雙向都阻止的完整屏障少,硬體可以利用其餘的調換來維持效能。
- A. 只阻止單一方向,所以比完整屏障更輕。
- B. 與記憶體的配置、釋放是不同的意義。
- C. 正確。這是只阻止單側的、輕量的順序保證。