180 likes | 193 Views
Inter-process Communication and Coordination. Chaitanya Sambhara CSC 8320 Advanced Operating Systems. Message Passing Communication. Message Passing Interface (MPI) is a specification for an API that allows many computers to communicate with one another.
E N D
Inter-process Communication and Coordination Chaitanya Sambhara CSC 8320 Advanced Operating Systems
Message Passing Communication • Message Passing Interface (MPI) is a specification for an API that allows many computers to communicate with one another. • MPI's goals are high performance, scalability, and portability. MPI remains the dominant model used in high-performance computing today.
Pipe: Used for inter-process communication within a single machine. • Socket : Used for inter-process communication between two different machines.
Multicast is used for one-to-many communication on a network. It can be either reliable, unreliable, or best-effort. Best-effort multicast ensures that at least one machine receives the message broadcasted. Messages have three different orderings: • FIFO ordering: Multicast messages from a single source are delivered in the order that they were sent. • Causal ordering: Causally-related messages from multiple sources are delivered in there causal order. • Total ordering :All messages from multiple sources are delivered in the same order they are sent.
Characteristics of Inter-process Communication • A queue is associated with each message destination. • Sending process cause messages to be added to remote queues and receiving processes remove messages from local queues. • Communication may be synchronous or asynchronous
Synchronous Communication • In the synchronous form of communication, both send and receive are blocking operations • Blocking means the process has to wait until the sending/receiving operation is finished. • Therefore, in this mode, whenever a message is transmitted, we know both processes were executing a send/receive operation at the same time (thus “synchronizing” them).
Asynchronous Communication • In the asynchronous form of communication the use of the send operation is non-blocking in that the sending process is allowed to proceed as soon as the message has been copied to a local buffer. • The actual transmission of the message then proceeds in parallel with the sending process. • The receive operation thought can have blocking and non-blocking variants.
Remote Procedure Call Client/server infrastructure that increases interoperability, portability and flexibility of an application by allowing the application to be distributed over multiple heterogeneous platforms.
Advantages • Reduces Complexity. • Keeps the semantics of a remote call the same whether or not the client and server are collocated on the same system.
Advantages • RPC increases the flexibility of an architecture by allowing a client component of an application to employ a function call to access a server on a remote system. • RPC allows the remote component to be accessed without knowledge of the network address or any other lower-level information.
Transactions and Processing • ACID Properties. • Atomicity • Consistency • Isolation • Durability
2 Phase Commit Protocol • Phase 1:Request a lock. • Phase 2: Release the lock.
Name and Directory Services The two steps of resolution are: • Name resolution - turns a name into an address • Address resolution - turns an address into a network route
Address Resolution Protocol ARP is used in four cases of two hosts communicating: • When two hosts are on the same network and one desires to send a packet to the other. • When two hosts are on different networks and must use a gateway/router to reach the other host. • When a router needs to forward a packet for one host through another router. • When a router needs to forward a packet from one host to the destination host on the same network.
Mutual Exclusion • Used for concurrent programming. • Limitation of resources.
Types of Mutual Exclusions • Centralized Mutual Exclusion. • Distributed Mutual Exclusion.
Leader Election • Used in Distributed Systems. • Used while assigning responsibility among nodes. • Need for such applications? • Applications?
References • Implementing message passing communication with a shared memory communication mechanism (1999) • On the abstraction of message-passing communications using algorithmic skeletons : A case study (2005) • The State of the Art in Agent Communication Languages (2000) • A survey of anycast in IPv6 networks Weber, S. Liang Cheng Lehigh Univ., Bethlehem, PA, USA; (2004) • Transaction-Based Communication-Centric Debug The Netherlands; Technical University Delft (2007) • NDR: Name Directory Service in Mobile Ad-Hoc Network Jae-Hoon Jeong, Jung-Soo Park, Hyoung-Jun Kim (2005) • A Distributed Mutual Exclusion Algorithm for Mobile Ad-Hoc Networks Università di Roma "La Sapienza (2004) • Local Leader Election in Wireless Sensor Networks ww.cs.rpi.edu/~szymansk/papers/wman.05.pdf (2005) • www.wikipedia.com