Related articles |
---|
Atomicity block alexili@ms.kyrnet.kg (2004-02-01) |
Re: Atomicity block lcargill@worldnet.att.net (Les Cargill) (2004-02-04) |
Re: Atomicity block thad@ionsky.com (Thad Smith) (2004-02-04) |
Re: Atomicity block tlh20@cus.cam.ac.uk (2004-02-04) |
Re: Atomicity block eventhelix@hotmail.com (2004-02-04) |
Re: Atomicity block nmm1@cus.cam.ac.uk (2004-02-08) |
Re: Atomicity block K.Hagan@thermoteknix.co.uk (Ken Hagan) (2004-02-12) |
Re: Atomicity block lcargill@worldnet.att.net (Les Cargill) (2004-02-13) |
From: | nmm1@cus.cam.ac.uk (Nick Maclaren) |
Newsgroups: | comp.distributed,comp.programming,comp.compilers |
Date: | 8 Feb 2004 21:55:19 -0500 |
Organization: | University of Cambridge, England |
References: | 04-02-022 04-02-047 |
Keywords: | parallel |
Posted-Date: | 08 Feb 2004 21:55:19 EST |
In article 04-02-047,
Les Cargill <lcargill@worldnet.att.net> writes:
|> Alexi wrote:
|> >
|> > Many languages introduce structures/keywords for critical sections,
|> > monitors and other similar stuff that does synchronisation, mutual
|> > exclusion and etc. Is there anything similar for atomicity? ...
|>
|> It's probably better to have an O/S ( and probably hardware ) support
|> these things, so that language/compiler implementation may remain
|> uncluttered by these issues.
However it is handled (and even "language-based" implementations often
are just wrappers for operating system calls), the language needs to
at least define the atomicity semantics. Take, for example, a simple
operation like:
ATOMIC INTEGER count = 0;
ATOMIC count +:= 1;
The language has to specify whether this is atomic for explicit
threads, a thread plus an interrupt handler, or both. In languages
with exception support (overflow, in this case), it has to specify
what happens when it overflows while being updated by two threads.
It gets REALLY hairy when you have peculiar, complex, non-orthogonal
and ill-specified exception mechanisms. The 'solution' to leave the
behaviour undefined so as not to handicap the implementation is almost
always a disaster, because distinction is rarely made between
"undefined" meaning unspecified reasonable behaviour and "undefined"
meaning that all hell may be let loose.
|> Ada has keywords for atomicity, but Ada didn't do very well in the
|> marketplace. Shame, it's a nice system.
Better than most, certainly.
Regards,
Nick Maclaren.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.