Patent ID: 8984527
Filing Date: 2015-03-17
Classification: G06F

Abstract:
1. A device, comprising: a processor configured to run a first plurality of processes; a configurator configured to determine a time slice for each of the first plurality of processes, the configurator further configured to determine a time donation scheme for a first one of the first plurality of processes, the time donation scheme comprising: a donation policy which specifies a sequence of two or more processes from a second plurality of processes to which a portion of the time slice for the first one of the first plurality of processes will be donated; wherein each process in the sequence of two or more processes from the second plurality of processes is able to donate it's time to a subsequent process in the sequence of two or more processes from the second plurality of processes; a time donation chain comprising the first one of the first plurality of processes and the sequence of two or more processes from the second plurality of processes; the donation policy indicating the time slice should be returned to the first one of the first plurality of processes upon completion of the sequence of two or more processes from the second plurality of processes; a scheduler configured to generate a schedule as a function of the time slices, the schedule including an order for each of the time slices for a respective one of the first plurality of processes, wherein, during execution of the first plurality of processes in accordance with the schedule, the scheduler is configured to: receive, from a respective process in the time donation chain, a request to donate, to a respective subsequent process in the time donation chain, the time slice of the first one of the first plurality of processes; determine whether the request complies with the donation policy; when the request complies with the donation policy, disable interrupts and execute the respective subsequent process during the time slice of the first one of the first plurality of processes; and upon return of the time slice to the first one of the first plurality of processes, enable interrupts; and when the request does not comply with the donation policy, generate an error.