Silberschatz /ガルビン(第9版)の著書「オペレーティングシステムの原則」と同様に、優先順位の逆転のWikipediaの記事はどちらも優先順位の逆転で、優先度の高いプロセスが優先順位の低いで開催されたリソースを使用することはできませんと言います優先順位の低いプロセスを優先してそのリソースを取得します。しかしもしそうなら(、つまり優先度ベースのプリエンプションが許可されている場合は)、なぜ優先度の高いプロセスが優先度の低いプロセス自体を優先してリソースを取得できないのですか?優先度の逆転では、なぜ優先度の高いプロセスが中優先度のプロセスを先取りできないのですか?
は、共有の排他的使用を取得することができます いずれかは、それぞれ高および低優先度の二つのタスクHとLを、考えてみましょう:以下
は書籍だけでなく、Wikipediaの記事に記載されているものですLが獲得した後にH がRを獲得しようとすると、Lはリソースを解放するまで をブロックします。よく設計されたシステムに専用のリソース (ここでR)を共有することは、典型的にはH(優先度の高いタスクが) 滞在時間の過度の期間にわたってブロックされないように、速やかにRを放棄L を含みます。良好な設計にもかかわらず、 しかし、中優先度の第三のタスクM(P(x)がタスクの優先度を表し、P(L)< P(M)< P(H)は、(X))となる可能性があります がLよりも優先され、LがLよりも優先され、L を即座に放棄することができなくなり、Hが最も優先度の高いプロセスとなり、 が実行不能になる走る。これは優先度逆転と呼ばれ、より高い優先度のタスク が優先度の低い優先度によって先取りされます。ここで
あなたが共有したリンクは、私の正確な質問がコメントの1つにあったため役に立ちました。他の誰かが私と同じ混乱を覚えました。 – Meathead