comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Multitasking and containers
Date: Tue, 28 Nov 2006 19:21:42 +0100
Date: 2006-11-28T19:21:36+01:00	[thread overview]
Message-ID: <ew7chqfqaf4k$.q24btvjl13o3.dlg@40tude.net> (raw)
In-Reply-To: 1164730840.554295.78960@h54g2000cwb.googlegroups.com

On 28 Nov 2006 09:12:27 -0800, Matthew Heaney wrote:

> Dmitry A. Kazakov wrote:
>> 2. Using a protected object's procedure/entry would kill concurrency by
>> serialization of the action to undertake.
> 
> There is a difference between "synchronizing access to a shared
> resource" and "waiting for a resource to become available".
> 
> Calling a protected function or procedure is an example of the former.
> Calling a protected procedure would hardly "kill concurrency".  In a
> monitor there is only synchronization.  (I think it's the case that the
> task stays in a running state.)

Ah, you mean: in absence of preemptive scheduling.

> Calling a protected entry whose barrier condition is false is an
> example of the latter.  If the barrier condition were false this would
> mean the task waits (it transitions to a blocked state).  I would be
> loathe to say that that would "kill" concurrency since in typical
> designs that's exactly what the task is supposed to do.

No difference if the above premise holds, i.e. no task switches as long as
the barrier is closed.

But, the above is true *only* for a single-CPU system. So for a truly
parallel system it could become a problem. Dual-cores aren't that expensive
in these days.

Further, even on a single CPU, where protected functions and procedures are
equivalent, the requirement "no task switches while lock held" might be
unacceptable if you hold it for too long. Searching a container within a
protected action ... well, one should be a quite strong believer for this.
I wouldn't dismiss it completely, but I definitely don't like it. For
hashes I would at least take one with an external hash function computed
outside the protected action.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2006-11-28 18:21 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-24  8:51 Multitasking and containers Maciej Sobczak
2006-11-24 10:11 ` Georg Bauhaus
2006-11-24 10:19 ` Dmitry A. Kazakov
2006-11-24 10:35   ` Maciej Sobczak
2006-11-24 11:14     ` Dmitry A. Kazakov
2006-11-24 12:13       ` Matthew Heaney
2006-11-27  4:17         ` Jeffrey R. Carter
2006-11-27 10:30           ` Georg Bauhaus
2006-11-27 18:41             ` Jeffrey R. Carter
2006-11-27 18:57               ` Dmitry A. Kazakov
2006-11-27 19:45               ` Matthew Heaney
2006-11-27 21:15                 ` Simon Wright
2006-11-28  1:43                 ` Dr. Adrian Wrigley
2006-11-28  2:19                   ` Matthew Heaney
2006-11-28  8:50                     ` Dmitry A. Kazakov
2006-11-28 10:31                       ` Georg Bauhaus
2006-11-28 11:24                         ` Dmitry A. Kazakov
2006-11-29  8:51                           ` Georg Bauhaus
2006-11-28 17:12                       ` Matthew Heaney
2006-11-28 18:21                         ` Dmitry A. Kazakov [this message]
2006-11-28 19:17                           ` Matthew Heaney
2006-11-29 18:43                             ` Dmitry A. Kazakov
2006-11-29 10:14                       ` Maciej Sobczak
2006-11-29 15:50                         ` Matthew Heaney
2006-11-24 12:12     ` Matthew Heaney
2006-11-24 12:05   ` Matthew Heaney
2006-11-24 12:02 ` Matthew Heaney
replies disabled

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