Kernel I/O Queue System for Reducing Asynchronous System Call Overhead
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


