comp.lang.ada
 help / color / mirror / Atom feed
From: Ted Dennison<dennison@telepath.com>
Subject: Re: Standard Queue status
Date: Thu, 29 Nov 2001 20:25:14 GMT
Date: 2001-11-29T20:25:14+00:00	[thread overview]
Message-ID: <KQwN7.42765$xS6.72463@www.newsranger.com> (raw)
In-Reply-To: 9u61b8$3o9$1@nh.pace.co.uk

In article <9u61b8$3o9$1@nh.pace.co.uk>, Marin David Condic says...
>
>Obviously, a data structure of indeterminate size has real problems for
>"hard" real time systems. Behavior of the code now depends on the number of
>elements that are there at any given run. So really, anything other than a
>fixed (at *compile* time) sized structure would probably be unsuitable for
>hard realtime. Hence, I think the requirement should be restated:

You are right that there needs to be some kind of assurance up front that the
sheer size of the list won't make schedulability a problem. But it doesn't
always have to come from the compiler.

Often times our systems have lists whose size is set by the number of items put
in a configuration file somewhere. We do this so that we don't have to resort to
a compiler to make trivial changes. For a mass-produced simulator, the end units
that you need to debug are often quite far away from any compiler. 

For example, each scheduled "item" that our RT scheduler has to schedule is put
in a configuration file (along with stuff like what frequency it runs at, and
whether its disabled or not). This is obviously going to end up in a list. It
would be tough to concieve of a RT scheduler that *doesn't* use some kind of
list. The issue for us isn't how it handles additions, since those happen at
startup, or deletions, since those only occur when there's a fatal error. But we
do have to iterate through the list and access the items in real time. 

What this means is that there really is no reason why we can't use a dynamic
list, as long as its authors can restrain themselves from performing heap
operations during iterations and element fetches.

This is just one example. We actually have several lists like this that get
accessed in real time, based upon the information in some kind of configuration
file. At one point we had some engineers (ab)using our interpolation table files
for this purpose by making a bunch of single-row tables with a column for each
configuration item. They'd then try to avoid the interpolation logic by only
requesting data for columns which they knew to be in the table file. %-(

>The list should do allocation/deallocation of memory only to add or remove
>elements - not to access its contents.

Exactly. :-)

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html

No trees were killed in the sending of this message. 
However a large number of electrons were terribly inconvenienced.



  reply	other threads:[~2001-11-29 20:25 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-27  1:19 Queue steve
2001-11-27  2:07 ` Queue Larry Kilgallen
2001-11-27 19:30   ` Queue Ted Dennison
2001-11-27 19:45     ` Queue Marin David Condic
2001-11-27 20:29       ` Queue Matthew Heaney
2001-11-27 20:55         ` Queue Marin David Condic
2001-11-27 21:20           ` Queue Ehud Lamm
2001-11-27 22:13             ` Queue Marin David Condic
2001-11-27 22:35               ` Queue Ehud Lamm
2001-11-28 14:53                 ` Queue Marin David Condic
2001-11-28 16:40                   ` Standard Library, Again (was: Re: Queue) Jeffrey Carter
2001-11-28 18:37           ` Standard Queue status Ted Dennison
2001-11-28 21:02             ` Marin David Condic
2001-11-28 21:40               ` Ehud Lamm
2001-11-29 14:42                 ` Ted Dennison
2001-11-29 15:23                   ` Marin David Condic
2001-11-29 17:58                     ` Ted Dennison
2001-11-29  7:23             ` Mats Karlssohn
2001-11-29 14:55               ` Ted Dennison
2001-11-29 15:58               ` Jeffrey Carter
2001-11-29 16:27                 ` Marin David Condic
2001-11-29 18:10                 ` Ted Dennison
2001-11-30  2:00                   ` Jeffrey Carter
2001-11-30 15:07                     ` Ted Dennison
2001-11-30 20:19                 ` Mark Lundquist
2001-11-29 13:47             ` Stephen Leake
2001-11-29 15:53               ` Marin David Condic
2001-11-29 18:10                 ` Stephen Leake
2001-11-29 18:58                   ` Marin David Condic
2001-11-29 18:21                 ` Ted Dennison
2001-11-29 19:12                   ` Marin David Condic
2001-11-29 20:25                     ` Ted Dennison [this message]
2001-11-29 22:49                       ` Marin David Condic
2001-11-30 15:15                         ` Ted Dennison
2001-11-30 15:32                           ` Marin David Condic
2001-11-30 19:49                             ` tmoran
2001-11-29 18:29               ` Stephen Leake
2001-11-29 19:27                 ` Marin David Condic
2001-11-29 20:35                   ` Ted Dennison
2001-11-29 22:54                     ` Marin David Condic
2001-11-30  1:51                       ` Jeffrey Carter
2001-11-29 18:37               ` Ted Dennison
2001-12-04 19:48                 ` Stephen Leake
2001-12-04 20:27                   ` Ted Dennison
2001-11-29 22:29               ` Jeffrey Carter
2001-11-30  2:19                 ` Nick Roberts
2001-12-04 19:51                   ` Stephen Leake
2001-11-30 15:19                 ` Ted Dennison
2001-11-30 12:40               ` Simon Wright
2001-11-27 21:38         ` Queue Brian Rogoff
2001-11-28  8:07           ` Queue Mats Karlssohn
2001-11-30  4:49             ` Queue Brian Rogoff
2001-11-30 15:30               ` Queue Ted Dennison
2001-11-30 21:02                 ` Queue Ehud Lamm
2001-11-30 21:07               ` Queue Ehud Lamm
2001-11-28  8:28           ` Queue Thomas Wolf
2001-11-28 17:27           ` Queue Ted Dennison
2001-11-30 22:11             ` Queue Ehud Lamm
2001-11-28  8:01         ` Queue Mats Karlssohn
2001-11-28  7:48       ` Queue Mats Karlssohn
2001-11-28 15:39         ` Queue Marin David Condic
2001-11-29  7:35           ` Queue Mats Karlssohn
replies disabled

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