同期 (計算機科学)
出典: フリー百科事典『ウィキペディア(Wikipedia)』
同期(Synchronization)とは、計算機科学においては複数のエージェントの動作を時系列的に制御することを意味する。ここで、エージェントとは何らかの処理をするものである(コンピュータシステム、プロセス、スレッド、CPUなど)。
また、複数個所に格納された同一であるべき情報を同一に保つことを同期という。
[編集] 並行計算における同期
マルチタスクやマルチスレッドにおいて、同時並行して動作するプロセスやスレッドの間で時系列的な制御をすること。主にクリティカルセクションの排他的処理を保証する手段として以下のものがある。
他に、クリティカルセクションとは関係なく処理の進行を待ち合わせることも「同期」と言う。プロセス間通信、RPC、シグナルによる同期などがあげられる。また、スレッド間の待ち合わせとして「バリア」と呼ばれる機構がある。
[編集] ハードウェアにおける同期
一般にコンピュータシステムはクロック同期設計により全体が同期して動作する。また、フォールトトレラントシステムでは、複数のCPUで同一の処理を同時に(つまり同期して)実行する(冗長化)。マルチプロセッサシステムのキャッシュメモリは、MESIプロトコルなどのキャッシュプロトコルを使用して内容を同期させて一貫性を保つ。
[編集] コンピュータネットワークにおける同期
通信プロトコルには同期信号などの様々な同期方式を採用したものがある。例えば、High-Level Data Link Controlはフレーム同期型である。また、ネットワーク上のコンピュータ間で時刻を同期させるプロトコルとしてNetwork Time ProtocolやSimple Network Time Protocolがある。さらに別の用法として、複数のネットワーク機器間でコンテンツの内容を同一に保つことを「同期」という(iTunes、PIMなど参照)。