デッドロックの2つの条件がどのように異なるのか理解できません。ホールドアンドウェイトは、循環待機のサブセットのように見えます。
Hold andWaitとCircularWaitは、デッドロックが発生したときに満たされる条件です。
これは、これら2つの条件が満たされない場合、デッドロックに陥らないことを意味します。
保留および待機条件は、プロセスが他のプロセスによって必要とされる(または必要とされない)リソースを保持していることを示します。ここで重要な点は、プロセスがそれらのリソースを保持しており、要求されたリソース(他のプロセスによって保持されている)にアクセスするまでそれらを解放しないことです。
循環待機条件は、各プロセスが別のプロセスによって保持されているリソースを待機しているプロセスのチェーンが存在することを示します。この状態では、プロセスが他のプロセスが要求しているリソースを保持していることを必ずしも意味するのではなく、すべてのプロセスが別のプロセスによって保持されているリソースを待機していることを意味します。
詳細については、次の記事を参照してください。
http://www.cs.yale.edu/homes/aspnes/pinewiki/Deadlock.htmlhttp://nob.cs.ucdavis.edu/classes/ecs150-1999- 02/dl-cond.html
Hold And Waitの場合、他のプロセスによって現在保持されている追加のリソースを待機している間、すでに割り当てられているリソースを保持しているプロセスが存在する必要があります。一方、循環待機が発生する場合システム内のプロセスは循環リストまたはチェーンを形成し、リスト内の各プロセスは、リスト内の次のプロセスによって保持されているリソースを待機します。
注意点:チェーン(循環リスト)の形成は循環待機に必須ですが、保留と待機の場合はそうではありません。
参照: http://www.personal.kent.edu/~rmuhamma/OpSystems/Myos/deadlockCondition.htm