[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