🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by darrell Thu, 12 Feb 1987 13:25
Re: Submission for mod-os
#52
Author: darrell
Date: Thu, 12 Feb 1987 13:25
46 lines
2664 bytes
In article <2699@sdcsvax.UCSD.EDU> cogito@cs.vu.nl
(Jennifer Steiner and Robbert van Renesse) suggest the following definitions:
>
>    Definition.  A distributed application is an application
>        carried out by two or more processors.
>
>    Definition.  A distributed system consists of two or more
>        processors which have the ability to commun-
>        icate with one another.

Other recent submissions have made an additional point which I would like
to second:  in order to be "distributed" an application or system must not
rely on shared memory.  At the application level, this means that processes
use a communication mechanism based on some form of message passing.
(I consider RPC to be a form of message passing.)  At the hardware level,
it means that physical memory is local.  I agree with Steiner and van Ranesse
that a non-distributed application can run on a distributed system that
simulates shared memory.

It is of course possible to cite examples where the line is hard to draw.
Cm*, for example, might or might not be considered to support shared memory,
depending on whether you count the microcode of the Kmap as "hardware".
At a higher level, the tuple space of Linda might or might not be considered
a message-passing abstraction, depending on one's point of view.

I find it useful to keep distinct the meanings of the words "concurrent",
"parallel", and "distributed."  In the interests of broadening the discussion,
I suggest the following definitions:

    "Concurrent" implies the simultaneous existence of more than one
    thread of control.

    "Parallel" implies the simultaneous *execution* of more than one
    thread of control.

    "Distributed" implies interaction between threads of control on
    processors that share no physical memory.

Parallel and distributed both imply concurrent.
Most distributed computations are parallel.
Coroutines are concurrent but not parallel.
-- 
Michael L. Scott
University of Rochester    (716) 275-7745
scott@rochester.arpa       scott%rochester@CSNET-RELAY
{decvax, allegra, seismo, cmcl2}!rochester!scott
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads