開発 デッカーのアルゴリズムとは何ですか? -techopediaからの定義

デッカーのアルゴリズムとは何ですか? -techopediaからの定義

目次:

Anonim

定義-Dekkerのアルゴリズムとはどういう意味ですか?

Dekkerのアルゴリズムは、並行プログラミングの相互排除の問題を解決する最初の既知のアルゴリズムです。 Thにクレジットされます。 J. Dekker、別のコンテキスト用のアルゴリズムを作成したオランダの数学者。 Dekkerのアルゴリズムはプロセスキューイングで使用され、通信に共有メモリを使用することにより、2つの異なるスレッドが競合することなく同じ使い捨てリソースを共有できるようにします。

TechopediaはDekkerのアルゴリズムを説明します

Dekkerのアルゴリズムでは、2つのプロセスが同時にリソースを使用しようとしている場合、1つのプロセスのみがリソースを使用できます。 アルゴリズムのハイライトは、この問題の解決方法です。 相互排他を強制することで競合を防ぐことに成功します。つまり、一度に1つのプロセスだけがリソースを使用でき、別のプロセスがそれを使用している場合は待機します。 これは、2つの「フラグ」と「トークン」を使用して実現されます。 フラグは、プロセスがクリティカルセクション(CS)に入るかどうかを示します。 値1はプロセスがCSに入ることを意味するTRUEを意味し、0またはFALSEはその逆を意味します。 1または0の値を持つこともできるトークンは、両方のプロセスのフラグがTRUEに設定されている場合の優先順位を示します。


このアルゴリズムは相互排除を正常に実行できますが、クリティカルセクションが使用可能かどうかを常にテストするため、プロセッサ時間が大幅に浪費されます。 ロックステップ同期と呼ばれる問題が発生し、各スレッドは厳密な同期でのみ実行される可能性があります。 また、相互排除のために最大2つのプロセスのみをサポートするため、拡張できません。

デッカーのアルゴリズムとは何ですか? -techopediaからの定義