タグ付けされた質問 「deadlocks」

5
安全でない状態が常にデッドロックを引き起こさないのはなぜですか?
私はGalvinのオペレーティングシステムを読んでいて、以下の行に出くわしました。 ただし、すべての安全でない状態がデッドロックであるとは限りません。安全でない状態はデッドロックにつながる可能性があります 誰かがどのようにデッドロックを説明できますか!=安全でない状態?ここでも同じラインを捉えました 安全なシーケンスが存在しない場合、システムは危険な状態にあり、デッドロックを引き起こす可能性があります。(すべての安全な状態でデッドロックは発生しませんが、すべての安全でない状態がデッドロックを引き起こすわけではありません。)

1
ロックの一貫性のない状態
私はマルチプロセッサプログラミングのアートを読んでおり、一貫性のないロックの概念を理解しようとしています。具体的には、37ページで、一貫性のないロックの定義2.8.1と補題2.8.1は私には明確ではありません。 定義2.8.1。Lockオブジェクトの状態sは、一部のスレッドがクリティカルセクションにあるグローバル状態では一貫していませんが、ロック状態は、クリティカルセクションにスレッドがない、またはスレッドが開始しようとしているグローバル状態と互換性があります。 補題2.8.1デッドロックのないロックの実装が不整合な状態になることはありません。 証明: Lockオブジェクトが一貫性のない状態sであり、クリティカルセクションにスレッドが存在しないか、スレッドが開始しようとしているとします。スレッドBがクリティカルセクションに入ろうとすると、実装にデッドロックがないため、スレッドBは最終的に成功する必要があります。 Lockオブジェクトが不整合な状態sにあるとします。ここで、Aはクリティカルセクションにあります。スレッドBがクリティカルセクションに入ろうとする場合、スレッドBはAが出るまでブロックする必要があります。BはAがクリティカルセクションにあるかどうかを判断できないため、矛盾があります。 わからないこと: 一貫性がないということは、スレッドがクリティカルセクションにある場合、他のスレッドがそれについて知ることができないということだけを意味しますか? 補題証明の矛盾は何ですか?スレッドAがクリティカルセクションにあり、ロックが不整合な状態にあるとします。別のスレッドがロックの状態を上書きして取得するのを阻止するものは何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.