System for constructing hardware device interface software systems independent of operating systems including capability of installing and removing interrupt handlers
First Claim
1. Apparatus for constructing hardware device interface software systems for servicing Input/Output (IO) devices, the apparatus comprising:
- (a) a processor;
(b) a memory attached to and under the control of the processor;
(c) at least one IO device attached to the processor; and
(d) an IO service ensemble, responsive to IO requests from a user, for providing a pre-defined set of IO services for the device, the ensemble includinginterrupt handler means, residing in a kernel address space of the memory, for servicing interrupts from the device; and
device access manager means, residing in a user-mode address space of the memory and cooperating with the interrupt handler means, for accessing the device according to user-provided, device-specific access rules to iniate an IO operation with the device and for reserving buffers in the memory, if necessary, to service the IO requests and to service responses from the device, the device access manager means including means for installing the interrupt handler means in the memory and including death watch means for removing the interrupt handler means from the memory if the device access manager means is destroyed.
3 Assignments
0 Petitions
Accused Products
Abstract
An object-oriented input/output (IO) system represents an interface between clients of the IO system and peripheral devices, such that the clients can access the peripheral devices by utilizing IO services offered by the IO system. The IO system includes one or more object-oriented IO servicers for receiving IO service requests from clients, and for generating IO commands in accordance with the IO service requests. One or more object-oriented access managers, coupled to the IO servicers and the peripheral devices, access the peripheral devices as instructed by the IO commands such that the IO service requests are satisfied. The peripheral devices may transmit interrupts to a kernel while operating in accordance with the IO commands. One or more object-oriented interrupt servicers, coupled to the kernel receive and decode the interrupts from the peripheral devices. One or more object-oriented interrupt handlers, coupled to the interrupt servicers, process the decoded interrupts. The IO system cited here includes an operating system independent execution environment for the various I/O servicers, each of which is designed in such a way as to support a variety of interchangeable operating systems.
-
Citations
23 Claims
-
1. Apparatus for constructing hardware device interface software systems for servicing Input/Output (IO) devices, the apparatus comprising:
-
(a) a processor; (b) a memory attached to and under the control of the processor; (c) at least one IO device attached to the processor; and (d) an IO service ensemble, responsive to IO requests from a user, for providing a pre-defined set of IO services for the device, the ensemble including interrupt handler means, residing in a kernel address space of the memory, for servicing interrupts from the device; and device access manager means, residing in a user-mode address space of the memory and cooperating with the interrupt handler means, for accessing the device according to user-provided, device-specific access rules to iniate an IO operation with the device and for reserving buffers in the memory, if necessary, to service the IO requests and to service responses from the device, the device access manager means including means for installing the interrupt handler means in the memory and including death watch means for removing the interrupt handler means from the memory if the device access manager means is destroyed. - View Dependent Claims (3)
-
-
2. A method for constructing hardware device interface software systems for servicing Input/Output (IO) devices on a computer system having a processor, a memory, an operating system, and an IO device, the method comprising the steps of:
-
(a) creating in the memory an IO service ensemble for providing a pre-defined set of IO services for the device, the ensemble including a device access manager in a user-mode address space of the memory and an interrupt handler in a kernel address space of the memory; (b) creating the interrupt handler to include mechanisms for servicing interrupts from the device; and (c) creating the device access manager to include a mechanism for accessing the device according to user-provided, device-specfic access rules to initiate an IO operation with the device and to include a mechanism for reserving buffers in the memory, if necessary, to service IO requests and to service IO responses from the device, and to include a mechanism for detecting whether the device access manager is destructed and for removing the interrupt handler in response to detecting the destruction of the device access manager. - View Dependent Claims (4)
-
-
5. Apparatus for providing input/output services from a hardware device which generates a processor interrupt in a multi-tasking computer system having a memory partitioned into a plurality of address spaces, the computer system having an application program operating in an application program address space and an operating system kernel operating in a kernel address space, the apparatus comprising:
-
(a) an IO service framework object having a plurality of subroutines therein for providing data to, and receiving messages from, the application program in a format which is operating system independent; (b) interrupt service means located in the kernel address space and having direct access to the hardware device, the interrupt service means being responsive to the processor interrupt for determining the status of the hardware device and generating a notification message based on the determined status; (c) a device access manager object located in the application program address space and having direct access to the hardware device, the device access manager being responsive to the notification message for retrieving data from the hardware device and for executing a subroutine in the IO service framework object for providing the data to the application program; wherein the interrupt service means comprises means responsive to control signals generated by the device access manager for installing one of the plurality of interrupt handlers in the kernel address space; and wherein the device access manager can be destoryed and the interrupt service means comprises means responsive to a destruction of the device access manager for removing the one interrupt handler program from the kernel address space. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. Apparatus for providing input/output services from a hardware device which generates a processor interrupt in a multi-tasking computer system having a memory partitioned into a plurality of address spaces, the computer system having an application program operating in an application program address space and an operating system kernel operating in a kernel address space, the apparatus comprising:
-
(a) an IO service framework object having a plurality of subroutines therein for providing data to, and receiving messages from, the application program in a format which is operating system independent; (b) a plurality of interrupt handlers, each of the plurality of interrupt handlers comprising means for responding to a processor interrupt and generating a notification message; (c) interrupt service means located in the kernel address space and having direct access to the hardware device, the interrupt service means being responsive to the processor interrupt for determining the status of the hardware device and for invoking one of the plurality of interrupt handlers based on the status of the hardware device; (d) a device access manager object located in the application program address space and having direct access to the hardware device, the device access manager being responsive to the notification message for retrieving data from the hardware device, for executing a subroutine in the IO service framework object for providing the data to the application program and for receiving operating-system independent commands from the application program to control and configure the hardware device; wherein the interrupt service means is responsive to control signals generated by each of the plurality of the device access managers for installing an interrupt handler program in the kernel address space for each of the plurality of device access mangers; and wherein any of the plurality of device access managers can be destroyed and the interrupt service means comprises means responsive to a destruction of the particular device access manager for removing the one interrupt handler program from the kernel address space. - View Dependent Claims (14, 15)
-
-
16. A method for providing input/output services from a hardware device which generates a processor interrupt in a multi-tasking computer system having a memory partitioned into a plurality of address spaces, the computer system having an application program operating in an application program address space and an operating system kernel operating in a kernel address space, the method comprising the steps of:
-
(a) creating an IO service framework object having a plurality of subroutines therein for providing data to, and receiving messages from, the application program in a format which is operating system independent; (b) creating in the kernel address space an interrupt service means having direct access to the hardware device, the interrupt service means being responsive to the processor interrupt for determining the status of the hardware device and generating a notification message based on the determined status; (c) creating in the application program address space a device access manager object having direct access to the hardware device, the device access manager being responsive to the notification message for retrieving data from the hardware device and for executing a subroutine in the IO service framework object for providing the data to the application program; wherein step (b) comprise the step of installing one of the plurality of interrupt handlers in the kernel address space in response to control signals generated by the device access manager; and wherein step (b) further comprises the step of removing the one interrupt handler program from the kernel address space when a device access manager is destroyed. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
-
Specification