Implementing a fault-tolerant C-Linda in OS/2

Date of Award


Document Type

Thesis - ECU Access Only


Edith Cowan University

Degree Name

Master of Science


School of Computer and Information Science


Faculty of Communications, Health and Science

First Supervisor

Dr Thomas O'Neill

Second Supervisor

Gary Chaplin


The parallel paradigm is accepted by computer scientists as playing a role of increasing importance in their discipline area. To enable operation in the parallel paradigm, Linda may be used to extend existing and well understood programming languages such as C, Eiffel, Prolog, and Lisp. Linda is not a complete programming language in its own right, but rather a coordination language which is injected into a host programming language thereby creating a parallel dialect of that host language. The behaviour of every component, whether hardware or software, may be defined by a service specification. Thus, a failure may be defined as occurring when a component behaves in a manner not consistent with its service specification. The ability of a system to tolerate failures of any of its components is called fault-tolerance. The probability of failure occurring is higher in parallel systems and distributed systems than in single-processor systems due to increased hardware and software complexity. Furthermore, as many computations on such systems are long lived, the ability to tolerate failures is particularly important. Personal Computers represent an abundant computing resource. Connecting multiple Personal Computers via a Local Area Network, a common practice in medium to large scale organisations, results in a computing resource which is typically idle, but which is readily useable in the parallel paradigm. By exploiting this idle resource a fault-tolerant Linda may be implemented. Such a Linda implementation achieves low-cost fault-tolerance by distributing and replicating a tuple space in a ring arrangement over the Local Area Network. This thesis describes the development of a fault-tolerant Linda injected into the ANSI C programming language running on a Local Area Network of Personal Computers, each one running under OS/2. The Local Area Network is accessed using NetBIOS, as provided by OS/2's Communication Manager.

Access to this thesis is restricted. Please see the Access Note below for access details.