ADistributed Typeserver and Protocol
for a Linda Tuple Space
Department of Computer Science,
University of Western Australia, Nedlands WA6009
Linda is a parallel programming paradigm which involves controlling access to a distributed
shared memory called a tuple space.The tuple space is comprised of a number of typed data
object called tuples.Inour implementation of Linda we choose to partition the tuple space so
that a set of data types is managed by each host in a local area network. To access the tuple
space it is necessary to determine which host is currently managing tuples of a particular type.
To t his end we introduce the notion of a typeserver,aprocess which is executed by each host in
alocal area network and is able to determine the location of tuples of a given type. If no host
is managing a given tuple type then a host is able to create it locally.Each typeserver in the
system executes a locking and agreement protocol which ensures that if many processes wish
to simultaneously create a tuple type, only one succeeds and all contending hosts receive the
same information of the tuple type'swhereabouts. This paper describes such a protocol. Addi-
tionally our protocol provides hosts with the ability to selectively ``forget''about foreign tuple
types yet still be able to locate them correctly.Finally an implementation of a typeserver
which runs on a network of Sun workstations under UNIX is described.
Linda is a programming framework of language-independent operators enabling communication between, and synchronization of, parallel processes . These operators may be injected into the syntax of existing, typically sequential, programming languages.
Linda permits cooperation between parallel processes by controlling access to a shared data structure called a tuple space.The tuple space comprises tuples,which are simply collections of data. Tuples may be of any arity,their type determined by the number and data type of their ?elds. Each tuple of a given type has the same type signature,and each type signature uniquely identi?es a single tuple type.
Manipulation of the tuple space is only possible using the set of Linda operators. Operators are provided to deposit tuples to the tuple space, remove tuples from the tuple space and create processes. Each operator is applied to a single tuple. Syntactically the invocation of each operator appears as a procedure or function call with a variable number of parameters. Further details of the Linda paradigm can be found in [1,2].
This work has been supported by The University of Western Australia's
Special Research Grant 04/15/087/244.