セマフォとミューテックス

著者: Laura McKinney
作成日: 4 4月 2021
更新日: 10 5月 2024
Anonim
セマフォとミューテックスの違いは何ですか
ビデオ: セマフォとミューテックスの違いは何ですか

コンテンツ

セマフォとミューテックスの違いは、セマフォがシグナリングメカニズムであるのに対し、ミューテックスはロックメカニズムであるということです。


オペレーティングシステムは、コンピューターサイエンスで最も重要な概念です。オペレーティングシステムでは、2つの主要な概念がセマフォとミューテックスです。セマフォとミューテックスには多くの違いがあります。主な違いについて話すと、セマフォとミューテックスの主な違いは、セマフォがシグナル伝達メカニズムであるのに対し、ミューテックスはロックメカニズムであるということです。

セマフォとミューテックスの違いはプロセスにあります。セマフォはwait()およびsignal()操作を実行します。この関数は、リソースを獲得したか解放したかを知る責任があります。一方、ミューテックスについて話す場合、ミューテックスはロックメカニズムです。

セマフォは整数変数Sです。セマフォはシグナリングメカニズムです。オペレーティングシステムでは、同期ツールが必要であり、オペレーティングシステムのツールはセマフォと呼ばれます。セマフォには、待機()、シグナル()の2つの主な機能があります。セマフォ値は、待機中()とシグナル()の2つの関数で変更されます。プロセスがリソースを使用している場合、セマフォは待機中です()。プロセスがリソースを使用し、そのリソースが解放されている場合、セマフォはシグナルを出します()。 wait()およびsignal()であるこれらの関数は、一度に1つのプロセスのみがリソースを使用できるために使用されます。 1つのリソースを2つのプロセスに割り当てることはできません。オペレーティングシステムには、バイナリセマフォとカウントセマフォの2種類のセマフォがあります。セマフォのカウントでは、初期化された値は利用可能なリソースの数です。プロセスがリソースを使用している場合、プロセスはwait()に直面し、そのリソースを待機する必要があります。カウントセマフォの値は1つずつ減少します。プロセスがリソースを使用すると、そのリソースとリリース信号()が解放されるため、別のプロセスのために解放されなければなりません。リソースのカウントが0の場合は、次のプロセスで使用できるリソースがないことを意味します。バイナリセマフォには、0と1の2つの値があります。プロセスがバイナリセマフォのリソース値を使用しているときは1〜0で、リソースがリソースを使用しているときはバイナリセマフォの値は1〜0です。


ミューテックスは相互排除オブジェクトとも呼ばれます。一度に1つのプロセスのみがリソースを使用できることがわかっています。これがロックのシステムがある理由であり、ロックのそのシステムはミューテックスとして知られています。プロセスがリソースを使用している場合、ミューテックスロックがプロセスに与えられます。 Mutexオブジェクトには一意の名前とIDがあります。プログラムでは、ミューテックスロックが必要になるたびに、ミューテックスロックはその名前とIDによって呼び出されます。 mutexのコードを見れば、mutexロックの実装と使用について明確に理解できます。

内容:セマフォとミューテックスの違い

  • 比較表
  • セマフォ
  • ミューテックス
  • 結論
  • 説明ビデオ

比較表

基礎セマフォミューテックス
意味セマフォはシグナル伝達メカニズムですミューテックスはロックメカニズムです。
セマフォは整数です。ミューテックスはオブジェクトです。
操作セマフォの操作wait()およびsignal()。ミューテックスの操作はロックとロック解除です
タイプセマフォには、カウントセマフォとバイナリセマフォの2種類があります。相互排他ロックのタイプはありません。

セマフォ

セマフォは整数変数Sです。セマフォはシグナリングメカニズムです。オペレーティングシステムでは、同期ツールが必要であり、オペレーティングシステムのツールはセマフォと呼ばれます。セマフォには、待機()、シグナル()の2つの主な機能があります。セマフォ値は、待機中()とシグナル()の2つの関数で変更されます。プロセスがリソースを使用している場合、セマフォは待機中です()。プロセスがリソースを使用し、そのリソースが解放されている場合、セマフォはシグナルを出します()。 wait()およびsignal()であるこれらの関数は、一度に1つのプロセスのみがリソースを使用できるために使用されます。


1つのリソースを2つのプロセスに割り当てることはできません。オペレーティングシステムには、バイナリセマフォとカウントセマフォの2種類のセマフォがあります。セマフォのカウントでは、初期化された値は利用可能なリソースの数です。プロセスがリソースを使用している場合、プロセスはwait()に直面し、そのリソースを待機する必要があります。カウントセマフォの値は1つずつ減少します。プロセスがリソースを使用すると、そのリソースとリリース信号()が解放されるため、別のプロセスのために解放されなければなりません。リソースのカウントが0の場合は、次のプロセスで使用できるリソースがないことを意味します。バイナリセマフォには、0と1の2つの値があります。プロセスがバイナリセマフォのリソース値を使用しているときは1〜0で、リソースがリソースを使用しているときはバイナリセマフォの値は1〜0です。

ミューテックス

ミューテックスは相互排除オブジェクトとも呼ばれます。一度に1つのプロセスのみがリソースを使用できることがわかっています。これがロックのシステムがある理由であり、ロックのそのシステムはミューテックスとして知られています。プロセスがリソースを使用している場合、ミューテックスロックがプロセスに与えられます。 Mutexオブジェクトには一意の名前とIDがあります。プログラムでは、ミューテックスロックが必要になるたびに、ミューテックスロックはその名前とIDによって呼び出されます。 mutexのコードを見れば、mutexロックの実装と使用について明確に理解できます。

主な違い

  1. セマフォはシグナル伝達メカニズムであり、Mutexはロックです
  2. セマフォは整数ですが、ミューテックスはオブジェクトです。
  3. セマフォの操作はwait()およびsignal()であり、mutexの操作はロックおよびロック解除です。
  4. 2つのタイプのセマフォは、セマフォとバイナリセマフォをカウントしますが、ミューテックスのタイプはありません

結論

上記のこの記事では、適切な実装によるセマフォとミューテックスの明確な違いがわかります。

説明ビデオ