+ All Categories
Home > Documents > Inter Process Communication - New Copy

Inter Process Communication - New Copy

Date post: 04-Apr-2015
Category:
Upload: krishna-sai
View: 55 times
Download: 2 times
Share this document with a friend
36
Inter – Process Inter – Process Communication Communication CS 536 CS 536 Syed S.Ahmed(#103568) Syed S.Ahmed(#103568) Sai K. Pasupuleti(#10 Sai K. Pasupuleti(#10 06/16/22 1 Inter - Process Communication
Transcript
Page 1: Inter Process Communication - New Copy

Inter – Process Inter – Process CommunicationCommunication

CS 536CS 536

Syed S.Ahmed(#103568)Syed S.Ahmed(#103568)

Sai K. Pasupuleti(#103463)Sai K. Pasupuleti(#103463)

04/11/23 1Inter - Process Communication

Page 2: Inter Process Communication - New Copy

OutlineOutline

Interprocess CommunicationInterprocess Communication Communication ModelsCommunication Models Unicast & MulticastUnicast & Multicast Message Passing CommunicationMessage Passing Communication Synchronous-Asynchronous IPCSynchronous-Asynchronous IPC Basic Communication PrimitivesBasic Communication Primitives Message Design IssuesMessage Design Issues Synchronization and BufferingSynchronization and Buffering ReferencesReferences

04/11/23 2Inter - Process Communication

Page 3: Inter Process Communication - New Copy

Introduction Introduction What is Inter Process Communication?What is Inter Process Communication?

Exchange of data between two or more separate, independent Exchange of data between two or more separate, independent processes/threads.processes/threads.

Operating systems provide facilities/resources for inter-process Operating systems provide facilities/resources for inter-process communications (IPC) such as message queues, semaphores, and communications (IPC) such as message queues, semaphores, and shared memory.shared memory.

Distributed computing systems make use of these facilities/resources to Distributed computing systems make use of these facilities/resources to provide application programming interface (API) which allows IPC to provide application programming interface (API) which allows IPC to be programmed at a higher level of abstraction. (e.g., send and receive)be programmed at a higher level of abstraction. (e.g., send and receive)

Distributed computing requires information to be exchanged among Distributed computing requires information to be exchanged among independent processes.independent processes.

IPC provides a mechanism to allow processes to communicate and to IPC provides a mechanism to allow processes to communicate and to synchronize their actions without sharing the same address space.synchronize their actions without sharing the same address space.

Its particularly useful in a distributed environment where the Its particularly useful in a distributed environment where the communicating processes may reside on different computers connected communicating processes may reside on different computers connected with a network. with a network.

04/11/23 3Inter - Process Communication

Page 4: Inter Process Communication - New Copy

COMMUNICATION MODELSCOMMUNICATION MODELS

Cooperating processes require IPC mechanism that allow them to Cooperating processes require IPC mechanism that allow them to

exchange data and information. Communication can take place either by exchange data and information. Communication can take place either by Shared memory or Message passing Mechanisms.Shared memory or Message passing Mechanisms.

Shared Memory:Shared Memory:1) Processes can exchange information by 1) Processes can exchange information by reading and writing data to the shared region.reading and writing data to the shared region.2) Faster than message passing as it can be2) Faster than message passing as it can be done at memory speeds when within a computer.done at memory speeds when within a computer.3) System calls are responsible only to establish3) System calls are responsible only to establish shared memory regions.shared memory regions.

Message Passing:Message Passing:Mechanism to allow processes to communicate and Mechanism to allow processes to communicate and synchronize their actions without sharing the same synchronize their actions without sharing the same address space and is particularly useful in distributed address space and is particularly useful in distributed environment.environment.

04/11/23 4Inter - Process Communication

Page 5: Inter Process Communication - New Copy

Basic Communication PrimitivesBasic Communication Primitives

Two generic message passing primitives for sending and receiving messages.Two generic message passing primitives for sending and receiving messages. send (destination, message)send (destination, message) receive (source, message) source or dest={ process name, link, receive (source, message) source or dest={ process name, link,

mailbox, port}mailbox, port}

Addressing Addressing - Direct and Indirect - Direct and Indirect

11) Direct Send/ Receive ) Direct Send/ Receive communication primitivescommunication primitives Communication entities can be addressed by process names (global process Communication entities can be addressed by process names (global process

identifiers)identifiers) Global Process Identifier can be made unique by concatenating the network Global Process Identifier can be made unique by concatenating the network

