HOME»基本情報技術者試験掲示板»密結合マルチプロセッサシステムについて

基本情報技術者試験掲示板

掲示板検索:

密結合マルチプロセッサシステムについて[1860]

情報太郎さん(No.1)

密結合マルチプロセッサシステムでは、各タスクはどのプロセッサでも実行できるので、タスク間で同期をとる機能が必要になると書いていたのですが、なぜタスク間で同期を取る必要があるのですか?ご教授のほどお願い致します。

2019.07.09 13:58
双葉さん(No.2)

処理のタイミングによって実行結果が異なるのを防ぐためです。
密結合マルチプロセッサシステムは、主記憶装置(メモリ)を各プロセッサが
共有するシステムです。

例えば、主記憶装置上のある番地に6(10)という数値があるとします。
これに2を加算してから、2で除算する処理をするとします。
同期がきちんととれているときの処理は
(6+ 2) / 2 = 4 です。

しかし、どちらかのプロセッサで前工程の処理が遅れることがあります。
同期を取らないということは、前の工程が終わっているかを確認しないで
処理をすることを意味します。処理の順番が入れ替わると
6 / 2 + 2 = 5
 となり、正しい処理ができていないことになります。

−−−−−余談
プロセッサ単位ではきちんと同期できていても、プログラミングの並列処理でよく
発生するミスです。特定の環境でしか発生せず、再現が難しくデバックしにくい
など厄介なバグです。設計段階でシーケンス図を書くなどして、バグが入り込む
余地を潰して対策します。

2019.07.09 17:13
情報太郎さん(No.3)

同期する意味が理解できました!
ありがとうございました!

2019.07.10 09:44

返信投稿用フォーム

スパム防止のために初投稿日から2カ月以上経過したスレッドへの書き込みは禁止しています。

© 2010-2019 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop