Patent ID: 8387052

Claim:
A system comprising: a processor; one or more memory storage units; software code stored in the one or more memory storage units, where the software code is executable by the processor and comprises: a plurality of adaptive partitions each having an associated guaranteed processor time budget and dynamically associable with one or more process threads; a plurality of process threads each having a priority and each dynamically associable with any one of the plurality of adaptive partitions; one or more process threads of the plurality of process thread designated as critical threads; one or more critical processor time budgets, each associated with one of the plurality of adaptive partitions; and a process scheduler executable by the processor configured to: when the system is under a normal load, allocate the processor to a process thread, of the plurality of process threads, that is in a ready state and having the highest priority amongst process threads, of the plurality of process threads, that are in the ready state; when the system is in overload, allocate the processor to a process thread, of the plurality of process threads, that is in the ready state, having the highest priority amongst process threads, of the plurality of process threads, that are in the ready state and for which the adaptive partition that the process thread is associated with has available guaranteed processor time budget; and when the system is in overload and when the process thread, of the plurality of process threads, that is in the ready state, having the highest priority amongst process threads, of the plurality of process threads, that are in the ready state is a critical thread and the adaptive partition that the critical thread is associated with has exhausted guaranteed processor time budget, allocate the processor to the critical thread when the adaptive partition with which the critical thread is associated has available critical processor time budget; where the guaranteed processor time budget is allocated and billed over successive averaging windows; and where a portion of the guaranteed processor time budget associated with each adaptive partition is billed when the processor is allocated to a process thread associated with the adaptive partition; where the critical processor time budget is allocated and billed over successive averaging windows; and where a portion of the critical processor time budget associated with each adaptive partition is billed when the processor is allocated to a critical thread associated with the adaptive partition and the guaranteed processor time budget associated with the adaptive partition is exhausted.