An Implementation of Task-Synchronous Input/Output for Ada
Original Publication Date: 1990-Jul-01
Included in the Prior Art Database: 2005-Mar-17
AbstractThis article describes a method for permitting an Ada program to perform input/output operations in parallel with other program operations using only the standard Ada input/output packages specifying a synchronous (blocking) interface.
An Implementation of Task-Synchronous Input/Output for
describes a method for permitting an Ada program
to perform input/output operations in parallel with other program
operations using only the standard Ada input/output packages
specifying a synchronous (blocking) interface.
is an implementation of the standard Ada input/
output packages, TEXT_IO, SEQUENTIAL_IO, and DIRECT_IO, wherein only
the single, requesting task must wait for input/output completion.
The remainder of the Ada program can perform other program functions,
including other input/output operations, while the input/output
operation is ongoing. This permits a single Ada program to utilize
the full capabilities of the hardware; the I/O hardware is executing
in parallel with the CPU.
input/output operation is performed on a file object. An
Ada task, the device monitor task, is associated with each file
object (and thereby each input/output device) and is responsible for
the opening, creating, closing, and deleting of a file object for an
input/output device. When a file object is opened or created, the
device monitor task creates a file operations task which will then
handle all read and write operations to the file. The file
operations task is declared as part of the Ada file type. The Ada
task requesting an input/output operation performs a rendezvous with
the device monitor task or the file operations task to start an