Re: Real Time scheduler?

Victor Yodaiken (yodaiken@ladron.cs.nmt.edu)
Fri, 12 Feb 1999 16:42:53 -0700 (MST)


>
> >You misunderstood my example. There is no deadlock as P0 does not need
> >lock 1. All P0 needs is to complete the critical section and release Lock
> 0.
> >But P1 holds Lock 1 and is waiting for P0 to release lock 0. And
> >P2 holds Lock 2 and is waiting for P1 to release lock 1 -- so it is waiting
> >for P0 indirectly ... etc.
> >The problem is that if you rely
> >on priority inheritance as your solution,then you must implement
> >transitive inheritance and that is quite expensive.
>
> Your examples of multiple locks are tangential to the problem then.
>

If you just needed to keep an ordered queue for each resource, things
would be easy. My example shows that when a process blocks on one
resource, it potentially must traverse the wait queues associated with
an arbitrary number of other resources.

> P0's priority is boosted to the priority of process 1. If process 2 then
> tries to take the lock *and* it's priority is higher than P1, P0's priority
> is boosted to the priority of P2. When P0 releases Lock 0, P0's priority is
> lowered to it's original priority. Now P2 has the lock and is higher
> priority than P1. When P2 releases the lock, P1 gets it.

I know how things work in the
simple case. The simple case is not the problem.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/