Operating system architecture using multiple priority light weight kernel task based interrupt handling
First Claim
1. A computer system implementing a software architecture, having a processor to execute instructions providing for controlled responses to occurrences of interrupts, said system comprising:
- a) first task means for performing a first function in response to an occurrence of an interrupt, said first task means having a first priority level that is one of a predetermined set of priority levels;
b) interrupt server task means for performing a second function in response to the occurrence of said interrupt, said interrupt server task means having a second priority level that is between predetermined ones of the priority levels of said predetermined set of priority levels, said second priority level being higher than said first priority level; and
c) kernel means for selecting one of a schedulable set of tasks for execution by the processor based upon the relative priority levels of said schedulable set of tasks, said kernel means, responsive to said interrupt, providing for disabling recognition of said interrupt by said kernel means and including said interrupt server task means in said schedulable set of tasks in response to said interrupt, said server task means including means for including said first task means in said schedulable set of tasks.
5 Assignments
0 Petitions
Accused Products
Abstract
A software architecture is implemented through the execution of instructions by a processor. The software architecture provides a first task for performing a first function in response to the occurrence of an interrupt. The first task is assigned a first priority level that is one of a predetermined set of priority levels. A server task is provided to perform a second function in response to the occurrence of the interrupt. The server task is assigned a second priority level that is between predetermined ones of the priority levels of the predetermined set of priority levels. The second priority level is alternately set higher than the first priority level. The operating system kernel includes a scheduler that selects tasks for execution based on relative task priority level. The kernel includes an interrupt handler that provides for setting the server task in a schedulable state in response to the occurrence of the interrupt. The server task, in performance of the second function, provides for setting the first task in a schedulable state with respect to the kernel scheduler so as to allow performance of the first function with respect to the interrupt.
-
Citations
12 Claims
-
1. A computer system implementing a software architecture, having a processor to execute instructions providing for controlled responses to occurrences of interrupts, said system comprising:
-
a) first task means for performing a first function in response to an occurrence of an interrupt, said first task means having a first priority level that is one of a predetermined set of priority levels; b) interrupt server task means for performing a second function in response to the occurrence of said interrupt, said interrupt server task means having a second priority level that is between predetermined ones of the priority levels of said predetermined set of priority levels, said second priority level being higher than said first priority level; and c) kernel means for selecting one of a schedulable set of tasks for execution by the processor based upon the relative priority levels of said schedulable set of tasks, said kernel means, responsive to said interrupt, providing for disabling recognition of said interrupt by said kernel means and including said interrupt server task means in said schedulable set of tasks in response to said interrupt, said server task means including means for including said first task means in said schedulable set of tasks. - View Dependent Claims (2, 3)
-
-
4. A computer system providing for the management of interrupts from multiple interrupt sources within a predetermined bounded interrupt period, said computer system comprising:
-
a) a processor for executing a program, said processor including an interrupt controller for identifying interrupts originated from a plurality of interrupt sources; b) a memory storing said program, said program including a plurality of subprograms including a plurality of task subprograms corresponding to said plurality of interrupt sources, each said task subprogram having an associated interrupt handler subprogram and an interrupt server subprogram; c) scheduling means for controlling the selection of subprograms for execution by said processor, said scheduling means providing for the preemptive execution of said plurality of interrupt handler subprograms in response to respective interrupts and priority based scheduling of said plurality of interrupt server subprograms and said plurality of task subprograms, all but one of said interrupt server subprograms having a priority level less than the priority level of a predetermined task subprogram. - View Dependent Claims (5, 6)
-
-
7. An interrupt control system for managing the execution of a plurality of application tasks in response to the receipt of interrupt signals, said interrupt control system comprising:
-
a) a processor suitable for the execution of programs; and b) a memory coupled to said processor, i) said memory storing a control program and a plurality of application programs, said control program including a scheduling routine, a plurality of interrupt handlers and a plurality of interrupt servers, ii) said application programs, interrupt handlers and interrupt servers having respective predetermined priority levels, iii) said scheduling routine providing for the selection of the highest priority level one of a schedulable set of said plurality of application programs and said plurality of interrupt servers, iv) the predetermined priority levels of said plurality of interrupt handlers being greater than the predetermined priority levels of said plurality of interrupt servers and said plurality of application programs, the priority level of a predetermined one of said interrupt servers being between the priority levels of a predetermined pair of said application programs, wherein a predetermined interrupt handler is preemptively executed by said processor on receipt of a corresponding interrupt signal, said predetermined interrupt handler disabling recognition of subsequent occurrences of said corresponding interrupt signal and including said predetermined one of said interrupt servers in said schedulable set; said predetermined one of said interrupt servers providing for the processing of data associated with said corresponding interrupt signal and enabling recognition of subsequent occurrences of said corresponding interrupt signal upon priority scheduled execution of said predetermined one of said interrupt servers. - View Dependent Claims (8, 9)
-
-
10. A method of operating a computer system comprising the steps of:
-
a) selectively scheduling the execution of tasks based on the priority of tasks included in schedulable set of tasks, said tasks including interrupt server tasks and first tasks, where said interrupt server tasks have predetermined priority levels from a first set of priority levels and where said first tasks have predetermined priority levels from a second set of priority levels; b) preemptively executing an interrupt handler in response to the receipt of an interrupt, the execution of said interrupt handler providing for the inclusion of a predetermined interrupt server task in said schedulable set of tasks; c) executing said predetermined interrupt server task when said predetermined interrupt server task is priority selected from said schedulable set of tasks for execution, the execution of said predetermined interrupt server task selectively providing for the inclusion of a predetermined first task in said schedulable set of tasks; and d) executing said predetermined first task when said predetermined first task is priority selected from said schedulable set of tasks for execution, the priority level of said predetermined interrupt server being greater than the priority level of said predetermined first task and less than the priority level of another one of said first tasks. - View Dependent Claims (11, 12)
-
Specification