host address with the locally generated process id. This scheme implies that host address with the locally generated process id. This scheme implies that only one direct logical communication path exists between any pair of sending only one direct logical communication path exists between any pair of sending and receiving processes.and receiving processes.

Symmetric AddressingSymmetric Addressing : Both the processes have to explicitly name in the : Both the processes have to explicitly name in the communication primitives.communication primitives.

Asymmetric Addressing Asymmetric Addressing : Only sender needs to indicate the recipient. : Only sender needs to indicate the recipient.

04/11/23 5Inter - Process Communication

Page 6: Inter Process Communication - New Copy

2) Indirect Send/ Receive communication primitives2) Indirect Send/ Receive communication primitives Messages are not sent directly from sender to receiver, but sent to shared data Messages are not sent directly from sender to receiver, but sent to shared data

structure.structure.

Multiple clients might request services from one of Multiple clients might request services from one of Abstraction of a finite Abstraction of a finite size FIFO queue size FIFO queue

multiple servers. We use mail boxes.multiple servers. We use mail boxes. maintained by kernel.maintained by kernel.

04/11/23 6Inter - Process Communication

Page 7: Inter Process Communication - New Copy

Message Passing CommunicationMessage Passing Communication

Messages are collection of data objects and their structuresMessages are collection of data objects and their structures

Messages have a header containing system dependent control information and a Messages have a header containing system dependent control information and a message body that can be fixed or variable size.message body that can be fixed or variable size.

When a process interacts with another, two requirementsWhen a process interacts with another, two requirements have to be satisfied.have to be satisfied. Synchronization and CommunicationSynchronization and Communication..

Fixed LengthFixed Length

Easy to implementEasy to implement Minimizes processing and storage overhead.Minimizes processing and storage overhead.

Variable LengthVariable Length

Requires dynamic memory allocation, soRequires dynamic memory allocation, so fragmentation could occur.fragmentation could occur.

04/11/23 7Inter - Process Communication

Page 8: Inter Process Communication - New Copy

8

IPC – Unicast and IPC – Unicast and MulticastMulticast

In distributed computing, two or more processes engage in In distributed computing, two or more processes engage in IPCIPC using a using a protocolprotocol agreed upon by the agreed upon by the processesprocesses. A process may be a sender at . A process may be a sender at some points during a protocol, a receiver at other points. some points during a protocol, a receiver at other points.

When communication is from one process to a single other process, the IPC When communication is from one process to a single other process, the IPC

is said to be a is said to be a unicastunicast, e.g.,, e.g., Socket communicationSocket communication. When . When communication is from one process to a group of processes, the IPC is said communication is from one process to a group of processes, the IPC is said to be a to be a multicastmulticast, e.g., , e.g., Publish/Subscribe Message modelPublish/Subscribe Message model

04/11/23 Inter - Process Communication

Page 9: Inter Process Communication - New Copy

9

Unicast vs. MulticastUnicast vs. Multicast

P 2

P 1 P 1

P 2 P 3 P 4...

uni c as t m ul t i c as t

mm m m

04/11/23 Inter - Process Communication

Page 10: Inter Process Communication - New Copy

Interprocess Communications in Interprocess Communications in Distributed ComputingDistributed Computing

P r o c es s 1 P r o c es s 2

d a ta

s en d er r ec e iv er

04/11/23 10Inter - Process Communication

Page 11: Inter Process Communication - New Copy

11

Message PassingMessage Passing

Processes can communicate through shared areas of Processes can communicate through shared areas of memorymemory

Semaphores Semaphores - a synchronization abstraction- a synchronization abstraction

MonitorsMonitors - a higher level abstraction - a higher level abstraction

Inter-Process Inter-Process Message PassingMessage Passing much more useful for much more useful for information transferinformation transfer can also be used just for synchronizationcan also be used just for synchronization can co-exist with shared memory communicationcan co-exist with shared memory communication

Two basic operations : Two basic operations : sendsend(message) and (message) and receivereceive(message)(message) message contents can be anything mutually comprehensiblemessage contents can be anything mutually comprehensible

data, remote procedure calls, executable code etc.data, remote procedure calls, executable code etc. usually contains standard fieldsusually contains standard fields

destination process ID, sending process ID for any replydestination process ID, sending process ID for any reply message lengthmessage length data type, data etc.data type, data etc.

