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

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop