A method for providing synchronous message transfer is provided in an asynchronous operating environment in which conversational status can be established between communicating endpoints. The operating environment includes a transaction processing system having a plurality of terminals, a data communication component (DCC), and a transaction processor (XP) which exchanges message data with DCC for transmission to selected terminals. The method steps comprise ascertaining at the DCC whether a transaction initiated by a message is synchronous or asynchronous; passing the ascertained transaction from the DCC to the XP for generating a response; and processing the responses to synchronous transactions in progress, while retaining the responses to asynchronous transactions until the synchronous responses are completed. A stored variable data object for each terminal includes a field for indicating when a synchronous transaction is in progress and a field for identifying the input message initiating the synchronous transaction. Messages received from a terminal are inspected to determine their destination processes. When a message destined for a synchronous process is received from a terminal, entry is made into the synchronous field of the terminal's associated data object and an identification associated with the message is entered into the object's message ID field. When the synchronous flag is set in the terminal's associated data object, transaction responses directed to the terminal are inspected to ascertain which constitutes the synchronous response. All asynchronous responses for the terminal are buffered until the synchronous response is identified and processed for transmission to the terminal.
A real-time database management system in which data generated by a producer process is buffered in a plurality of update buffers and transmitted asynchronously into a consumer process, such as a database management system, so that neither the producer process nor the consumer process has to halt operations during I/O requests and data is not lost.
According to the present invention, a transaction processing system is provided for executing transactional processes representing transactions, wherein the transaction processing functionality is integrated within a reduced kernel operating system such as a microkernel or nanokernel operating system. The system of the invention comprises a processor for executing the processes, and a main memory accessible to the processor for storing programs, including a reduced kernel operating system, to be executed by the processor. The main memory of the system has a supervisor area (510) where operating system functions forming the reduced kernel are stored, and a user area (520) where user programs and other operating system functions are stored. According to the present invention, a data structure (565, 570) is stored in the supervisor area (510) of main memory for storing information about the processes to be executed by the processor, and additionally the following operating system functions are stored in the supervisor area (510) of main memory: a scheduler (560) for applying a scheduling policy to determine the order in which processes identified in the table are provided to the processor for execution; a concurrency control manager (550) for managing the transactional processes to be executed by the system; and a message passing system (540) for passing messages between processes being executed by the processor, and for notifying the concurrency control manager (550) of any messages received by the message passing system from the transactional processes.
A method for operating a computer system includes the identification of at least one of a plurality of consoles to the operating system so as to be able to dynamically specify console attributes. Furthermore, a unique command and response token value is provided for associating commands and subsequently generated responses or messages so that they may be directed to an appropriately select set of consoles as determined by the token value and the console attributes. These facilities provide a programmable and flexible interface to a computer and its operating system environment so as to facilitate the utilization of console devices for controlling the computer complex from one or more remote locations in a consistent, protected, efficient but yet flexible manner.
A module is interposed between a multitasking operating system and the device driver for a graphics adapter including a frame buffer with a linear aperture for continuous, asynchronous data transfers. The interposed module may selectively intercept all graphics device driver function requests or simply pass such requests to the device driver, and provides a mechanism for generating graphics output in the frame buffer without utilizing graphics accelerator hardware on the graphics adapter. The interposed module is aware of the start and stop of asynchronous data transfers to the frame buffer. When asynchronous data transfers are started, the interposed module invokes the graphics adapter device driver to obtain access to the frame buffer linear aperture and sets its own internal state to active. While active, the interposed module intercepts all graphics device driver requests and employs its own mechanism to generate graphics output in the frame buffer responsive to such requests, without utilizing the graphics accelerator hardware. Since the graphics accelerator hardware is not utilized, the frame buffer linear aperture always remains enabled. While inactive, the interposed module simply passes all graphics device driver requests to the device driver. The interposed module is preferably implemented in accordance with the GRADD architecture model, with the mechanism for generating graphics output being provided by the VMAN and SOFTDRAW libraries.
A method and apparatus for communication between programs, or tools, in a computer system includes the steps of establishing a bi-directional communication path between each tool and a central message server, registering with the message server the patterns of messages which each tool wishes to receive, and storing the message patterns. A message is forwarded to the message server when one tool requires the service of another tool. The message server compares the pattern of the received message with the previously-stored message patterns, and, if the message matches a stored message pattern, the message is forwarded to each tool for which a match occurs. If a message requests the service of another tool and the message does not match the patterns of the previously-stored messages, an execution manager determines from a status table and an execution initialization table which tool can service the request message. The execution manager then invokes the tool and forwards the request message to the tool for execution.