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
next 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