comp.lang.ada
 help / color / mirror / Atom feed
From: visicom!rlk@nosc.mil  (Bob Kitzberger)
Subject: Re: Interrupts
Date: 18 Feb 93 21:12:21 GMT	[thread overview]
Message-ID: <288@VisiCom.COM> (raw)

dl10696@ehsn4.cen.uiuc.edu (Dat Trieu Le) writes:

>task service is
>  entry ISR;
>  for ISR use at 16#xxx#;
>end service;
>
>My question is: instead of using the overhead of tasks, is it
>possible to tie the interrupt directly to a procedure?

It's something of a non-sequiter that tasks themselves have too much
overhead.  There are _characteristics_ of tasks that incur varying
amounts of overhead, such as context switch time, interrupt latency,
interrupt lockout, frequency of interaction, stack usage, etc.

In the case of interrupt handling, the main concern is usually
interrupt latency.  Most Ada vendors support interrupt entries for
tasks, and many provide features specifically geared towards reducing
the interrupt latency of task entries to a point where they're just
about as quick to respond as interrupt handling procedures.  Basically,
the approach is to tie the task's interrupt entry to the interrupt
vector with a minimal amount of preambl and postamble processing.
This is usually just a handful of assembly instructions  to
save registers, swap in the new task's stack limits, and jump
directly to the interrupt entry.

TeleSoft calls this optimization "function mapped" entries, and Verdix
calls theirs "passive interrupt tasks".  There are subtle differences,
but both allow the task entry to make a call to another task, as long
as that call is guaranteed not to block.  Other vendors have similar
capabilities, and your mileage may vary.

Of course, you can still use the conventional model of tying subprogram
addresses to interrupt vectors.  Even in this case, your vendor will
probably provide some sort of capability for you to do this painfully
(usually a generic package, where one of the generic actual parameters
is the interrupt service routine) . 

	.Bob.
----------------
Bob Kitzberger          VisiCom Laboratories, Inc.
rlk@visicom.com         10052 Mesa Ridge Court, San Diego CA 92121 USA
                        +1 619 457 2111    FAX +1 619 457 0888

             reply	other threads:[~1993-02-18 21:12 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-02-18 21:12 Bob Kitzberger [this message]
  -- strict thread matches above, loose matches on Subject: below --
2001-01-07 20:52 Interrupts Szygula
2001-01-08 13:48 ` Interrupts Andrzej Lewandowski
1993-02-23 21:30 Interrupts agate!howland.reston.ans.net!sol.ctr.columbia.edu!eff!news.oc.com!convex!
1993-02-23 12:42 Interrupts destroyer!cs.ubc.ca!utcsri!newsflash.concordia.ca!nstn.ns.ca!jmacleod
1993-02-18 15:07 Interrupts Dat Trie u Le
1993-02-17 16:15 Interrupts USERS
replies disabled

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