04/11/23 Inter - Process Communication

Page 12: Inter Process Communication - New Copy

12

Message PassingMessage Passing

Fixed-length messages:Fixed-length messages: simple to implement - can have pool of standard-sized bufferssimple to implement - can have pool of standard-sized buffers

low overheads and efficient for small lengthslow overheads and efficient for small lengths copying overheads if fixed length too longcopying overheads if fixed length too long

can be inconvenient for user processes with variable amount can be inconvenient for user processes with variable amount of data to passof data to pass

may need a sequence of messages to pass all the datamay need a sequence of messages to pass all the data long messages may be better passed another way e.g. FTPlong messages may be better passed another way e.g. FTP

copying probably involved, sometimes multiple copying into kernel copying probably involved, sometimes multiple copying into kernel and outand out

Variable-length messages:Variable-length messages: more difficult to implement - may need a more difficult to implement - may need a heapheap with with garbage garbage

collectioncollection more overheads and less efficient, memory fragmentationmore overheads and less efficient, memory fragmentation

more convenient for user processesmore convenient for user processes

04/11/23 Inter - Process Communication

Page 13: Inter Process Communication - New Copy

13

Message PassingMessage Passing

NamingNaming of links - of links - directdirect and and indirect indirect communicationscommunications DirectDirect::

each process wanting to communicate must each process wanting to communicate must explicitlyexplicitly name the name the recipient or sender of the communicationrecipient or sender of the communication

sendsend and and receivereceive primitives defined: primitives defined:

send ( P, message )send ( P, message ) : send a message to process P: send a message to process P

receive ( Q, message )receive ( Q, message ) : receive a message from process Q: receive a message from process Q a link established automatically between every pair of processes a link established automatically between every pair of processes

that want to communicatethat want to communicate processes only need to know each other’s identityprocesses only need to know each other’s identity

link is associated with exactly two processeslink is associated with exactly two processes link is usually bidirectional but can be unidirectionallink is usually bidirectional but can be unidirectional Process AProcess A Process BProcess B

while (TRUE) {while (TRUE) { while (TRUE) {while (TRUE) { produce an item produce an item receive ( A, item ) receive ( A, item ) send ( B, item ) send ( B, item ) consume item consume item}} }}

04/11/23 Inter - Process Communication

Page 14: Inter Process Communication - New Copy

Direct CommunicationDirect Communication

Must explicitly name the sender/receiver (“Must explicitly name the sender/receiver (“destdest” and ” and ““srcsrc”) processes”) processes

A buffer at the receiverA buffer at the receiver more than one process may send messages to the receivermore than one process may send messages to the receiver to receive from a specific sender, it requires searching to receive from a specific sender, it requires searching

through the whole bufferthrough the whole buffer

A buffer at each senderA buffer at each sender a sender may send messages to multiple receiversa sender may send messages to multiple receivers

04/11/23 14Inter - Process Communication

Page 15: Inter Process Communication - New Copy

Indirect CommunicationIndirect Communication

““destdest” and “” and “srcsrc” are a shared (unique) mailbox” are a shared (unique) mailbox

Use a mailbox to allow many-to-many Use a mailbox to allow many-to-many communicationcommunication requires open/close a mailbox before using itrequires open/close a mailbox before using it

Where should the buffer be?Where should the buffer be? a buffer and its mutex and conditions should be at the a buffer and its mutex and conditions should be at the

mailboxmailbox

04/11/23 15Inter - Process Communication

Page 16: Inter Process Communication - New Copy

16

SynchronizationSynchronization

SynchronisedSynchronised versus versus AsynchronousAsynchronous Communications Communications Synchronised:Synchronised:

sendsend and and receive receive operations operations blockingblocking sender is sender is suspendedsuspended until receiving process does a corresponding until receiving process does a corresponding readread receiver receiver suspendedsuspended until a message is until a message is sentsent for it to receive for it to receive

properties :properties : processes tightly synchronised - the processes tightly synchronised - the rendezvousrendezvous of Ada of Ada effective confirmation of receipt for sendereffective confirmation of receipt for sender at most one message can be outstanding for any process pairat most one message can be outstanding for any process pair

no buffer space problemsno buffer space problems easy to implement, with low overheadeasy to implement, with low overhead

disadvantages :disadvantages : sending process might want to continue after its sending process might want to continue after its send send operation operation

