| M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice Hall, New York, 1990. |
....management do not support the direct exposition of such plans. Consequently, the concurrency management plan tends to be interleaved with other computational plans in the system. To illustrate this, we begin by discussing a classical concurrent problem: the Dining Philosophers. Textbook solutions [20, 3] usually involve tricky resource manipulations to ensure the atomic acquisition of both forks while avoiding starvation, whereas the basic concurrency plan is straightforward: Whenever a philosopher eats, he requires access to both the fork on his left hand side and the fork on his right hand ....
....whereas the basic concurrency plan is straightforward: Whenever a philosopher eats, he requires access to both the fork on his left hand side and the fork on his right hand side. In a semi formal notation, we might express this plan as follows: eating left fork right fork Figure 1(from [3]) illustrates a monitor based solution 1 of the dining philosophers problem [20] Observe that our well intentioned concurrency plan has been interleaved with the underlying computation in a way that severely reduces the readability of this code. 1 This should not obscure the fact that more ....
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice Hall, New York, 1990.
....conditions in a RAM. The first condition is true if the scalar x is zero, and false otherwise. The second condition works just the opposite. A Reality Check on V RAMs Unlike the world of sequential programming, parallel programming models form quite a menagerie: ffl Semaphores, CCRs, Monitors [BA90, AS83] ffl CSP, Occam [Hoa85] 17 ffl Data Flow model [AA82] ffl RPCs, Client Server models [BN84, MW91] ffl Petri Nets [Rei85] ffl Alternating Turing Machines [CKS81, Ruz80] ffl Boolean circuits [CSV84, SV84] ffl Systolic Arrays [Kun82] ffl Associative Processors [Pot92, SKA92] ffl PRAM ....
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice Hall, New York, 1990.
....much more e ective to use the specialized rules for speci c veri cation tasks. The general rule, on the other hand, may be useful in models in which shared variable concurrency and message passing concurrency are jointly combined. For example, the distributed mutual exclusion algorithm reported in [4] uses both shared variables and message passing, and therefore it could be a good test for our general rule. It must be noted, however, that understanding a complicated algorithm is always a dicult task, and a formal veri cation is certain to be a challenge, to which a good method can only provide ....
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Chapter 11. Prentice Hall, 1990.
....of any type. This type of logging message allows applications and systems to log or report data of any type, and makes the CMLOG system easier to integrate into a control system. Moreover, the CMLOG system utilizes a well known database structure to allow fast searching, and employs a three tier [1] network architecture to improve the scalability. Clients Logging database Browsers Server Figure 1: A typical distributed logging system. 2 Design and implementation of CMLOG system 2.1 Design and analysis In comparison to a stand alone error reporting system that writes error messages ....
....C code for Unix and VxWorks systems using CMLOG. #include #stdio.h# #include #cmlogClient.h# extern C int client test (char name) #ifndef vxworks int main (int argc, char argv) #else int client test (char name) #endif f #ifndef vxworks cmlogClient client = new cmlogClient (argv[1]) #else cmlogClient client = cmlogClient: logClient (name) #endif if (client connect ( CMLOG SUCCESS) f cdevData data; data.insert ( value , 100) data.insert ( text , test 1 2 3 ) data.insert ( severity , 1) client postData (data) client disconnect ( g g Several ....
Ban-Ari, M. "Principles of Concurrent and Distributed Programming". Englewood Cliffs NJ, Prentice-Hall. 1990.
.... of the simulation model The development of the model is based on TRACES, a routing and traffic control system reported earlier [Evers 1999 1, Duinkerken 1999] TRACES uses so called scripts to define all possible routings, while physical safety is guaranteed using semaphores [Dijkstra 1968, Ben Ari 1990, Sommerhalder 1996] Using the TRACES software as a basis, a complete terminal simulation model is build. This model contains the main objects for a container terminal, namely quay cranes, stacking cranes, automated guided vehicles, containers and the layout of the terminal. Additionally, a ....
Ben-Ari, M. 1990. Principles of Concurrent and Distributed Programming. Prentice Hall.
....of the environment [Moore, 1990] In a static environment, there is no need for such actions. The second property is that other processes in the environment can interfere with the actions it attempts to perform. The idea is essentially the concept of interference in concurrent systems theory [Ben Ari, 1990]. Thus if an agent checks that the environment has some 6 property and then starts executing some action on the basis of this information, it cannot in general guarantee that the environment will continue to have property while it is executing . These properties imply that static ....
Ben-Ari, M. (1990). Principles of Concurrent and Distributed Programming. Prentice Hall. 23
....be considered, and we should describe properties of concurrent contractions that hold for some or all such sequences. The situation is reminiscent of the concurrent execution of independent programs on a single processor, and in particular, of the interleaving model of such computations (see e.g. [2]) By taking an interleaved approach to multi agent contractions, it turns out that new ways of thinking about theory change are called for. For a start, as we turn to sequences of single agent contractions, we have to give up the idea of concurrent contractions as functions, for, in general, even ....
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice Hall, 1990.
....order to cooperate effectively when sharing resources or exchanging information. The 2 Since synchronisation techniques apply equally to both processes and threads, both words will be used interchangeably within the context of synchronisation and communication. 18 most important synchronisation [9, 10, 4] methods are: ffl mutual exclusion, which guarantees that at most one process at a time can proceed in the critical section, a code area that can lead to interference; ffl condition synchronisation, in which the execution of a process is delayed until the program state satisfies some condition. ....
....and it is rather expensive to implement. Most programming languages provide a primitive that enables processes to communicate with multiple inputs when the order of communication is unknown. Occam provides the ALT construct which offers the functionality of a 27 repetitive construct, whereas Ada [39, 10] provides a select construct which is simpler, since only one process can succeed at a time. As an alternative to selective communication, Ada implements polling where each process needs to check constantly whether its guard succeeds. This results in busy waiting and wastes resources but on the ....
[Article contains additional citation context not shown here]
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentince Hall, 1990.
....in either method is the grain size or granularity. There are two main classes of granularity in program parallelisation, fine and course grain. Fine grain parallel programs are generally more communication intensive than CPU intensive and therefore requires the hardware support to be efficient [Ben90]. Typical hardware used with fine grain parallel programs are massively parallel and rely heavily on shared memory. This type of hardware is classified as closely coupled, where is cost of communication between processors is very low [Bal90] Course grain parallel programs are more often than not, ....
M. Ben-Ari. "Principles of Concurrent and Distributed Programming", Prentice Hall, 1990.
....payoff could be enormous. Designers of both types of languages have met with a great deal of success in recent years. Object oriented languages such as Eiffel [Wei95] and C [ES90] have proven their merit for large programming projects. Languages with concurrent constructs such as Ada and Linda [BA90] can take advantage of powerful and complex architectures to solve more difficult problems, while languages with support for distributed concurrent computations such as Obliq [Car95] are becoming extremely important for network programming. Until recently, neither group paid much attention to the ....
....necessary in designing concurrent object oriented languages, and the tradeoffs between implicit and explicit constructs are even more important because of the software engineering concerns of object oriented programming. Readers not familiar with concurrent programming are referred to [GM88] and [BA90] for more detail. 3.2 Specifying Concurrent Execution The most obvious new feature needed to move from sequential programming to concurrent programming is the ability to create multiple processes. While a concurrent program, like a sequential program, usually begins execution with a main ....
[Article contains additional citation context not shown here]
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice Hall, 1990.
....considered, and we should describe properties of concurrent contractions that hold for some or all such sequences. 5 The situation is reminiscent of the concurrent execution of independent programs on a single processor, and in particular, of the interleaving model of such computations (see e.g. [2]) By taking an interleaved approach to multi agent contractions, it turns out that new ways of thinking about theory change are called for. For a start, as we turn to sequences of single agent contractions, we have to give up the idea of concurrent contractions as functions, for, in general, even ....
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice Hall, 1990. 9
....lists of further readings throughout his book, covering the many different facets of concurrent programming, parallel programming, concurrent object systems and other related areas. Andrews [And91] is a good text on the general issues of systems level concurrent programming, as are [Ben82] and [Ben90], whilst operating systems texts such as [Tan92] and [Sil94] introduce the concepts from an OS perspective. Multi threading texts are usually based around the usage of particular libraries or interfaces, such as those defined by Unix International (UI) and POSIX. Kleiman et al. [Kle96] provides a ....
....be defined by specifying safety and liveness properties for that program. In simple terms safety ensures that nothing bad ever happens, whilst liveness ensures that something eventually happens [Aba93] These properties are formalised in various logic based approaches to concurrent programming [And91, Ben90, Sch97] as well as approaches using process algebra and finite state machines, such as that of McGee and Kramer [McG99] A system is live if all activities in it make progress toward completion. There are many reasons why a system may not be live. Using synchronisation to prevent interference, or to ....
[Article contains additional citation context not shown here]
Ben-Ari M., "Principles of Concurrent and Distributed Programming", Prentice-Hall International, ISBN 0-13-711821-X, 1990
....lists of further readings throughout his book, covering the many different facets of concurrent programming, parallel programming, concurrent object systems and other related areas. Andrews [And91] is a good text on the general issues of systems level concurrent programming, as are [Ben82] and [Ben90], whilst operating systems texts such as [Tan92] and [Sil94] introduce the concepts from an OS perspective. Multi threading texts are usually based around the usage of particular libraries or interfaces, such as those defined by Unix International (UI) and POSIX. Kleiman et al. [Kle96] provides a ....
....be defined by specifying safety and liveness properties for that program. In simple terms safety ensures that nothing bad ever happens, whilst liveness ensures that something eventually happens [Aba93] These properties are formalised in various logic based approaches to concurrent programming [And91, Ben90, Sch97] as well as approaches using process algebra and finite state machines, such as that of McGee and Kramer [McG99] A system is live if all activities in it make progress toward completion. There are many reasons why a system may not be live. Using synchronisation to prevent interference, or to ....
Ben-Ari M., "Principles of Concurrent and Distributed Programming", Prentice-Hall International, ISBN 0-13-711821-X, 1990
....of this circuit with respect to a behavioral description proposed by Gordon in [10] As has been discovered by [2, 22] the speci cation has a subtle bug. Both Mona and our system nd a (di erent) counter example of length 8. The third example is a buggy mutual exclusion protocol taken from [3]; both systems successfully nd a trace showing that the critical sections can be simultaneously accessed. Next we consider some examples that are dicult for Mona. First, we consider reasoning about two concurrent processes that increment a shared integer variable N by each executing the program: ....
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice Hall, 1990.
....order of a few cycles, depending on the branch delay and the latency of the CC and SS bit distribution network. A typical MIMD machine uses explicit synchronization in the form of semaphores, communication through memory, or operating system calls to synchronize processes on different processors [3,13,19]. The synchronization overhead in these cases ranges from ten to hundreds of cycles, making the granularity of parallelism that can be effectively exploited rather coarse. The XIMD s low synchronization overhead makes Figure 1. XIMD architecture with 4 functional units Global Multiported Register ....
....schedule, and replicate the Istreams to produce a final schedule. These tasks may be divided into three phases: analysis, nesting, and scheduling, as shown in Figure 3. Three kinds of analysis are performed: 1) data and control flow analysis; 2) loop analysis, which finds induction variables [3], determines exit conditions and iteration count if possible, and detects subroutine calls from within the loop body; and (3) dependency analysis, which determines the latency of dependence chains within iterations, finds loop carried dependencies and finds the shortest and longest paths to ....
M. Ben Ari, Principles of Concurrent and Distributed Programming, Pren. Hall, Englewood Cliffs, NJ, 1990
....behind Java s AWT[GYT96] Though very useful for this kind of programming, multithreading creates a series of problems, such as race conditions and synchronization issues. Discussing the issues related to concurrent programming is beyond the scope of this text. For that the reader is referred to [Ari90] and [Sch97] It is sufficient to say that understanding and debugging multithreaded programs is a complex task. As an example, suppose that a specification of a Java program requires two threads. Thread T1 prints sequentially the letters A, B and C, while thread T2 prints the numbers 1, 2, and ....
Moti Ben Ari. Principles of Concurrent and Distributed Programming. Prentice-Hall, 1990.
....as intrinsic features of the object oriented paradigm and systems based on it. 1 The notions of state and messages will be further investigated at a later stage. CHAPTER 1. BACKGROUND 7 1. 3 Recent Approaches We investigated existing models of concurrent computation in general [Neu91, Mil89, BA90, Sch86] and of object oriented models [W 91, Atk91] and carried out a survey on existing concurrent object oriented languages, similar to the one presented in [KL93] We found that most attempts to facilitate the object oriented paradigm for concurrent computation extend an existing ....
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice Hall, 1990.
....model behind Java s AWT[3] Though very useful for this kind of programming, multithreading creates a series of problems, such as race conditions and synchronization issues. Discussing the issues related to concurrent programming is beyond the scope of this text. For that the reader is referred to [1] and [15] It is sufficient to say that understanding and debugging multithreaded programs is a complex task. As an example, suppose that a specification of a Java program requires two threads. Thread T1 prints sequentially the letters A, B and C, while thread T2 prints the numbers 1, 2, and 3. ....
ARI, M. B. Principles of Concurrent and Distributed Programming. Prentice-Hall, 1990.
....each signal received by the process. Synchronization The Pthreads standard specifies a mutex object, a data structure for mutually exclusive access of shared data structures and condition variables for synchronization between threads. Other synchronization methods such as counting semaphores [3] can be easily implemented on top of these primitives [17] A thread may acquire (lock) an unlocked mutex. Thereafter, mutual exclusion between threads in the same process is guaranteed, until the mutex is unlocked provided that other threads guard critical sections by the same mutex. If a thread ....
M. Ben-Ari. Principles of Concurrent and Distributed Programming
....is handled to completion before the system starts handling the next event. 3 The Implementation of Termination Detection Algorithms using Lua 3. 1 The Problem of Termination Detection The importance of the problem of detecting that a distributed computation has terminated is widely recognized [Ray88, BA90, Tel94]. Some distributed programs terminate explicitly, but it is very common to structure a program in parallel worker processes which become active when they receive messages with some workload from each other, and passive when this workload has finished. In such programs, the problem of detecting ....
....or number of messages exchanged, but focused instead on the diversity of the solutions and their relative simplicity. Since we are using these algorithms only as programming examples, we will not give great attention to some details. For a comprehensive discussion about these algorithms see [Ray88, Mat87, BA90] In most termination detection algorithms, a detection procedure is started by one process (which may or not be one of the worker processes) which after receiving the results of this procedure, is able to determine whether termination has occurred. This process will be called the initiator. The ....
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice-Hall, 1990.
No context found.
Ben-Ari, M. 1990. Principles of Concurrent and Distributed Programming. Prentice Hall.
No context found.
M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice Hall, 1990. ISBN 0-13-711821-X.
No context found.
Ben-Ari, M. 1990. Principles of Concurrent and Distributed Programming. Prentice Hall.
No context found.
M. Ben-Ari. Principles of concurrent and distributed programming. Prentice Hall, 1990.
No context found.
Bena90 Ben-Ari, M. Principles of concurrent and distributed programming. PrenticeHall International, London, 1990.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC