| H. Bal, Programming Distributed Systems. Prentice Hall, 1990. |
....associated to the reference are perceived by all the EU owning a reference to it. In existing MCSs, this mechanism is always used for local communication, although it could be extended to implement remote communication, for example with a distributed shared variable abstraction, as described in [6]. Event based mechanisms, in turn, define an event bus constituting the logical channel through which events are dispatched, together with primitives that allow EUs to generate events and to subscribe for receiving events they are interested in. Upon generation of an event, the communication ....
Bal, H. Programming Distributed Systems. Prentice Hall, 1991.
....to permit the construction of sequentially consistent systems. System wide sequential consistency can be maintained by forcing all operations on shared data to occur in a single sequential order, as in Symmetric Multi Processing (sharedbus) systems and some Concurrent Object systems, such as Orca[2, 3]. The problem with these approaches is scalability. A novel approach to the composition problem involves the use of the Linearizability correctness condition[12] A data item is said to be linearizable if a sequential ordering of operations can be constructed, such that all observable ordering ....
Henri Bal. Programming Distributed Systems. Prentice-Hall, 1990.
....consistent with the literature on concurrent operation semantics. Through various mechanisms, parallel systems may be constructed that guarantee that a set of composed objects obeys sequential consistency or some similar constraint over the apparent ordering of operations. One such system is Orca[3, 2], offering compositional guarantees by using a system broadcast mechanism to sequence all operations on shared objects in a system. This approach bears similarity to the use of cache snooping protocols in single bus shared memory machines. An alternative approach is to ensure that the individual ....
Henri Bal. Programming Distributed Systems. Prentice-Hall, 1990.
....available from the author on request. 1 Introduction 1. 1 Distributed Computing Systems A distributed computing system can be regarded as consisting of multiple autonomous, often heterogeneous, processors that do not share primary memory, but cooperate by sending messages over a common network [9]. Such concurrent computing environments based on networks of computers can be an effective, viable, and economically attractive complement to hardware multiprocessors supercomputers [8] Distributed computing systems are advantageous in several ways [6] Some of them are: ffl better computer ....
....the application, mostly as a pipeline. There exist several distributed environments providing a combination of a variety of capabilities. Some of such environments are Locus [6] ISIS (Cornell and Ohio State Universities) Linda [10] Cosmic Environment [7] Camelot Transaction Process facility [9], and PVM [11] 1.2 Parallel Virtual Machine (PVM) 1.2.1 Scope PVM is currently one of the most popular distributed computing software systems that allows the utilization of heterogeneous computing elements interconnected by one or more networks, as a single computational resource. It is being ....
H. E. Bal, Programming Distributed Systems, Silicon Press, 1990.
....can communicate directly with both its neighbouring processors, using an asynchronous message passing interface. Each processor has its own local memory for storing the program it executes and for storage of data. Also, there is a simulated piece of shared memory called the Linda tuple space [1]. Every processor can perform three atomic operations on this tuple space. A processor can store a tuple (a; b) in the tuple space using the command out (a; b) It can read and delete a tuple from the tuple space using the command in (a; b) A tuple can be read from the tuple space without ....
H. Bal, Programming Distributed Systems. Prentice Hall, 1990.
....1 L 2 L 2 L 2 L 3 L 3 L 4 L 4 L 1 Fig. 4. a) data distribution for four processors. b) labeling of the distributed image. with both its neighbouring processors. Each processor has its own local memory for storing data, and a simulated piece of shared memory called the Linda tuple space [1]. Three atomic operations can be performed on this tuple space. A tuple (a; b) is stored using the command out (a; b) A tuple is read and deleted using the command in (a; b) while a tuple can be read without deleting it using the command read (a; b) When the read operation is performed the ....
H. Bal, Programming Distributed Systems. Prentice Hall, 1990.
....to use compositional techniques to prove the correctness of the algorithm. 2 Object Model The concepts introduced in this section are illustrated with the gossip example in Appendix B. 2. 1 Basic Concepts Our object model bears many similarities to other distributed object models, such as Orca [4], and the Java object model [10] An object is an encapsulated state container. The state cannot be accessed directly; the only external access is through method calls, or operations. An object is a 3 4 Gossip (a) Outward phase Caller 1 5 1 Waiting = f2; 3g Waiting = f4; 5g 3 2 3 Parent ....
Henri E. Bal. Programming Distributed Systems. Prentice-Hall, New York, 1991.
....the object paradigm. There are three main approaches. the passive approach: concurrent execution is independent of objects. In this approach, threads and objects are orthogonal concepts. Synchronization constructs such as monitors in Java [6] or semaphores in Smalltalk 80 [7] or guards in Orca [8] must be judiciously used for synchronizing concurrent invocations of object methods. In the absence of explicit synchronization, objects are subject to the activation of concurrent requests and their consistency may be violated. the active approach: all objects are considered to be active ....
H. E. Bal, Programming Distributed Systems, SIPR, rst edition, 1990.
....in DT i . A failure of such a site is crucial, because the CoK must wait until the site recovers. We show improvements of PR deep by providing alternative primary copies (see Section 4.2) Also other strategies can be designed. However, in contrast to the protocol used for a distributed Orca [1, 2] implementation, all sites below the current node in the DT i may fail without compromising the access of this CoK. A further advantage of communication objects is that as soon as a communication object i is written, the DT i can be resolved. All copies turn into read only ones that can be ....
.... ENTRY gta(QUERY:L 1 , Delta Delta Delta,L n)WITH(tid) USES(STAT OID:pid T ,pid 1 , Delta Delta Delta,pid n) PROCESS(LOCAL,timeout(TIME) pid T ) PROCESS(LOCAL, remote call(MDI 1 ,L 1 )IN(tid) pid 1 ) Delta Delta Delta PROCESS(LOCAL, remote call(MDIn,Ln )IN(tid) pidn) IF ALT WAIT( [1] COBJ READ(pid 1 ) SUCCEEDED AND Delta Delta Delta Delta Delta Delta AND COBJ READ(pidn) SUCCEEDED, 2] COBJ READ(pid 1 ) SUCCEEDED, Delta Delta Delta [n 1] COBJ READ(pidn ) SUCCEEDED, n 2] COBJ READ(pid T ) 1 THEN TRANS ABORT(tid) TRANS END gta(tid, TRUE) ENTRY remote ....
[Article contains additional citation context not shown here]
H. Bal, Programming Distributed Systems. New York: Prentice Hall, 1990.
....in a distributed system. The most obvious case, splitting an object represented as a linked structure of objects along the links, is supported by several systems. Other forms of distributed objects are less common: ffl A replicated object as supported in the distributed programming language Orca [Bal91] is represented as a set of identical copies residing in different locations. ffl A dispersed object, analogous to a distributed module in Daphne [LMN88] is a container object whose elements reside in smaller container objects in different locations. ffl The concept of a fragmented object as ....
H. E. Bal. Programming Distributed Systems. Prentice-Hall, 1991.
....Algol, Pascal and Modula category of languages. In fact, Modula 2 was one of the main inspiration sources in the design of the language. However the one feature that distincts Orca from these other languages is its explicit support for parallelism. A full reference of the language is presented in [Bal91]. What follows here is merely a brief overview. Among the characterizing Orca features are: ffl There are no global variables. Parameters should be used instead. 4 ffl FUNCTION parameters are either IN put only, i.e. initialized local variables (default) OUT put only, i.e. local variables ....
Henri Bal. Programming Distributed Systems. Prentice Hall, 1991.
....shared data. The rst DSM system that used this approach was Ivy [108] which was implemented on a network of workstations. In the second approach, the compiler and the run time system are used to detect and collect writes to shared data at user level [115] Examples of RT DSM systems include Orca [11] and Amber [61] A key issue in shared memory systems is memory consistency models. That is how to keep memory consistent where a read to a shared memory location must return the most recently written value. This is what programmers intuitively expect and is the strictest memory consistency ....
....append which is associative but not commutative. fun append [ l = l j append (h: t) l = h: append t l) The function append takes two arguments (lists) and returns a list. We can use this function as an argument to fold over a list of lists. fold append [ 1,2] 3,4] 5,6] 7,8] 9,10] [11,12], 13,14] 15,6] In the above program fold with append as its function argument is applied to a list that has 8 sublists. The expected result is [1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15,16] However, if the sublists are not distributed in a speci c order then incorrect results will be returned. ....
[Article contains additional citation context not shown here]
Henri E. Bal. Programming Distributed Systems. Silicon Press, Summit, NJ, 1990. 148
....time frame, but to distribute a program among multiple processors is not the job of an operating system. Therefore to be able to utilise a distributed system to its full extent, the programmer must put in place the relevant information so that the distributed system can be used to its full extent [Bal90]. There are two ways of placing information into programs so that they can execute on distributed systems. One method is to take the existing sequential language and extend it by placing library calls that invoke operating system primitives, which handle process creation and message passing. ....
....language and extend it by placing library calls that invoke operating system primitives, which handle process creation and message passing. Although relatively easy to implement, the ability to utilise all the available resources in the distributed system is still reliant on the programmer [Bal90]. As well as knowing how the program operates the programmer has to know exactly what resources the system consists of. Some problems with this are that the programmer will not usually know what the state of these resources will be at run time and it will often not be portable to different ....
[Article contains additional citation context not shown here]
H. Bal. "Programming Distributed Systems", Silicon Press, 1990.
....and synchronously. We show how the PRAM language Fork95 can be extended by a construct join supporting parallel critical sections. We explain its semantics and implementation, and discuss possible applications. 1 Introduction In a parallel environment, critical sections (for a survey, see e.g. [Bal90]) are segments of code accessing data which are visible to more than one parallel thread. Their implementation is one of the key problems, e.g. of global resource management or consistency in parallel databases. Classically, semaphores are used to avoid more than one thread at a time to execute ....
Henri Bal. Programming Distributed Systems. Prentice Hall, 1990.
....author was a visiting researcher at the Vrije Universiteit. z This research is supported in part by a PIONIER grant from the Netherlands Organization for Scientific Research (N.W.O. 1 In our research we advocate the use of a simple model for parallel programming, called shared data objects [2]. Its greatest advantage is that it abstracts from the underlying distributed system, and offers the programmer a model based on shared data rather than message passing, which eases parallel programming. Also, programs written using this model are portable across a wide range of parallel machines. ....
....kilobytes. Still, the results show that good speedups can be obtained for large input problems. The outline of the rest of the paper is as follows. In Section 2 we briefly describe the shared data object model. More detailed descriptions of the model and of Orca can be found in the literature [2, 3, 11, 17]. In Section 3 we outline the Arc Consistency Problem and we discuss a simple sequential algorithm for it. Section 4 discusses how a parallel ACP algorithm can be developed using the shared data object model. Section 5 gives performance results for the Orca program based on this algorithm. Section ....
[Article contains additional citation context not shown here]
H. E. Bal, Programming Distributed Systems, Prentice Hall International, Hemel Hempstead, England, 1991.
....of several Ethernet segments connected by an Ethernet switch. Each segment connects eight processors by a 10 Mbit sec Ethernet. The six Orca applications selected for the measurements together solve a wide range of problems with different characteristics. Some of the applications are described in [1]. The applications were run on an Orca implementation using kernel space communication protocols, and on an Orca implementation using user space protocols. The two implementations use exactly the same runtime system and compiler. The absolute execution times of the applications and maximum ....
H.E. Bal. Programming Distributed Systems. Prentice Hall Int'l, Hemel Hempstead, UK, 1991.
....extension of object based parallel languages, such as Orca. This paper introduces atomic functions and shows how compile time information can drive run time optimizations of such functions. 1 Introduction The shared data object model is a model for parallel programming on distributed systems [2, 4]. This model provides to the user an object based distributed shared memory. Processes can communicate through shared data structures (objects) that are encapsulated in abstract data types (ADTs) To ease programming, operations on a single shared object are always executed atomically. We have ....
....to achieve good performance [3] A restriction of the shared data object model is that each ADT operation is applied to a single object. Each operation can only access the object to which it is applied, and no other objects. This decision was made to allow an efficient implementation of the model [2]. For many parallel applications, this restriction is not a problem. There are also applications, however, that are difficult to implement with this simple model. As an example, let us consider an application that uses a job queue object to distribute work and a counter object to keep track of the ....
H.E. Bal. Programming Distributed Systems. Prentice Hall International, Hemel Hempstead, UK, 1991.
....are attractive for running parallel programs. There are, however, two problems in exploiting their power: the lack of easy to use parallel programming systems and the communication overhead. In our research we advocate the use of a simple model for parallel programming, called shared dataobjects [1]. Its greatest advantage is that it abstracts from the underlying distributed system, and offers the programmer a model based on shared data rather than message passing. The model is supported in a parallel programming language called Orca [2] which has been implemented on Ethernet based ....
....model is characterized by two rules: 1. Each operation on an object is executed indivisibly, to simplify programming. 2. Each operation is applied to a single object, to allow an efficient implementation. A programming language called Orca, based on this model, has been designed and implemented [1, 2, 4]. Parallelism in Orca is based on the explicit creation of processes. We will not discuss the details of Orca here, although we use a pseudo notation similar to Orca for describing shared objects. An operation invocation has the form obj oper(parameters) which means that the operation oper is ....
H. E. Bal, Programming Distributed Systems, Prentice Hall International, Hemel Hempstead, England, 1991.
....for interprocess communication and synchronization. This model, called shared data objects, tries to simplify parallel programming by hiding physical communication as much as possible from the programmer. To evaluate our approach, we have designed and implemented a parallel language called Orca [4, 7], based on this model. Orca is a simple, imperative, type secure language supporting shared objects. Besides ease of use, we had two important design goals for Orca: the language had to be reasonably efficient and portable to a wide range of (distributed memory) parallel machines. Portability was ....
....algorithm, different processes (workers) analyze different parts of the search space. If one processor discovers a new better route, all other processors should be informed about this immediately. Any delay in propagating the new bound will result in less effective pruning (i.e. search overhead) [4]. In Orca, the bound can be implemented by using a globally shared object. Whenever a worker wants to use the bound, it reads the object. If a worker finds a new better route, it updates the object. Since reading the bound is done much more frequently than updating it, the runtime system will ....
H.E. Bal. Programming Distributed Systems. Prentice Hall Int'l, Hemel Hempstead, UK, 1991.
....program. Distributed shared memory, on the other hand, provides an easy programming interface, but often fails with respect to performance. Furthermore, the implementation is often architecture dependent. The shared data object model is a model for parallel programming on distributed systems [2, 4], based on an object based distributed shared memory. Processes can communicate through shared data structures (objects) that are encapsulated in abstract data types (ADTs) The only way to access a shared dataobject is by performing operations on it. This allows the compiler and runtime system ....
....to achieve good performance [3] A restriction of the shared data object model is that each ADT operation is applied to a single object. Each operation can only access the object to which it is applied, and no other objects. This decision was made to allow an efficient implementation of the model [2]. For many parallel applications, this restriction is not a problem. There are also applications, however, that are difficult to implement with this simple model. As an example, let us consider an application that uses a job queue object to distribute work and a counter object to keep track of the ....
H.E. Bal. Programming Distributed Systems. Prentice Hall International, Hemel Hempstead, UK, 1991.
No context found.
H.E. Bal, "Programming Distributed Systems," Prentice Hall International, Hemel Hempstead, England (1991).
No context found.
H.E. Bal, "Programming Distributed Systems," Silicon Press, Summit, NJ (1990).
....of a collection of workstations on a network, which is a suitable platform for parallel processing [2] The network we use is significantly slower than more modern technologies (e.g. ATM) so our performance results could be improved by using faster networks. The ra program was written in Orca [3, 4]. Orca is an imperative, type secure, parallel language. Its communication model is based on shared objects. Processes on different machines can share objects and apply operations to these objects. The implementation of Orca on Amoeba is described in [5, 8] Each Orca process is implemented as a ....
H.E. Bal. Programming Distributed Systems. Prentice Hall Int'l, Hemel Hempstead, UK, 1991.
No context found.
H. Bal, Programming Distributed Systems. Prentice Hall, 1990.
No context found.
Henri Bal. Programming Distributed Systems. Prentice-Hall Int., 1990
First 50 documents Next 50
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