without waiting for confirmation of receiptwithout waiting for confirmation of receipt receiving process might want to do something else if no message is receiving process might want to do something else if no message is

waiting to be receivedwaiting to be received

04/11/23 Inter - Process Communication

Page 17: Inter Process Communication - New Copy

17

ASynchronizationASynchronization

Asynchronous Asynchronous :: sendsend and and receivereceive operations operations non-blockingnon-blocking

sender sender continuescontinues when no corresponding receive outstanding when no corresponding receive outstanding receiver receiver continuescontinues when no message has been sent when no message has been sent

properties :properties : messages need to be messages need to be bufferedbuffered until they are received until they are received

amount of buffer space to allocate can be problematicamount of buffer space to allocate can be problematic a process running amok could clog the system with messages if not carefula process running amok could clog the system with messages if not careful

often very convenient rather than be forced to waitoften very convenient rather than be forced to wait particularly for sendersparticularly for senders

can increase concurrencycan increase concurrency some awkward kernel decisions avoidedsome awkward kernel decisions avoided

e.g. whether to swap a waiting process out to disc or note.g. whether to swap a waiting process out to disc or not

receivers can receivers can pollpoll for messages for messages i.e. do a i.e. do a test-receivetest-receive every so often to see if any messages waiting every so often to see if any messages waiting interrupt and signal programming more difficultinterrupt and signal programming more difficult preferable alternative perhaps to have a preferable alternative perhaps to have a blockingblocking receive in a separate receive in a separate

threadthread

04/11/23 Inter - Process Communication

Page 18: Inter Process Communication - New Copy

18

Synchronous vs. Synchronous vs. Asynchronous Asynchronous

CommunicationCommunication

The IPC operations may provide the synchronization The IPC operations may provide the synchronization necessary using blocking. A blocking operation issued by necessary using blocking. A blocking operation issued by a process will block further processing of the process until a process will block further processing of the process until the operation is fulfilled.the operation is fulfilled.

Alternatively, IPC operations may be asynchronous or Alternatively, IPC operations may be asynchronous or nonblocking. An asynchronous operation issued by a nonblocking. An asynchronous operation issued by a process will not block further processing of the process. process will not block further processing of the process. Instead, the process is free to proceed with its processing, Instead, the process is free to proceed with its processing, and may optionally be notified by the system when the and may optionally be notified by the system when the operation is fulfilled.operation is fulfilled.

04/11/23 Inter - Process Communication

Page 19: Inter Process Communication - New Copy

19

Synchronous send and Synchronous send and receivereceive

pr o c e s s 1r unni ng o n ho s t 1

b lo c k in g s en d s ta r ts

b lo c k in g s en d r e tu r n s

b lo c k in g r ec e iv e s ta r ts

b lo c k in g r ec e iv e en d s

ex ec u tio n f lo w

s u s p en d ed p er io d

Sync hr o no us Se nd and R e c e i ve

an o p er a tio n

ac k n o w led g em en t o f d a ta r ec e iv edp r o v id ed b y th e I P C f ac ility

pr o c e s s 2r unni ng o n ho s t 2

Client ServerSender Receiver

Event Diagram

04/11/23 Inter - Process Communication

Page 20: Inter Process Communication - New Copy

20

Asynchronous send and Asynchronous send and synchronous receivesynchronous receive

P r o c e s s 1

P r o c e s s 2

b lo c k in g r ec e iv e s ta r ts

b lo c k in g r ec e iv e r e tu r n s

ex ec u tio n f lo w

s u s p en d ed p er io d

As ync hr o no us Se nd and Sync hr o no us R e c e i ve

n o n b lo c k in g s en d

o p er a tio n

Client ServerSender Receiver

04/11/23 Inter - Process Communication

Page 21: Inter Process Communication - New Copy

21

Synchronous send and Async. Synchronous send and Async. Receive - 1Receive - 1

P r o c e s s 1

P r o c e s s 2

n o n b lo c k in g r ec e iv e is s u ed

ex ec u tio n f lo w

s u s p en d ed p er io d

Sync hr o no us Se nd and As ync hr o no us R e c e i ve

b lo c k in g s en d is s u ed

S ce n a rio A

t r an s p ar en t ac k n o w led g em en tp r o v id ed b y th e I P C f ac ility

Data from P1 was received by P2 before issuing a non-blocking receive op in P2

04/11/23 Inter - Process Communication

