Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!cbatt!ucbvax!sdcsvax!darrell From: darrell@sdcsvax.UUCP Newsgroups: mod.os Subject: Submission for mod-os Message-ID: <2698@sdcsvax.UCSD.EDU> Date: Wed, 11-Feb-87 10:18:39 EST Article-I.D.: sdcsvax.2698 Posted: Wed Feb 11 10:18:39 1987 Date-Received: Thu, 12-Feb-87 19:31:32 EST Sender: darrell@sdcsvax.UCSD.EDU Organization: V.U. Informatica, Amsterdam Lines: 68 Approved: mod-os@sdcsvax.uucp I am looking for a good, generally acceptable definition of the notion "distributed system". The literature contains many definitions of this notion (see below), but they all are different and all seem to be unsatisfactory in some way. Most definitions focus on high communication costs and/or absence of shared memory. With the current state-of-the-art in computer communications it seems strange to insist on high communication costs. For example, John Limb of Bell Labs has built a 200 megabit/second net that could be extended over many miles and ran on fiber optics. Should a system using such a communication medium be excluded as a distributed system because it is too fast ? Neither is it clear why shared memory is so essential. There are several distributed systems and languages that try to present some form of conceptual shared memory (e.g., David Gelernter's Linda, David Cheriton's "Problem-oriented shared memory," and Kai Li's "shared virtual memory"). So why is the absence of shared memory so important? At least, most people seem to agree that network-based systems ought to be included and that, for example, vector computers and dataflow machines are to be excluded. Yet, there are some cases that are less clear, for example: - a single board with lots of Transputers - a system consisting of several nodes connected by a LAN, where every node contains 5 processors and a single shared memory Does anyone know of an accurate, generally acceptable, definition ? ----------------------------------------------------------------------- Here are a few of the definitions I found: Leslie Lamport (CACM July 1978): A distributed system consists of a collection of distinct processes which are spatially separated, and which communicate with one another by exchanging messages. .... A system is distributed if the message transmission delay is not negligible compared to the time between events in a single process. Crookes&Elder (SPE Sept. '81): We thus define a distributed system as a system comprising a number of processors (each with its own private memory space), interconnected in a way which does not provide shared memory. Stammers (in: Concurrent Languages in Distr. Systems, North-Holland, 1984) : In this paper, a distributed system is one that has several memories, some or all of which cannot be directly addressed by every processor. Thus the distribution need not be geographical. Similarly the hardware components could be loosely coupled, for example by communication lines, or tightly coupled, for example by memories accessible from more than one bus. M.L. Scott (PhD thesis Univ. of Wisconsin at Madison, May '85): I use the adjective 'distributed' to describe any hardware or software involving interacting computations on processors that share no physical memory. Filman & Friedman (Coordinated Computing: Tools and Techniques for Distributed Software, McGraw-Hill, 1984): We classify multiple processor systems by their communications bandwidth. Systems that allow sharing of much information are multiprocessors. Such systems can be thought of as providing shared memory to their processes. .... Systems that incur higher communication costs are distributed systems. Henri Bal