RR スケジューリング ポリシーでは、優先度の低いスレッドがミューテックスをロックし、別の優先度の高いスレッドが待機しているためにスケジューラによって削除されるとどうなりますか?
優先度の低いスレッドが保持しているロックも解放しますか?
たとえば、RR スケジューリング ポリシーで優先度 10、20、および 30 のプロセスで実行されている 3 つのスレッドを考えてみます。
現在、特定の時点で、優先度の低いスレッド 1 がミューテックスをロックし、優先度の高いスレッドがポップインし、スレッド 1 が保持するミューテックスを待機している間、依然として実行手段を実行しています。スレッド 2 は、ロックされた同じミューテックスも必要とする状態になります。スレッド 1 によって。
私の知る限り、スケジューリングアルゴリズムに従って、ミューテックス、セマフォなどをスリープまたは待機しているスレッドは削除され、他のスレッドは優先度が低くても実行が許可されます。これは正しいです?もしそうなら、上記の例では、最終的に優先度の高いスレッドが優先度の低いスレッドの完了を待ちますが、これは意味がありません。上記のようにすべてのスレッドが設計されている場合、これがシステムの仕組みですか?
または、優先度の高いスレッドが優先度の低いミューテックスに依存しないように、スレッドの優先度を設定する必要がありますか?
また、スケジューリングがプロセスレベルでどのように機能するかを誰かに説明してもらえますか? プロセスの優先度を設定するにはどうすればよいですか?