Discusses the program languages designed for implementing distributed applications. Definition of a distributed system; Characteristics that distinguish distributed programming languages from traditional sequential la...
详细信息
Discusses the program languages designed for implementing distributed applications. Definition of a distributed system; Characteristics that distinguish distributed programming languages from traditional sequential languages.
distributed execution of a single program is becoming increasingly important for embedded real-time systems. The single program approach to distributed programming allows the advantages of language level software engi...
详细信息
distributed execution of a single program is becoming increasingly important for embedded real-time systems. The single program approach to distributed programming allows the advantages of language level software engineering developments to be fully realized across machine boundaries. This paper examines some of the fundamental issues and tradeoffs involved in the translation and execution of programs written in the Ada language and intended for distributed execution. The memory access architecture, binding time and degree of system homogeneity are the three basic dimensions in terms of which target systems can be described. Library subprograms and library packages are identified as natural distributable units of the language. The program to process/memory mapping and the unit of the language to be distributed are the key issues in the distribution of Ada. The implications of various alternatives for these are analyzed. [ABSTRACT FROM AUTHOR]
Ricard and Agrawala's algorithm for distributed mutual exclusion is extended to enable up to K nodes to be within the critical section simultaneously. Our algorithm requires at most 2*(N-1) messages per entry to t...
详细信息
Ricard and Agrawala's algorithm for distributed mutual exclusion is extended to enable up to K nodes to be within the critical section simultaneously. Our algorithm requires at most 2*(N-1) messages per entry to the critical section, and occasionally fewer.
An overview is presented of a distributed programming language called Communicating Sequential Modules (CSM), intended to support distributed computing. The language is developed from Modula-2 and communicating seque...
详细信息
An overview is presented of a distributed programming language called Communicating Sequential Modules (CSM), intended to support distributed computing. The language is developed from Modula-2 and communicating sequential processes (CSP). From CSP, the language has inherited parallel commands, guarded commands, and communication commands, and from Modula-2, it has inherited most of the rest, including the important module concept. CSM has been implemented on the ZCZ distributed microcomputer system consisting of several LSI-11 microcomputers. Its language is easy to understand. The CSM compiler is composed of a modified Modula-2 compiler and a translator, which is written in Modula-2 with a size of about 2,100 lines. Examples tested show that CSM is an effective tool for distributing programming.
In a distributed environment, events occur concurrently on different processors. The order in which events occur cannot be easily determined; a program that works correctly one time may fail subsequently if the timing...
详细信息
In a distributed environment, events occur concurrently on different processors. The order in which events occur cannot be easily determined; a program that works correctly one time may fail subsequently if the timing between processors changes. For this research, we have investigated distributed program bugs that depend on the relative order between events. We describe a tool (called TAP) to aid the programmer in discovering the causes of timing errors in running programs. TAP, a tool similar to a postmortem debugger, uses the history of interprocess communication to construct a timing graph, a directed graph where an edge joins node x to node y if event x directly precedes event y in time. The programmer can then use TAP to look at the graph to find the events that occurred in an unacceptable order. Because of the nondeterministic nature of distributed programs, we feel a history-keeping mechanism must always be active so that bugs can be dealt with as they occur. Our goal is to collect enough information at run time to construct the timing graph if needed. Since it is always active, this mechanism must be efficient. We also describe experiments run using TAP and report the impact that TAP's history-keeping mechanism has on the running time of various distributed programs. [ABSTRACT FROM AUTHOR]
The Graphics and Video Laboratory of the Department of Computer Science has a growing need for easy to use programming tools in support of distributed processing applications. The most pressing need is for software on...
详细信息
The Graphics and Video Laboratory of the Department of Computer Science has a growing need for easy to use programming tools in support of distributed processing applications. The most pressing need is for software on three UNIX-based workstations connected via Ethernet. The remote interprocess communication tools that UNIX provides for using Ethernet are effective but complicated to learn. This requires researchers to spend much of their time becoming proficient with them instead of concentrating on the distributed application at hand. This work presents the design and implementation of several programming tools that allow programmers to establish and experiment with distributed programs in the graphics laboratory environment. The tools allow a higher level of abstraction for remote interprocess communications and establish a straightforward method for implementing distributed programs. Additionally, they support code reuseability with software templates and are modularized to be both understandable and changeable. Recommendations are made for future research and management efforts that have been highlighted by these new tools.
This paper tackles the practical aspects of obtaining a distributed version of an Ada program. It proposes the use of an adapter, which can be a methodology or an automatic translator. The adapter accepts source of a ...
详细信息
This paper tackles the practical aspects of obtaining a distributed version of an Ada program. It proposes the use of an adapter, which can be a methodology or an automatic translator. The adapter accepts source of a concurrent Ada program, adds communication and control tasks, and produces source for a single distributed Ada program, which can then be compiled and run on a multi-processor computer. The original program can consist of packages and tasks, and both of these can be classed as virtual nodes. The process of adaption does not alter the contents of any package in the original program, so that the method is directly applicable to systems that make use of library and generic packages. The communication between virtual nodes, which would normally reside as one per processor, is via messages on a ring, but the protocols are kept as simple as possible, and the messages are fully checked Ada types, rather than byte strings. The method has been applied to programs of the client-server model, and could be adapted for other rendezvous-based languages such as occam.
The complexity of distributed applications is compounded by the lack of programming language support for distribution. Emerald is proposed as a solution. It is an object-based language for programmingdistributed su...
详细信息
The complexity of distributed applications is compounded by the lack of programming language support for distribution. Emerald is proposed as a solution. It is an object-based language for programmingdistributed subsystems and applications, whose innovative features include: 1. a single object model that is used both for programming in the small and in the large, 2. support for abstract types, and 3. an explicit notion of object location and mobility. An attempt is made to outline the goals of Emerald, relate it to previous work, and describe its type system and distribution support. By supporting abstract types, Emerald recognizes that a particular abstraction will often be implemented in several ways. This permits a system to evolve and allows the coexistence of multiple compiler-generated implementations that take advantage of distribution and locality. In addition, the concept of object mobility and call-by-move means call-by-reference semantics can be employed uniformly at all interobject interfaces, thus simplifying the construction and reconfiguration of distributed applications.
The termination problem for distributed computations is analyzed in the general context of asynchronous communication. In the underlying computational model it is assumed that messages take an arbitrary but finite tim...
详细信息
The termination problem for distributed computations is analyzed in the general context of asynchronous communication. In the underlying computational model it is assumed that messages take an arbitrary but finite time and do not necessarily obey the FIFO rule. Time diagrams are used as a graphic means of representing the overall communication scheme, giving a clear insight into the difficulties involved (e.g., lack of global state or time, inconsistent time cuts) and suggesting possible solutions.
A methodology for constructing distributed programs is presented that is different from existing methodologies. It is based on the well-known notion of developing distributed programs via synchronous and centralized ...
详细信息
A methodology for constructing distributed programs is presented that is different from existing methodologies. It is based on the well-known notion of developing distributed programs via synchronous and centralized programs. The distinguishing features of the methodology are: 1. Specification includes process structure data, and distributed programs are developed taking this information into account. 2. A new class of programs, called programs with processes involving shared actions, is employed in the development process. 3. A transformational approach is suggested to solve the problems inherent in the method of developing distributed programs through synchronous and centralized programs. The proposed methodology has been applied to many standard problems and found to be very useful.
暂无评论