Method and operating system for executing programs in a multi-mode microprocessor
First Claim
1. A method of processing interrupts in a digital computer system including a processing unit, a memory, and a multi-tasking operating system, the processing unit including an interrupt vector table for storing the memory addresses of operating system routines or application program routines for servicing interrupts, the method including the steps of:
- (a) for each interrupt serviced by an operating system routine, storing the address of the corresponding operating system interrupt service routine in a corresponding client list in a dispatcher routine in the operating system;
(b) for each operating system interrupt service routine, storing the address of the dispatcher in the corresponding interrupt vector;
(c) periodically examining the interrupt vector table to determine if any application programs have edited interrupt vecotrs to replace the address of the dispatcher with the address of an application program service routine;
(d) for any edits located in step (c), placing the address of the application program interrupt service routine on top of the client list for the corresponding interrupt and restoring the interrupt vector value to point to the dispatcher;
(e) upon receipt of an interrupt, successively transferring control to the interrupt service routines until one of the routines services the interrupt; and
(f) upon termination of an application program that has edited the interrupt vector table, deleting the addresses of the interrupt service routines of the terminated program from the client lists of the dispatcher and restoring the values of the interrupts as necessary to point to the dispatcher.
2 Assignments
0 Petitions
Accused Products
Abstract
Improved methods and operating systems for use with a multi-mode microprocessor enable efficient operation in a multi-mode environment. Preferred embodiments for use with microprocessors which were not designed to switch from each mode to another mode enable multi-tasking of a mixture of programs written for different modes using the mode switching methods of the present invention. Frequently used portions of the operating system are stored in memory at locations which can be commonly addressed in all modes. Means for handling device drivers and interrupts in all modes are also provided. Preferred embodiments for use with computer systems using microprocessors such as the Intel 80286 include means for storing the operating system routines to maximize performance of the system in real mode. Auxiliary protection hardware and I/O masking hardware are also provided in alternate preferred embodiments to enhance protection during real mode operation of such systems. Means for handling interrupts in a mode switching environment and alternate embodiments to eliminate problems caused by hooking programs in a multi-tasking environment are also provided.
137 Citations
2 Claims
-
1. A method of processing interrupts in a digital computer system including a processing unit, a memory, and a multi-tasking operating system, the processing unit including an interrupt vector table for storing the memory addresses of operating system routines or application program routines for servicing interrupts, the method including the steps of:
-
(a) for each interrupt serviced by an operating system routine, storing the address of the corresponding operating system interrupt service routine in a corresponding client list in a dispatcher routine in the operating system; (b) for each operating system interrupt service routine, storing the address of the dispatcher in the corresponding interrupt vector; (c) periodically examining the interrupt vector table to determine if any application programs have edited interrupt vecotrs to replace the address of the dispatcher with the address of an application program service routine; (d) for any edits located in step (c), placing the address of the application program interrupt service routine on top of the client list for the corresponding interrupt and restoring the interrupt vector value to point to the dispatcher; (e) upon receipt of an interrupt, successively transferring control to the interrupt service routines until one of the routines services the interrupt; and (f) upon termination of an application program that has edited the interrupt vector table, deleting the addresses of the interrupt service routines of the terminated program from the client lists of the dispatcher and restoring the values of the interrupts as necessary to point to the dispatcher. - View Dependent Claims (2)
-
Specification