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

Re: Conflicting Priorities in occam

On Tue, 2 Mar 1999 P.H.Welch@xxxxxxxxx wrote:

> > ALTs are all PRI ALTs of the transputer sort, complete with the famous
> > three-way PRI ALT bug (feature).  SPoC goes to great lengths to ensure
> > transputer compatibility...
> As does KRoC ;-) ...
> Denis: should we fix this now?

I guess we could make it a compiler option.  But, of course, the default
behaviour is all-important; do we want it "correct" or "according to the
standard established by INMOS".  recent precedent suggests serious legal
problems (Microsoft/SUN) if we improve occam.
> We fixed this bug for JCSP (and, I believe, in CTJ which uses the same
> algorithm).  The disables are carried out in reverse order, selecting
> for execution the *last* ready guard found.  I think that's what Michael
> Goldsmith tried to get the transputer people to do round about OUG-8 (at
> Sheffield) in 1988?

> Rate-monotonic is implemented by a PRI PAR with lots of components.  There
> is a classic argument between deadline-scheduling (which is *not* captured
> by PRI PAR) and rate-monotonic, since deadline-scheduling is theoretically
> more efficient.  `Theoretically' means ignoring the overheads of managing
> the scheduling, which are high (and non unit-time) for dynamically changing
> priorities -- especially when deadline-scheduling requires a *very* large
> number of priorities.  The scheme outlined by Twente (mentioned in an
> earlier mail) and implemented by Jim Moores for his CCSP/KRoC/Linux kernel
> has very low overheads for rate-monotonic applications.
> In any case, if the rate-monotonic cycle intervals form a sequence of integers
> where each one is an exact multiple of the previous, the theorem says that
> rate-monotonic scheduling is as efficient as deadlines.  And Andy says that
> that condition is usually fixable.

More importantly, there is a well-defined worst-case cost for
rate-monotonic.  So you can actually evaluate the _practical_ advantages,
if any, of deadline.

Anyway, supporting multiple priorities is no more a problem for SPoC than
supporting two.  You just need an array of queues, sized by the PRI PARs.

Denis A Nicole                      WWW:   http://www.hpcc.ecs.soton.ac.uk/~dan 
High Performance Computing Centre   Email: dan@xxxxxxxxxxxxxxx                  
University of Southampton           Phone: +44 1703 592703                      
UK.                                 Fax:   +44 1703 593903