マルチコアで共有メモリに同時にアクセスするルールはありますか? 1つのコアが共有メモリに書き込んでいる場合、別のコアが同じメモリを同じ時刻に読み込んでいますが、問題はありますか? この種のシナリオは避けてください。マルチコア:同時に共有メモリにアクセス
0
A
答えて
0
これは競合状態と呼ばれ、そのようなコードの結果は予測できません。あなたはそれを避けなければなりません。次のいずれかを実行できます
- 変更別々のメモリを使用するアルゴリズム、または
- 同期アトミック操作を使用してアクセス、または
- は、クリティカルセクションやミューテックスのような、より高いレベルの同期構文を使用してアクセスを同期します。
@DanDanによると、複数のスレッドからの読み取りだけが問題ではありません。
0
はい、これを避ける必要があります。マルチコアとマルチスレッドで安全に行うことができるのは、副作用がない場合に限り、同時に読み取ることだけです。
関連する問題
- 1. 共有メモリへのアクセスの同期
- 2. C#の同時実行の共有メモリ
- 3. 共有データへの同時/非同期アクセス
- 4. マルチスレッド環境で共有メモリを同期
- 5. 共有メモリ時々nullではないが
- 6. 共有データベース/メモリ
- 7. RDMAメモリ共有
- 8. "C言語で共有メモリの構造体メンバにアクセスする"
- 9. セマフォを介して共有メモリにアクセスする
- 10. Cの共有メモリにアクセスする際のセグメンテーションフォルト
- 11. Webアプリケーションの共有リソースへの同時アクセスの回避
- 12. Javaメソッドオーバーロードを共有同一のメモリまたは異なるメモリ
- 13. electron.atom.ioと共有メモリ
- 14. 継承共有メモリ
- 15. cython共有メモリ - ブロック
- 16. Linuxの共有メモリ
- 17. セマフォと共有メモリ
- 18. ビジュアルスタジオと共有メモリ
- 19. OpenCLの共有メモリ
- 20. PHP/C++:メモリ共有時にshm_open()エラーが発生しました。
- 21. 2つのプロセス間の共有メモリ内のデータへの同期アクセス
- 22. 共有メモリにアクセスするときの読み取りアクセス違反
- 23. アンドロイド:ローカルネットワーク共有にアクセス
- 24. のperl:共有メモリにキャッシュデータ(ラム)
- 25. 同時非同期タスクから共有リソースに安全にアクセスできますか? (C#)
- 26. データ配信と共有メモリ
- 27. C++クラッシュの共有メモリ
- 28. Symbianの共有メモリの例
- 29. activerecordメモリ内共有キャッシュ
- 30. uda共有メモリ上書き?
これを避けるには相互排除セマフォを使用してもよろしいですか? E.G .: 1つのコアif(!LOCK)LOCK = TRUE;別のコアif(!LOCK)LOCK = TRUE、LOCKは2つのCORES間で共有されます。 1つのコアがLOCK = TRUEを実行しているときに、別のコアが同時に実行すると(!LOCK)、それはOKですか? – shikun
いいえ、それはブール変数の競合条件です。適切なミューテックスオブジェクトを使用する必要があります(あなたの言語/ OSにどのような意味があるのか)。 –