Event Port Alert Mechanism for Thread Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer operating systems face challenges in synchronizing multiple threads or processes efficiently, particularly when competing for resources, as conventional methods like semaphores can lead to performance degradation and synchronization issues due to user locks and limited data transfer.

Innovation Solution

The implementation of alert events and event ports allows for asynchronous detection and notification of alert states, enabling almost synchronous triggering of threads or processes, with data transfer and avoiding synchronization problems by using an event queue and request queue system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If semaphores are used for synchronization, then thread/process synchronization is achieved, but performance degradation occurs due to user locks and limited data transfer

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces an event port as an intermediary mechanism between threads/processes. Instead of direct semaphore-based synchronization, the system uses event ports to broadcast alert events to multiple waiting threads simultaneously. This intermediary approach eliminates the need for user locks and enables efficient data transfer during synchronization, resolving the performance degradation issue while maintaining synchronization reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical semaphore system with an event-driven asynchronous I/O mechanism. By substituting the traditional mechanical locking and waiting approach with asynchronous event notification through event ports, the system achieves faster synchronization without the performance penalties of user locks and limited data transfer inherent in semaphore-based systems.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If semaphores are used for synchronization, then thread/process synchronization is achieved, but synchronization problems arise due to user locks

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidsynchronization operation smoothness
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The event port serves as an intermediary that mediates between producing and consuming threads. It broadcasts alert events to all waiting threads simultaneously, eliminating the need for user locks and preventing synchronization problems. The event port handles the coordination automatically, making synchronization operations smoother and more reliable.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If waiting processes use semaphores, then synchronization is achieved, but performance degradation occurs because waiting processes cannot perform tasks

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidtime lost during waiting
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by allowing threads to wait on event ports in a blocked state without performing useless polling or locking operations. When an alert event occurs, the event port simultaneously notifies all waiting threads, enabling them to resume execution immediately. This eliminates the time loss associated with continuous waiting and checking in semaphore-based systems.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By replacing semaphore-based waiting with asynchronous event notification through event ports, the system eliminates the need for waiting processes to continuously monitor or poll. Threads can block efficiently and resume immediately upon event notification, significantly reducing time loss during waiting periods while maintaining synchronization reliability.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS7380248B1Queue alerts
Publication Date: 2008.05.27 ORACLE AMERICAN INC
  • US7380248B1 patent drawing
  • US7380248B1 patent drawing
  • US7380248B1 patent drawing

AI summary

Methods and apparatus, including computer program products, implementing and using techniques for alerting one or more computer software application threads waiting to retrieve events from an event port. An alert event generated by a computer software application is received at the event port. A state of the event port is changed to an alert state, if the event port is not already in an alert state, in response to receiving the alert event. One or more of the computer software application threads is notified about the alert state of the event port.