Shared Memory Mediation for Secure Isolated Process Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing shared memory communication methods in virtual machines lead to security vulnerabilities and inefficiencies due to uncontrolled access, preventing same-page merging and increasing memory usage, which can interfere with other beneficial technologies.

Innovation Solution

Implement a messenger process, such as a virtual machine monitor, to manage memory access and communication between isolated memory spaces, allowing partial or complete isolation of memory areas while enabling shared memory communication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If processes use shared memory for communication, then communication efficiency is improved, but security vulnerabilities increase due to uncontrolled access

Engineering Contradiction:
Improvecommunication efficiencyVSAvoidsecurity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a memory management unit (MMU) as an intermediary between processes and physical memory. The MMU translates virtual memory addresses to physical addresses and enforces access control policies, allowing processes to communicate efficiently through shared memory while the MMU ensures security by controlling and monitoring all memory access operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent divides the memory address space into separate virtual memory spaces for different processes. Each process operates within its own isolated virtual memory space, and the MMU manages the segmentation by translating virtual addresses to physical addresses according to defined access rights, enabling both isolation for security and controlled sharing for communication.

Inventive Principle:
Principle #1Segmentation

2Speed

If processes have direct access to shared memory, then communication speed is improved, but memory usage increases preventing same-page merging

Engineering Contradiction:
Improvecommunication speedVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent implements a copying mechanism where the MMU creates and maintains virtual copies of memory pages for different processes. When a process needs to access shared data, the MMU provides access to appropriate virtual copies without requiring direct physical memory sharing, enabling fast access while allowing the underlying physical memory to be consolidated and merged when not actively shared.

Inventive Principle:
Principle #26Copying

3Reliability

If memory isolation is implemented between processes, then security is improved, but communication complexity increases

Engineering Contradiction:
ImprovesecurityVSAvoidcommunication complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent makes the MMU a universal component that handles multiple functions: address translation, access control enforcement, and communication facilitation. By consolidating these functions in a single hardware component, the system achieves strong memory isolation for security while the MMU automatically manages the complexity of inter-process communication through standardized virtual memory operations.

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

Data Source

PatentUS12417019B1Isolation of processes using shared memory for communication
Publication Date: 2025.09.16 RED HAT LLC
  • US12417019B1 patent drawing
  • US12417019B1 patent drawing
  • US12417019B1 patent drawing

AI summary

Systems and methods are provided. An example method can include receiving, from a first process, a first request for first data to be written to a first memory location by a second process. The example method can include providing a second request for the first process to write data to a second memory location, wherein the second process has write access to the second memory location and not the first memory location. The example method can include receiving a first notification indicating that the second process has written the first data to the second memory location. The example method can include transferring the first data from the second memory location to the first memory location. The example method can include providing a second notification to the first process indicating that the first data has been written to the first memory location.