No.1ベストアンサー
- 回答日時:
共有メモリ方式であれば各プロセスは,直接,共有メモリを参照したり書き換えたりできるんで,プログラミングは楽です.その代わり,排他書き込み処理あるいは,同期処理といったプログラマからは直接見えないオーバーヘッドが大きくなりがちです.
メッセージパッシング方式は,各プロセスが全データを一部ずつ所有しています.あるプロセスが他のプロセスが所有しているデータが必要なときは,明示的ににデータの要求を出して,受け取るといった操作をします.プログラマの負担は増えますが,プロセス間通信の量や頻度を細かく制御できるので,凝った最適化が可能です.
No.2
- 回答日時:
並列処理の場合、計算の主体、例えばプロセスやスレッドあるいはより直感的にはプロセッサ、が複数あって、その間で通信、つまりデータのやり取りをして計算を並列に進めます。
で、このデータのやり取りが「通信」と呼ばれ、並列処理ではほとんどの場合でなんらかの通信が必要にります。逆に言えば、通信しない部分は逐次処理(ただしそれぞれのプロセスが計算をすれば並列処理になる)と全く同じです。
共有メモリというのは、2つのプロセス(スレッド)から同じメモリの内容(アドレスは違うかもしれない)が見えるような仕組み(多くはハードウェアによる。まれにソフトウェアで実現されている場合もある)になっていて、このメモリに一方が書き込んで、他方が読み込めば、データの受け渡しが実現できることになります。
一方、メッセージパッシング方式では、一方のプロセスではメッセージ(データ)を別のプロセスに送信する、という関数を呼び、他方のプロセスではデータを受信する関数を呼ぶことで、データの受け渡しを実現しています。メッセージパッシングではなんらかのネットワークを経由してメッセージが送られます。
他にも No.1 さんのおっしゃるように、同期とか排他制御とかいろいろとありますが、これらは書き出すときりがないのでこの辺りで止めておきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 高校数学I 2次関数 2つの2次方程式の共通の実数解の問題についての質問です。以下の写真を見てもらえ 4 2022/05/13 11:47
- バイク車検・修理・メンテナンス ドラッグスターのヘッドライトが付きません 3 2022/09/23 19:14
- 数学 2次方程式の「(x-3)^2=4」を解くとき、 そのまま解くことも可能ですが A=x-3と置いて、A 3 2023/01/27 18:20
- 数学 行列式について。 行列式の問題(手計算でできるもの)の中には文字が含まれていて尚且つn次行列式になっ 3 2023/02/21 23:42
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Excel(エクセル) A、B、C・・・AA、ABと連番でふりたい、調べても式の意味がわからずパニックになってしまう 1 2023/01/23 19:17
- 会社設立・起業・開業 株式会社設立について。 ネットで調べても教えたがりさん達が難しい言葉を並べて意味が理解できないので教 2 2022/04/29 00:16
- 数学 連立方程式についての疑問 7 2022/06/19 19:48
- 数学 円と直線の共有点を求める時に、円を表す式と直線を表す方程式が提示されるんですが、判別式を使うのは分か 3 2023/02/15 19:20
- その他(Microsoft Office) Excel 2列分のDATAの並べ替え 1 2023/01/01 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タスクマネージャーのプロセス...
-
バックグラウンドのプロセスの...
-
起動中の他のプログラム(orプ...
-
CreateObjectで作成したExcelの...
-
プロセスのアタッチ・デタッチ...
-
C#でのbatファイル実行結果取得
-
Windowsでのfork方法
-
ロードアベレージが高いのです...
-
explorer.exeが異様にメモリを食う
-
シェルで親プロセス終了時に子...
-
非表示になったエクセルは?
-
他のEXEが起動しているかの確認
-
警告『 別のプロセスで使用され...
-
VB6.0 SHELLで起動...
-
VBSからbat実行(WMI)して戻り値...
-
OSPFでプロセスを分ける意義に...
-
SendMessageが失敗するときがある
-
execvpでのcdコマンドについて。
-
起動中のEXCELファイル(EXCEL...
-
API関数 GetExitCodeProcess
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
タスクマネージャーのプロセス...
-
C#でのbatファイル実行結果取得
-
プロセスのアタッチ・デタッチ...
-
VB6.0 SHELLで起動...
-
プロセスIDからウィンドウハ...
-
Process.Startの戻り値を後で取得
-
ウィンドウのタイトルからプロ...
-
他のEXEが起動しているかの確認
-
ADOでアクセスのレコードに...
-
怪しいプロセス教えてください。
-
別のプロセスの関数を呼び出す...
-
C++のプログラムをバックグラウ...
-
Linuxでのスレッド間メッセージ...
-
C++でシェルを起動
-
プロセスIDの取得方法について
-
OSPFでプロセスを分ける意義に...
-
非表示になったエクセルは?
-
Windowsでのfork方法
おすすめ情報