Atomic Process Status Check for Reliable Message Delivery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computer systems, message delivery from a sender process to a receiver process is challenging when the receiver process is not present in main memory, leading to asynchronous issues and incorrect interpretations of state checks, resulting in message loss and processing cycle wastage due to the need for complex message buffers.
Innovation Solution
An atomic check protocol is implemented to determine the status of both the receiver process and its parent, ensuring that their states remain unchanged during the check, allowing for reliable message delivery without the use of message buffers by subscribing to the receiver's lifecycle transitions and using the parent process to notify the sender of the receiver's availability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If message buffers are implemented to handle receiver process unavailability, then message delivery reliability is improved, but device complexity increases
Solution Approach 1:
The patent extracts the message buffering functionality from the sender process and relocates it to the operating system kernel. The kernel maintains a message queue associated with the receiver process, allowing messages to be stored system-wide rather than requiring each application to implement its own buffering logic. This reduces application complexity while maintaining reliability.
Solution Approach 2:
The operating system kernel acts as an intermediary between the sender and receiver processes. When the receiver is unavailable, the kernel intercepts messages and stores them in a protected queue, then delivers them when the receiver becomes available. This intermediary layer ensures reliable delivery without requiring complex buffering logic in the sender process.
2Measurement precision
If the sender process waits in a loop for receiver availability, then message delivery accuracy is improved, but loss of time increases due to processing cycle wastage
Solution Approach 1:
The sender process performs a preliminary check of the receiver's availability status before attempting message delivery. The operating system provides the sender with information about the receiver's state (available, sleeping, terminated) in advance, allowing the sender to prepare appropriately without entering a continuous wait loop. This preliminary information reduces unnecessary processing cycles.
Solution Approach 2:
The operating system provides feedback to the sender process about the receiver's availability status. Instead of the sender continuously polling, the system notifies the sender when the receiver becomes available or when delivery should be attempted. This feedback mechanism eliminates wasteful continuous checking while maintaining accurate status information.
3Ease of operation
If continuous status checking is performed without atomic operations, then ease of operation is improved, but reliability deteriorates due to asynchronous issues and incorrect state interpretations
Solution Approach 1:
The patent merges multiple status checks (receiver availability, parent process status, message queue state) into a single atomic operation performed by the operating system kernel. Instead of the sender process performing separate checks that could return inconsistent results, the kernel atomically evaluates all relevant conditions and returns a consistent state determination. This maintains simplicity for the sender while ensuring reliability through atomic execution.
Solution Approach 2:
The operating system kernel serves as an intermediary that performs atomic status checking on behalf of the sender process. The kernel's atomic operations prevent race conditions and ensure that status information is consistent across all checks. This intermediary approach maintains ease of operation for the sender while guaranteeing reliability through the kernel's atomic execution semantics.
Data Source
AI summary
The present invention relates to a method for message delivery from a sender process to a receiver process within a computer system, comprising performing an atomic check for the receiver process and a parent of the receiver process, returning a first status of the receiver process and a second status of the parent of the receiver process based on the atomic check, and delivering the message according to the first status and the second status, wherein the first status and the second status stay unchanged during the atomic check.


