Event Port Retrieval with Priority Queue for System Call Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer operating systems lack efficient mechanisms for retrieving a specified number of events from an event port, leading to inefficiencies due to the inability to specify the number of events desired and the inability to share event queues across processes, resulting in significant overhead processing costs.

Innovation Solution

A method and apparatus that allow a computer software application to request a specified number of events from an event port, with available events being retrieved if sufficient, and requests for fewer events being placed in a priority-ordered request queue for later processing, enabling event queue sharing across processes and reducing system call frequency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If standard poll(2) function is used to retrieve events, then events can be identified, but the application cannot specify the number of events desired and must make multiple system calls

Engineering Contradiction:
Improveability to specify number of eventsVSAvoidsystem call frequency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent applies preliminary action by allowing applications to pre-specify the number of events they wish to retrieve in a single system call. The system prepares and holds multiple events in the event queue, ready to be returned together, rather than requiring multiple sequential system calls to retrieve the same number of events.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent merges multiple event retrieval operations into a single system call. Instead of requiring separate system calls for each event or small batches, the system combines multiple events into one retrieval operation, reducing system call overhead and improving efficiency.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If separate event queues are created for each process, then event isolation is maintained, but significant overhead processing costs occur

Engineering Contradiction:
Improveevent isolationVSAvoidnumber of event queues
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements universality by creating a shared event queue that can be accessed by multiple processes simultaneously. This single event queue serves multiple processes, eliminating the need for separate queues for each process while maintaining event isolation through process-specific event ports and descriptors.

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

Solution Approach 2:

The patent uses event ports as intermediaries between processes and the shared event queue. Each process has its own event port that provides a controlled interface to the shared queue, acting as a mediator that maintains isolation while enabling shared access. This allows multiple processes to retrieve events from the same queue without direct interference.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If applications make frequent system calls to retrieve events, then events are retrieved promptly, but processing overhead increases significantly

Engineering Contradiction:
Improveevent retrieval speedVSAvoidprocessing overhead
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent enables continuity of useful action by allowing applications to retrieve multiple events in a single continuous operation. Instead of interrupting the application with frequent system calls, the system maintains a ready supply of events in the queue, allowing the application to continuously process events without repeated context switches or system call overhead.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS7624396B1Retrieving events from a queue
Publication Date: 2009.11.24 ORACLE AMERICAN INC
  • US7624396B1 patent drawing
  • US7624396B1 patent drawing
  • US7624396B1 patent drawing

AI summary

Methods and apparatus, including computer program products, implementing and using techniques for retrieving events from an event port. A request to retrieve a specified number of events from an event port to which completed events are posted by one or more event sources is received from a computer software application. It is determined whether the specified number of events is available at the event port. If the specified number of events is available at the event port, the specified number of events is retrieved from the event port and the retrieved events are returned to the requesting computer software application. If fewer events than the specified number of events are available at the event port, the request is placed in a request queue with requests to be processed at a later time and the request queue is ordered based on priorities of the requests in the request queue.