1. ホーム
  2. concurrency

[解決済み] メッセージパッシングと共有メモリ型並行処理モデルの違いは何ですか?

2022-02-17 12:27:56

質問内容

間違っていたら訂正してください、しかし、私はこれがここで前に質問されていないことに驚いています.

解決方法は?

それはとてもシンプルな違いです。 共有メモリモデルでは、複数のワーカーがすべて同じデータに対して操作を行います。 このため、並列プログラミングでよくある並行処理の問題が多く発生します。

メッセージパッシングシステムは、ワーカーがメッセージングシステムを通じて通信するようにします。 メッセージは、ワーカーが互いのデータを変更できないように、全員を分離しておきます。

例えて言えば、チームで一緒にプロジェクトを進めているとします。 あるモデルでは、全員がテーブルを囲み、すべての書類とデータを並べています。 私たちは、テーブルの上のものを変更することでしかコミュニケーションをとることができません。 全員が同じデータを一度に操作しようとすると、混乱が生じ、物事が混ざってしまうので注意しなければなりません。

メッセージパッシングモデルでは、私たちは皆、自分の机の上に座り、自分の紙を手にします。 その紙をメッセージとして他の人に渡せば、その人はその紙を使って好きなことができるようになります。 目の前にあるものにしかアクセスできないので、集計中に誰かが手を伸ばして数字を変えてしまうという心配はありません。

なるほど、くだらない例え話ですね。