| CPC G06F 9/5083 (2013.01) [G06F 9/4881 (2013.01)] | 13 Claims |

|
1. A method for load balancing latency-sensitive tasks on isolated processors, comprising:
identifying one or more first tasks and one or more second tasks by an operating system of a computing device, wherein each of the second tasks is a latency-sensitive task characterized by one or more latency constraints;
identifying a priority level of each task of the one or more first tasks and a priority level of each task of the one or more second tasks;
identifying a first set of processors of the computing device, wherein the processors of the first set are non-isolated processors load balanced by a kernel scheduler of the operating system;
assigning, based on the priority level of each task of the one or more first tasks, a time slice to each task of the one or more first tasks, wherein a higher priority task corresponds to a larger time slice;
scheduling execution of the one or more first tasks on the first set of processors of the computing device, wherein each of the one or more first tasks is executed according to its respective assigned time slice;
identifying a second set of processors of the computing device, wherein the processors of the second set are isolated processors excluded from a scope of load balancing performed by the kernel scheduler;
identifying a first processor of the second set of processors in view of a number of latency-sensitive tasks scheduled to execute on each processor of the second set of processors and an amount of available processing capacity of each processor of the second set of processors, wherein the first processor of the second set of processors has a least number of latency-sensitive tasks scheduled to execute of the second set of processors and a greatest amount of available processing capacity of each processor of the second set of processors;
identifying, from the one or more second tasks, a next task in view of an amount of processor time that has been used by each of the one or more second tasks and the priority level of the next task; and
executing, by the computing device, one or more instructions of the next task on the first processor of the second set of processors.
|