page 1  (8 pages)
2to next section

ADistributed Typeserver and Protocol

for a Linda Tuple Space

James Pinakis

[email protected]

Department of Computer Science,

University of Western Australia, Nedlands WA6009

ABSTRACT

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.

1. INTRODUCTION

Linda is a programming framework of language-independent operators enabling communication between, and synchronization of, parallel processes [1]. 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.