私はいつも、メモリと同じように、プロセスが終了した後にクリーンアップするのはOSの責任であると想像していました。残念ながら、私はこれの多くの証拠を見つけるのに苦労しているので、何が起こるかを本当に保証することはできません。
私の主な質問は、プロセスがミューテックスをロックしていて、クリーンアップがほとんどまたはまったくない状態で突然終了した場合(つまり、Cでabortを呼び出すか、C ++で終了した場合)はどうなるでしょうか。
OSがミューテックスのロックを解除するという保証はありますか?それとも、ほとんどの信頼できるシステムが(解放されていないメモリと同様に)ロックを解除することを意味しますか?
保証がない場合、これにより、まだ実行中のプロセスとデッドプロセスによって保持されているロックの間に実際にデッドロックが発生する可能性がありますか?
この方法でデッドロックを作成できる場合、個別のプロセス間で共有されるミューテックスを介してではなく、プロセスのスレッド間でデッドロックを複製できますか?