written 7.0 years ago by |
Issues/Failures in Message Passing:
A message is a block of information formatted by a sending process in such a manner that it is meaningful to the receiving process.
It consists of fixed length header and a variable size collection of typed data objects.
Address: Unique address of sender and receiver.
Sequence No. For indentifying lost messages and duplicate messages in case of system failure.
Structural Information:
Type: It specifies whether actual data or pointer to
No. of Bytes: Length of variable size message.
Design Issues in IPC:
1] Who is sender?
2] Who is receiver?
3] Is there one receiver or many?
4] Message Delivery Granted?
5] What should be done is receiver is not ready to accept the msg?
6] Does sender need to wait for reply?
These issues are addressed by semantics of set of communication primitives provided by IPC Protocol.
In blocking send primitive, if receiving process crashed or msg is lost due to communication, timeout is used.
In non-blocking, receive how receiving process knows msg has arrived in message buffer by 2 used:
1) Polling: Test primitives to poll kernel periodically
2) Interrupt:
Software Interrupt is used to notify receiving process.
This mtd is highly efficient and allows maximum parallelism.
If blocking, then synchronous communication and if non-blocking then asynchronous communication.