[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Dynamic Priority



Dynamic Priority: Early termination
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Consider

PRI PAR
  PRIORITY
    c ? priority
  P0
  P1
  P2
:

Suppose that P2 terminates but P0 and P1 remain active. Then a command to
rotate the priorities is sent on c in the form of the list [1,2,0].
What happens? 

There are many possibilities including STOP. One might even think of
adding a STATUS channel which  causes a (suspend; report processes).
Input on the PRIORITY channel causes a resume. That is a nasty complex
hack.

But if the  new priorities always refer to the original syntactical order, 
the problem is solved. But at a small(?) cost in the implementation.

I suspect that  applications will operate in terms of the absolute
process names. They will not wish to keep track of the dynamically changing
priorities. If the control channel is multiplexed between several controllers,
that would require a lot of extra plumbing.

So I conclude that communications on c must be absolute: that is the reference
order is the original syntax. And if a component has already terminated, then
its entry is just ignored : equivalent to sheduling a SKIP in its place.
That last might even be useful as a implementation stategy...

Adrian

PS. Of course, if we had CHAN OF PROCESSES .....
-- 
A E Lawrence, MA., DPhil.  	adrian.lawrence@xxxxxxxxxxxxxx
MicroProcessor Unit, 13, Banbury Road, Oxford. OX2 6NN. UK.                
Voice: (+44)-1865-273274,  Fax: (+44)-1865-273275