Kernel-Managed Shared Buffer Management via Global Identifiers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computing systems, efficiently managing shared memory resources among concurrent processes is challenging due to the need for compatible memory APIs and buffering schemes, leading to data reproduction and access conflicts.
Innovation Solution
A kernel-managed system that creates and controls access to shared buffers using system-wide global unique identifiers, allowing processes to request and share buffers with specified attributes, enabling interoperability among multiple applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If data is transferred between processes using incompatible APIs and buffering schemes, then data can be reproduced in the receiving location, but data reproduction overhead and access conflicts increase
Solution Approach 1:
The patent introduces a buffer identifier as an intermediary mechanism that mediates data transfer between processes with incompatible APIs. The buffer identifier serves as a universal reference that both sending and receiving processes can use to access shared buffer data without requiring compatible buffering schemes, thereby eliminating data reproduction overhead while maintaining compatibility.
Solution Approach 2:
Instead of copying data between incompatible buffer schemes, the patent implements a reference-based approach where the buffer identifier acts as a copyable reference. Multiple processes can hold references to the same buffer through identifier passing, avoiding redundant data copying while ensuring all processes access the same data source.
2Quantity of substance
If processes share finite physical memory, then memory resources are utilized efficiently, but access conflicts and management complexity increase
Solution Approach 1:
The patent segments physical memory into distinct buffers that can be independently managed and referenced. Each buffer is identified by a unique buffer identifier, allowing the memory management system to track and control access to specific memory regions without managing the entire physical memory space as a single complex resource.
Solution Approach 2:
The buffer identifier acts as an intermediary layer between processes and physical memory. Instead of processes directly managing physical memory addresses, they use buffer identifiers to reference memory regions, simplifying memory management while enabling efficient sharing of finite physical memory resources across multiple processes.
3Ease of operation
If virtual memory translation is used to avoid address conflicts, then processes can address virtual memory without regard to physical addresses, but translation overhead and access time increase
Solution Approach 1:
The patent performs preliminary action by establishing buffer identifiers and mapping them to physical buffer locations before data transfer operations. This pre-establishment of references allows processes to directly access shared buffers using the pre-computed buffer identifier without requiring runtime virtual memory translation, thereby maintaining addressing simplicity while eliminating translation overhead.
Data Source
AI summary
Accessing a shared buffer can include receiving an identifier associated with a buffer from a sending process, requesting one or more attributes corresponding to the buffer based on the received identifier, mapping at least a first page of the buffer in accordance with the one or more requested attributes, and accessing an item of data stored in the buffer by the sending process. The identifier also can comprise a unique identifier. Further, the identifier can be passed to one or more other processes. Additionally, the one or more requested attributes can include at least one of a pointer to a memory location and a property describing the buffer.


