6,351 views
5 votes
5 votes

Which of the following strategy is employed for overcoming the priority inversion problem?

  1. Temporarily raise the priority of lower priority level process
  2. Have a fixed priority level scheme.
  3. Implement Kernel pre-emption scheme.
  4. Allow lower priority process to complete its job. 

7 Answers

Best answer
6 votes
6 votes

Answer is A).

In aging problem , lower priority processes lead to starvation .

Priority inversion is a problematic scenario in scheduling, in which a high priority task is indirectly preempted by a lower priority task effectively "inverting" the relative priorities of the two tasks.

https://en.wikipedia.org/wiki/Priority_inversion

selected by
9 votes
9 votes

The priority-based model of execution states that a task can only be preempted by another task of higher priority.

However, scenarios can arise where a lower priority task may indirectly preempt a higher priority task, This is called "priority inversion", and usually occurs when resource sharing is involved.

The classic example to explain priority inversion is to imagine a system with three active threads, each at three different thread priorities

When the system begins execution, thread T1 is released and executes immediately since there are no other higher priority threads executing. Shortly after it starts, it acquires a lock on resource R1.

At time t=1.5, thread T3 is released and preempts thread T1 since it's of higher priority.

At time t=3, thread T2, a medium priority thread, is released but doesn't execute because higher priority thread T3 is still executing.

Shortly afterward, however, thread T3 attempts to acquire a lock on resource R1, but cannot since thread T1 (a lower priority thread) still owns it.

This allows thread T2 to execute in its place, which effectively violates the priority-order execution of the system, resulting in what we call priority inversion.

SOLUTION

priority boosting ::: temporarily Increase priority of a lower priority thread that acquires a lock to ensure that it will complete its execution, and release its lock, as quickly as possible!!

edited by
0 votes
0 votes

i guess it is a) only then the lower priorty process can increase its priorty and get the cpu and the job and leave the data item for high priorty process waiting 

b) is not flexible 

d) is definitely not possible 

c) i am not sure.. but dnt think kernel premption can slove this prob

Answer:

Related questions

4 votes
4 votes
2 answers
1
makhdoom ghaya asked May 2, 2016
4,052 views
A starvation free job scheduling policy guarantees that no job indefinitely waits for a service. Which of the following job scheduling policies is starvation free?Priorit...
5 votes
5 votes
2 answers
2
makhdoom ghaya asked Apr 29, 2016
6,498 views
Consider the following set of processes, with arrival times and the required CPU-burst times given in milliseconds.$\begin{array}{|l|l|l|l|} \hline \textbf{Process} & \te...
3 votes
3 votes
1 answer
3
makhdoom ghaya asked May 2, 2016
7,815 views
A CPU scheduling algorithm determines an order for the execution of its scheduled processes. Given 'n' processes to be scheduled on one processor, how many possible diffe...