System and method for providing cooperative interrupts in a preemptive task scheduling environment
First Claim
1. In a computer-based system having a processor, a controller, a memory module, and a preemptive operating system that does not support cooperative scheduling, a method for executing within the preemptive operating system, a first application designed to operate on a cooperative scheduling operating system, comprising the steps of:
- receiving a cooperative interrupt associated with the first application;
storing an address of a completion routine, associated with the first application, in a queue allocated in the memory module, said completion routine including an interrupt handling procedure for servicing said cooperative interrupt;
determining if said completion routine is permitted to execute; and
executing said completion routine under control of a cooperative interrupt server responsive to said queue, if said completion routine is permitted to execute.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for executing applications written in a cooperative scheduling environment in a preemptive task scheduling environment, ensuring that the time sequence for the delivery of interrupts is not altered in the preemptive task scheduling environment, efficiently disabling all cooperative interrupts in response to a request from an application, efficiently scheduling all cooperative interrupts, and efficiently executing emulated instructions while preserving the integrity of the emulated instructions. The system and method utilize a process server to enforce the cooperative scheduling, a cooperative interrupt server and a holds queue to enforce the interrupt requirements, and special context data to ensure the compatibility of applications designed using an old instruction set architecture.
-
Citations
15 Claims
-
1. In a computer-based system having a processor, a controller, a memory module, and a preemptive operating system that does not support cooperative scheduling, a method for executing within the preemptive operating system, a first application designed to operate on a cooperative scheduling operating system, comprising the steps of:
-
receiving a cooperative interrupt associated with the first application; storing an address of a completion routine, associated with the first application, in a queue allocated in the memory module, said completion routine including an interrupt handling procedure for servicing said cooperative interrupt; determining if said completion routine is permitted to execute; and executing said completion routine under control of a cooperative interrupt server responsive to said queue, if said completion routine is permitted to execute. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-based preemptive operating system, having a processor, for executing a first application and a second application designed to operate on a cooperative scheduling operating system using cooperative interrupts, the system comprising:
-
a first queue, for storing information related to the operation of the first application; a process server, disposed to communicate with said first queue, for ensuring that only one of the first application and the second application has access to the processor in accordance with a cooperative scheduling environment; a completion routine, associated with the first application, for servicing a first cooperative interrupt associated with the first application; a second queue, for storing the address of said completion routine; a cooperative interrupt server, disposed to communicate with said second queue, for receiving the address of each completion routine in response to the corresponding cooperative interrupt associated with the completion routine being received, for servicing each cooperative interrupt, and for ensuring that each cooperative interrupt is serviced in a same sequence that the cooperative interrupts are serviced in the cooperative scheduling operating system; and a controller, coupled to said first queue, said process server, and said cooperative interrupt server, for controlling access to said first queue and said second queue, and for providing a preemptive scheduling environment. - View Dependent Claims (12, 13, 14)
-
-
15. In a computer-based system having a processor, a controller, a memory module, and a preemptive operating system that does not support cooperative scheduling, a method for executing in the preemptive operating system, a plurality of applications designed to operate on a cooperative scheduling operating system, comprising the steps of:
-
asynchronously receiving a plurality of cooperative interrupts, each cooperative interrupt associated with one of the plurality of applications, each cooperative interrupt further associated with a completion routine for servicing the cooperative interrupt; determining whether at least one completion routine is permitted to execute; and synchronously executing each of the plurality of cooperative interrupts under control of a task scheduler according to an order in which the cooperative interrupts were asynchronously received.
-
Specification