21

同期プリミティブの正確な意味は?たとえば、ミューテックス、クリティカルセクション、待機可能タイマー、イベント、モニター、条件変数、セマフォーなどです。それらはすべて同期プリミティブですか?リストにない他の同期プリミティブはありますか?これらは有効な質問ですか?"同期プリミティブ"の定義

答えて

32

同期プリミティブは、スレッドまたはプロセスの同期をサポートする目的で、プラットフォーム(オペレーティングシステムなど)がユーザーに提供する簡単なソフトウェアメカニズムです。通常は、低レベルのメカニズム(アトミック操作、メモリバリア、スピンロック、コンテキストスイッチなど)を使用して構築されます。

ミューテックス、イベント、条件変数、およびセマフォはすべて同期プリミティブです。共有ロックと排他ロックがあります。 Monitorは一般的に高レベルの同期ツールと見なされます。これは、他の同期プリミティブ(通常、待機およびシグナリングをサポートする条件変数との排他ロック)を使用して、そのメソッドの相互排除を保証するオブジェクトです。モニターがビルディングブロックとして使用される状況によっては、モニターも同期プリミティブと見なされます。

クリティカルセクションは同期プリミティブではありません。これは、いくつかの不変条件を維持するために同時実行から保護されなければならない実行パスの一部です。クリティカルセクションを保護するには、いくつかの同期プリミティブを使用する必要があります。

+6

"クリティカルセクションは同期プリミティブではありません。" クリティカルセクションと呼ばれる同期プリミティブがあるウィンドウを除いて:http://goo.gl/35zir(はい、よく定義された用語をひどく誤って使用していますが、変更することはできませんMS間違い) – paxos1977

+1

[ここ](http://www.cs.columbia.edu/~hgs/os/sync.html)は、コロンビア大学 – zook2005

+0

@ zook2005が提供するリストです。あなたのコメントを答え(私はupvoteすることができます) – Loom

1

@Loomさんが提案したように、私はコロンビア大学が提供するthis listを質問に答えて追加しています。

また、マイクロソフト社のthis articleを03/2017にチェックアウトしています(古いですが、コロンビア大学の記事もそうです)。

私が集めたことから、同期プリミティブは正式なリストがないという意味では明確に定義されていません。

関連する問題