Kernel I/O Queue System for Reducing Asynchronous System Call Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional systems incur significant performance overhead due to frequent operating system calls during asynchronous input-output operations, which are particularly inefficient in streaming request environments like web servers, where batching and larger buffers are not effective.

Innovation Solution

The solution involves adding tasks to the kernel I/O queue and using flags to indicate processing status, allowing applications to defer system calls until I/O is complete, and utilizing kernel interrupt handlers to manage race conditions, thereby reducing the number of system calls needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional asynchronous I/O is used with frequent system calls, then I/O operations can be performed, but CPU processing time increases significantly due to the overhead of context switching between user space and kernel space

Engineering Contradiction:
ImproveI/O operation throughputVSAvoidCPU processing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by having the application program pre-register multiple I/O requests with the kernel in advance, rather than making individual system calls for each I/O operation. The kernel maintains a queue of pre-registered requests and processes them asynchronously, eliminating the need for repeated context switches during I/O operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism in the form of a kernel-maintained I/O request queue and associated data structures that buffer between user-space application programs and kernel-space I/O processing. This intermediary layer allows batch processing of I/O requests without requiring frequent context switches, reducing CPU overhead while maintaining I/O throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If batching techniques are used to reduce system calls, then fewer system calls are made, but these techniques are ineffective in streaming request environments where I/O requests cannot be predicted in advance

Engineering Contradiction:
ImproveSystem call frequencyVSAvoidEffectiveness in streaming environments
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The patent applies dynamics by implementing a dynamic I/O request registration system where the application program can register new I/O requests at any time based on runtime conditions. The kernel dynamically manages the I/O request queue, accepting new requests without requiring the application to predict or pre-batch all I/O operations. This dynamic approach adapts to streaming environments where requests arrive unpredictably.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent ensures continuity of useful action by maintaining a persistent kernel-side I/O request queue that continuously processes requests as they arrive. Rather than requiring periodic batching intervals, the system continuously accepts and processes I/O requests in streaming environments, eliminating idle time while reducing system call overhead through asynchronous processing.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If the application program waits for I/O completion before making the next system call, then system call frequency decreases, but this increases latency and reduces responsiveness

Engineering Contradiction:
ImproveSystem call efficiencyVSAvoidI/O completion speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent implements feedback mechanisms where the kernel continuously monitors I/O queue status and notifies the application program when I/O operations complete. The application program can query the kernel or register completion handlers that are automatically invoked when I/O operations finish, providing real-time feedback without requiring the application to continuously poll or wait passively. This maintains responsiveness while reducing system call frequency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7779411B2System, method and medium for providing asynchronous input and output with less system calls to and from an operating system
Publication Date: 2010.08.17 RED HAT INC
  • US7779411B2 patent drawing
  • US7779411B2 patent drawing
  • US7779411B2 patent drawing

AI summary

A system, method and medium for reducing the number of system calls from an application program to an operating system kernel. In an embodiment, a method includes the steps of creating a list of requests issued by an application program, associating an indicia with the list indicating whether the list contains a request, querying the indicia to determine if the list contains a request, and adding a new application program request to the list when the indicia indicates that the list includes a request.