comp.lang.ada
 help / color / mirror / Atom feed
From: Lutz Donnerhacke <lutz@iks-jena.de>
Subject: Re: High CPU in tasking
Date: Wed, 30 Jun 2004 12:26:21 +0000 (UTC)
Date: 2004-06-30T12:26:21+00:00	[thread overview]
Message-ID: <slrnce5cbd.m1.lutz@taranis.iks-jena.de> (raw)
In-Reply-To: 2kdn1gF169huU1@uni-berlin.de

* Nick Roberts wrote:
> "Lutz Donnerhacke" <lutz@iks-jena.de> wrote in message
>> Honestly, I do not understand your pragraph, but I will try to read
>> about caching techniques. Thanks for the hint.
>
> I think you might find this web page interesting:
>    http://linux0.cs.uaf.edu/als_proceedings/papers/sears/sears_html/

Thanx.

>> package Ringbuffers is
>
> I suspect that one thing you need to do is to make Register an entry, and
> allow the writer to wait for space in the buffer if necessary (because it
> has got too advanced on the readers).

Nope. "Put" is a procedure and therefore will not wait for any reader.
The readers call an entry (and are identified by the parameter of the entry
family, in order to access there current read positions) to wait for new data.
If the reader is too slow, it gets a positive "missed" value back.

> Do you need to explicitly unregister positions?

I do register readers, because entry families are limited in the number of
distince values possible. So a level of indirection is necessary is provided
by registration.

> I suspect the data itself ('buffer') doesn't need to go into the protected
> object, only registrations.

Currently the data is protected. It's an interesting idea to keep it out and
use a protected type for the positions only. This seems to result in explicit
semaphores.

> Then I don't think you would need to have Get or Put (and so no need for
> a family of entries for Get); just have a shared array.

It's not that easy, because the write process can overwrite slow readers.




  reply	other threads:[~2004-06-30 12:26 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-24 15:43 High CPU in tasking Lutz Donnerhacke
2004-06-24 17:00 ` Nick Roberts
2004-06-24 20:25   ` Lutz Donnerhacke
2004-06-24 21:56     ` Nick Roberts
2004-06-25  7:34       ` Lutz Donnerhacke
2004-06-25 17:03         ` Nick Roberts
2004-06-28  8:32           ` Lutz Donnerhacke
2004-06-29 17:26             ` Nick Roberts
2004-06-30 12:26               ` Lutz Donnerhacke [this message]
2004-06-30 23:39                 ` Randy Brukardt
2004-07-01  7:02                   ` Lutz Donnerhacke
2004-06-25 21:15 ` Mark Lorenzen
2004-06-26  8:01 ` Wojtek Narczynski
2004-06-28  8:17   ` Lutz Donnerhacke
replies disabled

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