同期 (計算機科学)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

同期(どうき、Synchronization)とは、計算機科学においては複数のエージェントの動作を時系列的に制御することを意味する。ここで、エージェントとは何らかの処理をするものである(コンピュータシステム、プロセススレッドCPUなど)。 カタカナ言葉の平板型(低高高・尻上り化)の傾向に影響され動機や動悸と同じアクセントとする人もいるが、正しくは「ど」にアクセント。

また、複数個所に格納された同一であるべき情報を同一に保つことを同期という。

並行計算における同期[編集]

マルチタスクマルチスレッドにおいて、同時並行して動作するプロセスやスレッドの間で時系列的な制御をすること。主にクリティカルセクション排他的処理を保証する手段として以下のものがある。

他に、クリティカルセクションとは関係なく処理の進行を待ち合わせることも「同期」と言う。プロセス間通信RPCシグナルによる同期などがあげられる。また、スレッド間の待ち合わせとして「バリア」と呼ばれる機構がある。

ハードウェアにおける同期[編集]

コンピュータのハードウェアは、一般にクロック同期設計により全体が同期して動作する。また、フォールトトレラントシステムでは、複数のCPUで同一の処理を同時に(つまり同期して)実行する(冗長化)。マルチプロセッサシステムのキャッシュメモリは、MESIプロトコルなどのキャッシュコヒーレンシプロトコルを使用して内容を同期させて一貫性を保つ。

コンピュータネットワークにおける同期[編集]

コンピュータネットワーク通信プロトコルには同期信号などの様々な同期方式を採用したものがある。例えば、High-Level Data Link Controlはフレーム同期型である。また、ネットワーク上のコンピュータ間で時刻を同期させるプロトコルとしてNetwork Time ProtocolSimple Network Time Protocolがある。さらに別の用法として、複数のネットワーク機器間でコンテンツの内容を同一に保つことを「同期」という(iTunesPIMファイル同期など参照)。