タグ

2012年9月8日のブックマーク (1件)

  • 革命の日々! シーケンスロック その4(コンパイラの野望を打ち砕け!)

    引きだけで終わってしまった前回のつづきです。 最近2件つづけて「トイレ スピンロック」というキーワードでうちのサイトにやってきた人がいました。 どうやらLinuxでロック=トイレという常識は予想以上に広まっているようです。 赤レンジャーも負けてはいられません(マテ さて、今回からいよいよ rmb(), wmb() の謎に迫っていくわけであるが、そもそも、なぜにこげなモノが必要なのだろう? Why? それは、プログラムは人間が書いた順番では動かないからである。 プログラムは決して思ったとおりには動かない――― 書いたとおりには動くけど。 -- 詠み人不明 という古の格言を無視するような発言であるが、これは一面において事実である。 なぜなら、コンパイラには最適化、CPUにはアウトオブオーダ実行というものがあるからだ。 これが普段問題にならないのは、ソースコードに書いた順番に実行したときと異なる

    embedded
    embedded 2012/09/08
    smp_rmb(), smp_wmb()はコンパイラの過度な最適化を防ぐ。