![競合状態とそれらを防ぐ方法-デッカーのアルゴリズムの考察](https://i.ytimg.com/vi/MqnpIwN7dz0/hqdefault.jpg)
コンテンツ
- 定義-Dekkersアルゴリズムとはどういう意味ですか?
- Microsoft AzureとMicrosoft Cloudの紹介|このガイドを通して、クラウドコンピューティングとは何か、Microsoft Azureを使用してクラウドからビジネスを移行および実行する方法を学習します。
- TechopediaはDekkersアルゴリズムを説明します
定義-Dekkersアルゴリズムとはどういう意味ですか?
Dekkerのアルゴリズムは、並行プログラミングの相互排除の問題を解決する最初の既知のアルゴリズムです。 Thにクレジットされます。 J. Dekker、別の詐欺のアルゴリズムを作成したオランダの数学者。 Dekkersアルゴリズムはプロセスキューイングで使用され、通信に共有メモリを使用することで、2つの異なるスレッドが競合することなく同じ使い捨てリソースを共有できるようにします。
Microsoft AzureとMicrosoft Cloudの紹介|このガイドを通して、クラウドコンピューティングとは何か、Microsoft Azureを使用してクラウドからビジネスを移行および実行する方法を学習します。
TechopediaはDekkersアルゴリズムを説明します
Dekkerのアルゴリズムでは、2つのプロセスが同時にリソースを使用しようとしている場合、1つのプロセスのみがリソースを使用できます。アルゴリズムのハイライトは、この問題の解決方法です。相互排除を強制することにより、競合を防ぐことに成功します。つまり、一度に1つのプロセスのみがリソースを使用でき、別のプロセスがそれを使用している場合は待機します。これは、2つの「フラグ」と「トークン」を使用して実現されます。フラグは、プロセスがクリティカルセクション(CS)に入るかどうかを示します。値が1の場合はプロセスがCSに入ることを意味するTRUEを意味し、0またはFALSEはその逆を意味します。 1または0の値を持つこともできるトークンは、両方のプロセスのフラグがTRUEに設定されている場合の優先順位を示します。このアルゴリズムは相互排除を正常に実行できますが、クリティカルセクションが使用可能かどうかを常にテストするため、プロセッサ時間が大幅に浪費されます。ロックステップ同期と呼ばれる問題が発生し、各スレッドは厳密な同期でのみ実行される可能性があります。また、相互排除のために最大2つのプロセスのみをサポートするため、拡張できません。