
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Difference between Pipes and Message Queues
Unix Pipes
Unix Pipes are used in inter-process communication. A pipe as name suggests provides a unidirectional flow of information. Data flows from one end to another.
Message Queues
Message queue allows to share messages by a sender process to another process (es). A message queue is implemented as a linked list of messages and stored within kernel. Each message has a unique message queue identifier. The kernel keeps a record of message queues present in the system.
The following are some of the important differences between Unix Pipes and Message Queues.
Sr. No. | Key | Pipe | Message Queue |
---|---|---|---|
1 | Concept | The pipe is the Unix IPC form to provide a flow of information in one direction. | Message Queue is a System VIPC form to store a list of messages. |
2 | Creation | A pipe can be created using pipe() function which returns two file descriptors, one is for reading and another is for writing. | A message queue is created using msgget() function which returns a queue identifier. |
3 | Direction | The pipe is unidirectional. | A message queue is bidirectional. |
4 | Data Fetching | Data can be fetched in FIFO, First In First Out manner. | Data can be fetched in any order. |
5 | Priorities | Priorities are not present in pipes. | A message can have a priority by attaching a priority number to type(s) of the message(s). |
6 | Receiver | For a pipe to function, sender and receiver processes should be present to wait for messages to be written and read in a pipe. | In a message queue, a writer process can write a message and exit. A reader process can read a message later. |
7 | Persistence | A pipe is deleted from the system if there is no linked receiver/sender process is present. | A message queue remains active in the system until explicitly deleted by some process. |
8 | Message Size | A pipe message size can be up to 4096 Bytes. | A message queue message size can be up to 8192 Bytes. |
Advertisements