Page 22: Inter Process Communication - New Copy

22

Synchronous send and Async. Synchronous send and Async. Receive - 2Receive - 2

in d ef in iteb lo c k in g

P r o c e s s 1

P r o c e s s 2

n o n b lo c k in g r ec e iv e is s u edan d r e tu r n ed im m ed ia te ly

ex ec u tio n f lo w

s u s p en d ed p er io d

Sync hr o no us Se nd and As ync hr o no us R e c e i ve

b lo c k in g s en d is s u ed

S ce n a rio B

P r o c e s s 1

P r o c e s s 2

Data from P1 arrived to P2 after P2 issued a non-blocking receive op

04/11/23 Inter - Process Communication

Page 23: Inter Process Communication - New Copy

23

Synchronous send and Async. Synchronous send and Async. Receive - 3Receive - 3

P r o c e s s 1

P r o c e s s 2

n o n b lo c k in g r ec e iv e is s u edan d r e tu rn ed im m ed ia te ly

ex ec u tio n f lo w

s u s p en d ed p er io d

Sync hr o no us Se nd and As ync hr o no us R e c e i ve

b lo c k in g s en d is s u ed

S ce n a rio C

p ro c es s is n o tif iedo f th e a r r iv a l o fd ata

tr an s p ar en t ac k n o w led g em en tp ro v id ed b y th e I P C f ac ility

Data from P1 arrived to P2 before P2 issues a non-blocking receive op. P2 is notified of the arrival of data

04/11/23 Inter - Process Communication

Page 24: Inter Process Communication - New Copy

24

Asynchronous send and Asynchronous send and Asynchronous receive Asynchronous receive

P r o c e s s 1

P r o c e s s 2

n o n b lo c k in g r ec e iv e is s u edan d r e tu r n ed im m ed ia te ly

ex ec u tio n f lo w

s u s p en d ed p er io d

As ync hr o no us Se nd and As ync hr o no us R e c e i ve

b lo c k in g s en d is s u ed

S ce n a rio C

p r o c es s is n o tif iedo f th e a r r iv a l o fd a ta

Does P1 need an acknowledgement from P2?04/11/23 Inter - Process Communication

Page 25: Inter Process Communication - New Copy

25

Event diagramEvent diagramPro ce s s A

Pro ce s s B

in te rp r o c es s c o m m u n ic a tio n

ex ec u tio n f lo w

p ro c es s b lo c k ed

E ve nt di ag r am fo r a pr o to c o l

r eq u es t 1

r es p o n s e 1

r es p o n s e2

r eq u es t 2

t im e

Synchronous send and receive

04/11/23 Inter - Process Communication

Page 26: Inter Process Communication - New Copy

Synchronization and BufferingSynchronization and Buffering

These are the three typical combinations.These are the three typical combinations.

1) Blocking Send, Blocking Receive1) Blocking Send, Blocking Receive

Both receiver and sender are blocked until the message is Both receiver and sender are blocked until the message is delivered. (provides tight synchronization between processes)delivered. (provides tight synchronization between processes)

2) Non Blocking Send, Blocking Receive2) Non Blocking Send, Blocking Receive

Sender can continue the execution after sending a message, Sender can continue the execution after sending a message, the receiver is blocked until message arrives. (most useful the receiver is blocked until message arrives. (most useful combination)combination)

3) Non Blocking Send, Non Blocking Receive3) Non Blocking Send, Non Blocking Receive

Neither party waits.Neither party waits.

04/11/23 26Inter - Process Communication

Page 27: Inter Process Communication - New Copy

04/11/23Inter - Process

Communication

Interprocess Interprocess CommunicationCommunication

Message PassingMessage PassingMany possible naming schemes. One is direct naming:Many possible naming schemes. One is direct naming: send(process_id, message)send(process_id, message)

receive(process_id, buffer)receive(process_id, buffer)

Example

process P1: process P2: declare x integer declare y integer

. . send(P2, x) receive(P1, y) . .end process end process

Effect of this communication is

y := x | \

local var local var of P2 of P1 27

Page 28: Inter Process Communication - New Copy

04/11/23Inter - Process

Communication

BufferingBuffering A buffer, with bounded-buffer synchronization, can be A buffer, with bounded-buffer synchronization, can be

associated with each pair of communicating processes.associated with each pair of communicating processes. A “zero-capacity” buffer means processes must “handshake” A “zero-capacity” buffer means processes must “handshake”

