Electrical computers and digital data processing systems: input/ – Interrupt processing – Interrupt queuing
Reexamination Certificate
2000-07-27
2004-03-23
Myers, Paul R. (Department: 2181)
Electrical computers and digital data processing systems: input/
Interrupt processing
Interrupt queuing
Reexamination Certificate
active
06711644
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Technical Field
The present invention is directed to an apparatus and method for communicating the completion of asynchronous input/output in a data processing system.
2. Description of Related Art
Portable Operating System Interface for UNIX (POSIX) is an IEEE 1003.1 standard that defines the language interface between application programs and the UNIX operating system. Adherence to the standard ensures compatibility when programs are moved from one UNIX computer to another. POSIX provides a set of system calls for user applications to manage asynchronous input/output requests. In POSIX, the lio_listio( ) function call is used to initiate a group of input/output (I/O) requests. By input/output requests what is meant is a request to perform a read/write operation. The lio_listio( ) function call can either operate in a blocking or non-blocking manner. By “blocking” what is meant is that the lio_listio( ) function call does not return values to the calling application until all of the I/O requests are complete. In a “non-blocking” operation, the lio_listio( ) function call can, in a user mode, poll for completed I/O requests or can issue a call to the aio_suspend( ) function in order to wait on a selected set of I/O requests to be completed.
The selected set of I/O requests that are to be completed is dependent on the particular application that calls the aio_suspend( ) function. For example, many on-line transaction processing middleware applications, such as Oracle database applications, initiate a group of I/O requests and would like to wait until 30% to 50% of the requests are completed. The application would like to continue to process other requests to achieve an enhanced throughput, however, this is not possible with the existing services provided by the POSIX asynchronous I/O system calls.
There are a number of factors that do not allow current POSIX asynchronous I/O system calls to facilitate enhanced throughput of applications. For example, the aio_suspend( ) function requires that the user build a list of control blocks, each associated with an I/O request that the user wishes to wait for completion. The moment any one of the control blocks for the I/O requests indicates the I/O request is complete, the aio_suspend( ) function returns to the calling application. If the number of I/O requests that have completed is not the required 30 to 50 percent, the application must again call the aio_suspend( ) function to again wait for the next I/O request in the list of I/O requests to complete. This may result in many calls to the aio_suspend( ) function and many returns to the calling application. Thus, for example, for a set of “n” I/O requests, the last I/O request in the list (n−1) could complete and the aio_suspend( ) function would return to the calling application. On subsequent calls to aio_suspend( ), it is possible that the “n−2” I/O request could complete and then the “n−3” I/O could complete. This results in n
2
calls to the aio_suspend( ) function.
Thus, a large amount of overhead costs, in terms of processing time, is encountered with the presently known POSIX asynchronous I/O system calls. Therefore, it would be beneficial to have an apparatus and method for communicating the completion of I/O requests in which the overhead of communicating the completion of the I/O requests is reduced.
SUMMARY OF THE INVENTION
The present invention provides an apparatus and method for communicating the completion of asynchronous I/O requests. In particular, the apparatus and method make use of a new function call which is capable of waiting for a predetermined number of I/O requests to be completed prior to returning to the calling application. Control blocks for the I/O requests are updated after a predetermined number of I/O requests have been completed, i.e. in a process context rather than in an interrupt context as in the known systems. In this way, the overhead associated with known asynchronous I/O system calls is reduced.
REFERENCES:
patent: 5568180 (1996-10-01), Okamoto
patent: 5764915 (1998-06-01), Heimsoth et al.
patent: 6134585 (2000-10-01), Yamato
patent: 6243860 (2001-06-01), Holland
patent: 11065952 (1999-03-01), None
The Single UNIX Specification, Version 2 1997 Lio13Listio().*
Lio13Listio(3R) Realtime Library. Aug. 19, 1993.*
UNIX man pages:Lio_Listio(3) 1994.*
UNIX man pages: attributes(5) 1994 Updated Feb. 19, 2000.
Accapadi Mathew
Nallapati Kumar V.
Srinivas Mysore Sathyanaraya
VanFleet James William
Walehiane Nasr-Eddine
International Business Machines - Corporation
Myers Paul R.
Roberts Diana L.
Walder, Jr. Stephen J.
Yee Duke W.
LandOfFree
Apparatus and method for communicating the completion of... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Apparatus and method for communicating the completion of..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Apparatus and method for communicating the completion of... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3217978