Interprocess Communication Pipe Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing interprocess communication mechanisms in operating systems face security and reliability issues with shared memory and inefficiencies with the pipe approach, which involves data copying, reducing performance.

Innovation Solution

The system employs a method that recognizes asynchronous write and read requests to a pipe, using a Direct Memory Access (DMA) engine or CPU-based mechanisms to transfer data efficiently, selecting the most efficient mechanism based on availability, load, and data size, thereby avoiding unnecessary copying and enhancing security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If shared memory is used for interprocess communication, then data transfer efficiency is improved, but security and reliability deteriorate due to potential memory alteration by malicious or malfunctioning processes

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidsecurity and reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a pipe as an intermediary mechanism between sending and receiving processes. The pipe acts as a buffered channel that receives data from the sending process and delivers it to the receiving process, preventing direct memory access between processes. This mediator structure maintains data transfer efficiency while eliminating the security risks associated with shared memory, as the pipe buffer isolates process memory spaces.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If pipe approach is used for interprocess communication, then security and reliability are improved, but data transfer efficiency deteriorates due to required data copying

Engineering Contradiction:
Improvesecurity and reliabilityVSAvoiddata transfer efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic selection between different data transfer mechanisms (pipe-based copying vs. shared memory) based on real-time system conditions. The system monitors factors such as process trust levels, memory availability, and performance requirements to dynamically switch between secure but slower pipe copying and efficient but riskier shared memory access. This dynamic adaptation allows the system to optimize data transfer efficiency while maintaining security based on current operational context.

Inventive Principle:
Principle #15Dynamics

3Productivity

If dynamic mechanism selection is implemented, then overall system efficiency is improved, but device complexity increases due to multiple IPC mechanisms and selection logic

Engineering Contradiction:
Improveoverall system efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates a universal interprocess communication framework that handles multiple communication scenarios through a single unified interface. The system provides a common API that abstracts the underlying complexity of multiple IPC mechanisms (pipes, shared memory, messages) behind a consistent interface. This multi-functional approach allows the system to select and switch between different mechanisms automatically while presenting a simplified interface to applications, thereby reducing perceived complexity despite the underlying multi-mechanism architecture.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9075795B2Interprocess communication
Publication Date: 2015.07.07 RED HAT ISRAEL
  • US9075795B2 patent drawing
  • US9075795B2 patent drawing
  • US9075795B2 patent drawing

AI summary

A system and methods for sending data from one process to another process (i.e., interprocess communication) are disclosed. In accordance with one embodiment, an operating system recognizes a request by a sending process to perform an asynchronous write to a pipe, and a request by a receiving process to perform an asynchronous read from the pipe, occurring in either order. The operating system then selects one of a plurality of mechanisms for providing the data to the receiving process.