in order to communicate.in order to communicate. A buffer can reside in memory of receiving process or in OS A buffer can reside in memory of receiving process or in OS

addres space.addres space. Examples:Examples: no buffer neededno buffer needed P1: send(P2, x) P2: receive(P1, x)P1: send(P2, x) P2: receive(P1, x)

receive(P2, y) send(P1, y) receive(P2, y) send(P1, y) buffer neededbuffer needed P1: send(P2, x) P2: send(P1, x)P1: send(P2, x) P2: send(P1, x)

receive(P2, y) receive(P1, y) receive(P2, y) receive(P1, y)

28

Page 29: Inter Process Communication - New Copy

The Producer Consumer The Producer Consumer Problem Problem

The producer-consumer problem illustrates The producer-consumer problem illustrates the need for synchronization in systems the need for synchronization in systems where many processes share a resource. In where many processes share a resource. In the problem, two processes share a fixed-the problem, two processes share a fixed-size buffer. One process produces size buffer. One process produces information and puts it in the buffer, while information and puts it in the buffer, while the other process consumes information the other process consumes information from the buffer. from the buffer.

These processes do not take turns accessing These processes do not take turns accessing the buffer, they both work concurrently. the buffer, they both work concurrently. Herein lies the problem. What happens if Herein lies the problem. What happens if the producer tries to put an item into a full the producer tries to put an item into a full buffer? What happens if the consumer tries buffer? What happens if the consumer tries to take an item from an empty buffer? to take an item from an empty buffer?

04/11/23 29Inter - Process Communication

Page 30: Inter Process Communication - New Copy

ProducerProducer

04/11/23 30Inter - Process Communication

Producer

Make New Widget

If buffer is full, go to sleep

Put widget in buffer

If buffer was empty, wake consumer

Page 31: Inter Process Communication - New Copy

ConsumerConsumer

04/11/23 31Inter - Process Communication

Consumer:

1.If buffer is empty, go to sleep

2.Take widget from buffer

3.If buffer was full, wake producer

4.Consume the widget

Page 32: Inter Process Communication - New Copy

SOCKETSSOCKETS A Socket is a communication end point of a communication link managed A Socket is a communication end point of a communication link managed

by the transport services.by the transport services. It is not feasible to name a communication channel across different It is not feasible to name a communication channel across different

domains.domains. A Communication channel can be visualized as a pair of 2 communication A Communication channel can be visualized as a pair of 2 communication

endpoints.endpoints. Sockets have become most popular message passing API.Sockets have become most popular message passing API. Most recent version of the Windows Socket which is developed by WinSock Most recent version of the Windows Socket which is developed by WinSock

Standard Group which has 32 companies (including Microsoft) also Standard Group which has 32 companies (including Microsoft) also includes a SSL (Secure Socket Layer) in the specification.includes a SSL (Secure Socket Layer) in the specification.

The goal of SSL is to provide:The goal of SSL is to provide: Privacy Privacy in socket communication by using symmetric cryptographic data in socket communication by using symmetric cryptographic data

encryption.encryption. IntegrityIntegrity in socket data by using message integrity check. in socket data by using message integrity check. Authenticity Authenticity of servers and clients by using asymmetric public key of servers and clients by using asymmetric public key

cryptography.cryptography.

04/11/23 32Inter - Process Communication

Page 33: Inter Process Communication - New Copy

SummarySummary

In today’s session we have learned toIn today’s session we have learned to:: Inter-process CommunicationInter-process Communication Direct Communication & Indirect CommunicationDirect Communication & Indirect Communication Unicast – MulticastUnicast – Multicast SynchronousSynchronous Asynchronous & SynchronousAsynchronous & Synchronous Message PassingMessage Passing BufferingBuffering SocketsSockets

04/11/23 33Inter - Process Communication

Page 34: Inter Process Communication - New Copy

ReferencesReferences Operating System ConceptsOperating System Concepts, Silberschatz, Galvin and Gange 2002, Silberschatz, Galvin and Gange 2002 Sameer Ajmani ``Automatic Software Upgrades for Sameer Ajmani ``Automatic Software Upgrades for DistributedDistributed SystemsSystems'' Ph.D. '' Ph.D.

dissertation, MIT, Sep. 2004dissertation, MIT, Sep. 2004 Message passing information from The University of Edinburgh Message passing information from The University of Edinburgh MPI-2: standards beyond the message-passing modelMPI-2: standards beyond the message-passing model

