2

のは、この文(Total Store Orderingを)考えてみましょう:メモリオーダーで「読み込み前に読み込む」とは何を意味しますか?

は、前に注文した読み込みされている読み取り、書き込み前に書き込み、書き込み前に読み込みではなく読み込む前に書き込みます。

  • 各スレッドは、独自のプログラム順(それが書かれているように、コード)一般的に
  • を持って、CPUは、命令の並べ替えを行うことが、我々はそれを制約する必要があります:私は、私はほとんどの基本を取得すると思います

  • CPUはメモリのロードとストアの順序を変更することもありますが、それらも制限する必要があります。
  • 現在のハードウェアの実装では、mfenceのようなinvoke両方の問題に対処するためにすべてのスレッドによってkedされます。
  • ハードウェアは、一般的に一つだけダーティキャッシュすることができますので、そのキャッシュのフラッシュがすべてです:
    • 保存スレッドのフラッシュダーティキャッシュを
    • ロードスレッド要求とブロックダーティキャッシュ
  • がなくなるまでカーネル開発者はメモリにアクセスするCPU以外のデバイスを気にしますが、私はそうしません。
  • まだ「読み込み前に読み込む」とは、実際には何を意味するのか理解していません。これらのアーキテクチャに暗黙的な障壁やシリアライズの指示があることを意味するかもしれませんが、実際には分かりません。

    +0

    おそらく、他の読み取りと比較して読み取りは並べ替えられません。 – immibis

    +0

    OP、この引用をどこから入手したのですか? Sparcも古典的なx86もロードロードの並べ替えを許可していないことに注意してください - https://en.wikipedia.org/wiki/Memory_ordering – Leeor

    答えて

    0

    私は、ギリシャの私のユニ(uni)のOSコースで教授の声でそれを読んでいると私は確信しています。 :)誰も答えなかったので、私は答えようとします。

    あなたがOSで、すべてのスレッド/プログラムが読み取りと書き込みを実行するとします。さて、私たちはマルチスレッドについて話しているので、スレッドは変数の値のように別のスレッドが書き込んだものを読み込むかもしれません。

    スレッド1がメモリアドレスxの読み取りを実行したい場合、スレッド2が読み取りを実行したい場合は、xを実行してください。xを任意の順序で読み取ることができます。それが意味することです、私は思います!

    私はそれが最高の答えを与えることができないことを知っているので、何とか役立つことを願っています! :/

    関連する問題