2011-06-06 13 views
5

मैं लेख से समझने Priority Inversionप्राथमिकता उलट

स्निपेट समस्या हो रही है:

पर विचार नहीं है एक काम एल, कम प्राथमिकता के साथ। इस कार्य को संसाधन आर की आवश्यकता है। मान लें कि एल चल रहा है और संसाधन आर प्राप्त करता है। अब उच्च प्राथमिकता वाले अन्य कार्य एच है। यह कार्य भी संसाधन की आवश्यकता आर पर विचार करें एल के बाद संसाधन आर अब एच तक एल त्याग देता संसाधन आर इंतजार करना पड़ता है हासिल कर ली है एच शुरू होता है

सब कुछ अप करने के लिए इस बिंदु की उम्मीद रूप में काम करता है, लेकिन समस्याओं जब उठता नया कार्य एम इस समय के दौरान मध्यम प्राथमिकता से शुरू होता है। चूंकि आर अभी भी उपयोग में है (एल द्वारा), एच नहीं चलाया जा सकता है। पर - के बाद से एम सर्वोच्च प्राथमिकता का अवरोध हटा कार्य है, यह बाद से एल एम द्वारा रोका जाता कर दिया गया है, एल त्यागना नहीं कर सकते आर तो एम चलेगा जब तक यह समाप्त हो गया है, तो एल चलेंगे एल से पहले शेड्यूल कर दिया जाएगा कम से कम उस बिंदु तक जहां यह रिलाइक्शंस आर - और फिर एच चलाएगा। इस प्रकार, उपरोक्त परिदृश्य में, के साथ एक कार्य उच्च प्राथमिकता के साथ एक कार्य से पहले चला गया, प्रभावी रूप से हमें प्राथमिकता उलटा दे रहा है।

प्रश्न लेख के दूसरे भाग के लिए प्रासंगिक है। ऐसा क्यों है कि एच (उच्च) प्राथमिकता वाली प्रक्रिया एल (निचली) प्राथमिकता के साथ एक प्रक्रिया को पूर्व-खाली नहीं कर सकती है लेकिन एम (मध्यम) प्राथमिकता वाली प्रक्रिया पूर्व-खाली हो सकती है? यानी अगर एच को ब्लॉक में रखा गया था क्योंकि आर उपयोग में था, तो एम को भी अवरुद्ध क्यों नहीं किया गया था?

+0

जारी करने में सक्षम है, यह होमवर्क की तरह गंध करता है। फिर भी, एक अच्छा सवाल है। –

+1

सुनिश्चित नहीं है कि कैसे या क्यों .. लेकिन यह नहीं है ... –

उत्तर

4

क्योंकि एम को संसाधन आर की आवश्यकता नहीं है, इसलिए यह चलने में सक्षम है जबकि एल अभी भी उपयोग में है; एच, दूसरी तरफ, एल तब तक नहीं चल सकता जब तक एल एल

+0

धन्यवाद, मुझे पता था कि मैं कुछ मूर्खतापूर्ण याद कर रहा था :) –

संबंधित मुद्दे