Lusk, E.;Lusk, E.;Massively Parallel Programming Models, 1997. Proceedings. Third Working Massively Parallel Programming Models, 1997. Proceedings. Third Working Conference onConference on12-14 Nov. 1997 Page(s):43 - 49 12-14 Nov. 1997 Page(s):43 - 49 Digital Object Identifier 10.1109/MPPM.1997.715960 Digital Object Identifier 10.1109/MPPM.1997.715960

AA. . N. Bessani, M. Correia, J. S. Fraga, and L. C. Lung. Sharing memory between N. Bessani, M. Correia, J. S. Fraga, and L. C. Lung. Sharing memory between Byzantine processes using policy-enforced tuple spaces. In Proceedings of the 26th Byzantine processes using policy-enforced tuple spaces. In Proceedings of the 26th International Conference on International Conference on DistributedDistributed Computing Computing SystemsSystems, July 2006, July 2006

A multithreaded message-passing system for high performance distributed A multithreaded message-passing system for high performance distributed computing applicationscomputing applicationsPark, S.-Y.; Lee, J.; Hariri, S.;Park, S.-Y.; Lee, J.; Hariri, S.;Distributed Computing Systems, 1998. Proceedings. 18th International Conference Distributed Computing Systems, 1998. Proceedings. 18th International Conference onon26-29 May 1998 Page(s):258 - 265 26-29 May 1998 Page(s):258 - 265 Digital Object Identifier 10.1109/ICDCS.1998.679521Digital Object Identifier 10.1109/ICDCS.1998.679521

A message passing standard for MPP and workstations J. J. Dongarra, S. W. Otto, M. A message passing standard for MPP and workstations J. J. Dongarra, S. W. Otto, M. Snir, and D. Walker, CACM, 39(7), 1996, pp. 84-90 Snir, and D. Walker, CACM, 39(7), 1996, pp. 84-90

N. Alon, M. Merrit, O. Reingold, G. Taubenfeld, and R. Wright. Tight bounds for N. Alon, M. Merrit, O. Reingold, G. Taubenfeld, and R. Wright. Tight bounds for shared memory shared memory systems systems acessed by Byzantine processes. acessed by Byzantine processes. DistributedDistributed Computing, Computing, 18(2):99–109, 200518(2):99–109, 2005

04/11/23 34Inter - Process Communication

Page 35: Inter Process Communication - New Copy

ReferencesReferences Lessons for massively parallel applications on message passing computersLessons for massively parallel applications on message passing computers

Fox, G.C.;Fox, G.C.;Compcon Spring '92. Thirty-Seventh IEEE Computer Society International Compcon Spring '92. Thirty-Seventh IEEE Computer Society International Conference, Digest of Papers.Conference, Digest of Papers.24-28 Feb. 1992 Page(s):103 - 114 24-28 Feb. 1992 Page(s):103 - 114 Digital Object Identifier 10.1109/CMPCON.1992.186695Digital Object Identifier 10.1109/CMPCON.1992.186695

An analysis of message passing systems for distributed memory computersAn analysis of message passing systems for distributed memory computersClematis, A.; Tavani, O.;Clematis, A.; Tavani, O.;Parallel and Distributed Processing, 1993. Proceedings. Euromicro Workshop onParallel and Distributed Processing, 1993. Proceedings. Euromicro Workshop on27-29 Jan. 1993 Page(s):299 - 306 27-29 Jan. 1993 Page(s):299 - 306 Digital Object Identifier 10.1109/EMPDP.1993.336388Digital Object Identifier 10.1109/EMPDP.1993.336388

An analysis of message passing systems for distributed memory computersAn analysis of message passing systems for distributed memory computersClematis, A.; Tavani, O.;Clematis, A.; Tavani, O.;Parallel and Distributed Processing, 1993. Proceedings. Euromicro Workshop onParallel and Distributed Processing, 1993. Proceedings. Euromicro Workshop on27-29 Jan. 1993 Page(s):299 - 306 27-29 Jan. 1993 Page(s):299 - 306 Digital Object Identifier 10.1109/EMPDP.1993.336388Digital Object Identifier 10.1109/EMPDP.1993.336388

GoogleGoogle

04/11/23 35Inter - Process Communication

Page 36: Inter Process Communication - New Copy

04/11/23 36Inter - Process Communication


Recommended