darrell@sdcsvax.UUCP (02/12/87)
In article <2699@sdcsvax.UCSD.EDU> cogito@cs.vu.nl (Robbert van Renesse) writes: >When is an application ``distributed?'' (justification omited) >======================================= > > Definition. A distributed application is an application > carried out by two or more processors. > >This leaves the terms ``application'' and ``processor'' to be >defined. The problem with this definition is that it allows nearly every application to be defined as distributed. The pc I'm using to write this on, for example has a keyboard processor, a graphics processor, a floating point co processor and a cpu, so that I can argue that any application it runs is distributed. >What is a distributed system? >============================= (justification omited) > > Definition. A distributed system consists of two or more > processors which have the ability to commun- > icate with one another. Since the advent of kermit, almost any two processors have the ability to communicate with each other, provided a long enough cable. (;-) These definitions, although acurate are overly broad. Unfortunately, I don't have an alternative definition which is any better ("If it walks like a duck and it quacks like a duck, it must be a duck.") Or maybe, the definitions are right and all applications are distributed; so we are trying to discuss the wrong things. An alternative way to view a distributed system is in terms of packaging; I claim that my PC isn't a distributed system because all of the processors were intentionally packaged into a system which won't work without them. Multiprocessor systems aren't distributed by this definition because they were packaged as such; but multiple workstations running a file server are a distributed system. The problem with this definition comes from two grey areas. First, if a vendor were to offer a turnkey distributed system would it become no longer a distributed system? Second, some systems are designed to be packed in many ways. A single VAX 11/780 isn't really a distributed system, even though it has at least two processors (the VAX CPU and the LSI-11,) and a VAX 11/785, which is really two 11/780s and a shared memory is sold as a multiprocessor; while a vax cluster is viewed as either a multiprocessor or as a distributed system, depending on the way the software is configured. Oh well, needs more thought. Marty
darrell@sdcsvax.UUCP (02/19/87)
I think all these definitions of distributed systems are missing the point. Everyone seems to be trying to define the term based on the technical requirements. I maintain that it is the functional requirements which are paramount. It seems to me that there are two significant of a distributed system: 1) Users at separate locations can access the system. 2) Users can get some of the functionality of the system even if all remote equipment is non-functional. Requirement (2) means that there must be autonomous processors at separate locations. Implicit in (1) is that there must be some communication between those processors, since otherwise the whole is not *a* system. Requirements that processors not share memory are a technical detail, irrelevant at this level. Frank Adams ihnp4!philabs!pwa-b!mmintl!franka Ashton-Tate 52 Oakland Ave North E. Hartford, CT 06108
darrell@sdcsvax.UUCP (02/21/87)
I think the only fully realistic (although not the only useful) definition of a distributed system is "something that runs on more than one processor and is not sufficiently well-understood to be a routine programming project". As soon as we understand how to do something reasonably well, people start saying "well, that's not *really* a distributed system, it's just a <xxx>", where fifteen years ago everyone would have agreed that <xxx> would constitute a type of distributed system. Henry Spencer @ U of Toronto Zoology {allegra,ihnp4,decvax,pyramid}!utzoo!henry -- Darrell Long Department of Computer Science & Engineering, UC San Diego, La Jolla CA 92093 ARPA: Darrell@Beowulf.UCSD.EDU UUCP: darrell@sdcsvax.uucp Operating Systems submissions to: mod-os@sdcsvax.uucp