Template:BIPS/Main contents: Difference between revisions
Line 22: | Line 22: | ||
==What is Buffer Interprocess Sharing?== | ==What is Buffer Interprocess Sharing?== | ||
Buffer Interprocess Sharing, or BIPS, is | Buffer Interprocess Sharing, or BIPS, is the '''RidgeRun's optimized IPC library''' fully compatible with '''C++''' and '''Python'''. In this case, BIPS allows sharing data buffers between two or more processes with zero copy. They can be classified as Producers or Consumers according to their role in the system. The producer is responsible for generating and filling in the information on the buffers that the Consumers will read. The synchronization between these entities is handled by the Signaler, which ensures that all operations are concurrent-safe. This means that Consumers can only read buffers that are fully written by Producers and that Producers can only write buffers already read by Producers. These buffers are created and managed by a shared structure known as the Buffer Pool, which has a fixed capacity. The Signaler handles the synchronization between the BP and the Consumers/Producers. | ||
<br> | <br> |
Revision as of 16:10, 14 December 2022
Buffer Interprocess Sharing! Buffer Interprocess Sharing. |
| |||||||||||||||||
Buffer Interprocess Sharing | ||||||||||||||||||
This wiki is a user guide for our Buffer Interprocess Sharing project. What is Buffer Interprocess Sharing?Buffer Interprocess Sharing, or BIPS, is the RidgeRun's optimized IPC library fully compatible with C++ and Python. In this case, BIPS allows sharing data buffers between two or more processes with zero copy. They can be classified as Producers or Consumers according to their role in the system. The producer is responsible for generating and filling in the information on the buffers that the Consumers will read. The synchronization between these entities is handled by the Signaler, which ensures that all operations are concurrent-safe. This means that Consumers can only read buffers that are fully written by Producers and that Producers can only write buffers already read by Producers. These buffers are created and managed by a shared structure known as the Buffer Pool, which has a fixed capacity. The Signaler handles the synchronization between the BP and the Consumers/Producers.
For testing purposes, RidgeRun offers an evaluation version. Please refer to Contact Us. Supported BackendsBIPS is used to communicate processes that need to share information, which helps optimize memory usage and application performance. BIPS supports:
The backend is responsible for allocating the pool of buffers with a fixed size, which will be known before processing. This is to avoid expensive allocation and free operations at runtime and to avoid memory fragmentation. Shared Memory is a standard way to communicate data between processes (IPC - Inter Process Communication, see the diagram below). In this methodology, data is allocated in a commonplace. So, when any process updates some value in the shared zone, the other processes can see the updated value immediately. BIPS shared memory implementation is based on the POSIX Shared Memory (shm) to offer great compatibility.
Tested Platforms
| ||||||||||||||||||
RidgeRun Support | ||||||||||||||||||
RidgeRun provides support for embedded Linux development for NVIDIA, Xilinx, Freescale/NXP, and Texas Instruments platforms, specializing in multimedia applications. This page contains detailed guides and information on how to get started with Buffer Interprocess Sharing and start using its full capabilities. To get up-to-speed with your Buffer Interprocess Sharing, start by clicking below:
|