comp.lang.ada
 help / color / mirror / Atom feed
From: stt@ada-uts
Subject: Re: tasking question
Date: 12 May 88 14:44:00 GMT	[thread overview]
Message-ID: <57900071@ada-uts> (raw)
In-Reply-To: 1133@augusta.UUCP


Priority inversion is discussed in the session summary for Tasking
by Dennis Cornhill (credited to Lui Sha) in the special
issue of Ada Letters Volume VII, #6, Fall 1987 containing
the proceedings of the Internatiional Workshop on Real-Time
Ada Issues, Moretonhapstead, Devon, UK, 13-15 May 1987.

Priority inversion happens when a task is in rendezvous with
a low priority caller and a high priority task calls it.
Meanwhile, the task in rendezvous has been preempted by
a middle priority task.  The result is that a high priority
task is waiting while a middle priority task,
with which it has no synchronization, is proceeding.
A suggested solution was to define the priority of a task the
maximum of its own priority, that of its current caller,
and that of all of its pending callers (this represents a language
change).

A work-around is to make sure that an accepting task has
a specified priority at least as great of each of its potential callers,
though this may clearly create undesirable side-effects when the task
is not serving its highest-priority caller.
If the task is essentially a server or "monitor" task, with little
code outside of rendezvous, then setting it to a high priority
is probably prudent anyway so as to ensure that the shared resource
it manages is locked the minimal amount of time.

-Tucker Taft
Intermetrics, Inc.
Cambridge, MA  02138

  parent reply	other threads:[~1988-05-12 14:44 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1988-05-10 18:02 tasking question Burch Seymour
1988-05-11  7:22 ` David M. O'Rourke
1988-05-12 14:44 ` stt [this message]
  -- strict thread matches above, loose matches on Subject: below --
1983-10-05  0:42 Tasking Question David Gal
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox