Hand-off scheduling
AssigneeApple Inc.
InventorsDaniel A. Chimene, Daniel A. Steffen, James M Magee, Russell A. Blaine, Shantonu Sen
Life of this patent
Estimating the term…
Loading patent…
AssigneeApple Inc.
InventorsDaniel A. Chimene, Daniel A. Steffen, James M Magee, Russell A. Blaine, Shantonu Sen
Estimating the term…
Disclosed herein are systems, methods, and computer-readable media directed to scheduling threads in a multi-processing environment that can resolve a priority inversion. Each thread has a scheduling state and a context. A scheduling state can include attributes such as a processing priority, classification (background, fixed priority, real-time), a quantum, scheduler decay, and a list of threads that may be waiting on the thread to make progress. A thread context can include registers, stack, other variables, and one or more mutex flags. A first thread can hold a resource with a mutex, the first thread having a low priority. A second thread having a scheduling state with a high priority can be waiting on the resource and may be blocked behind the mutex held by the first process. A scheduler can execute the context of the lower priority thread using the scheduler state of the second, higher priority thread. More than one thread can be waiting on the resource held by the first thread. A “pusher list” of threads that are waiting on the first thread can be associated with the first thread. The scheduler can use the pusher list to identify threads that need the first thread to make progress until the first thread releases the resource and mutex. Then, the scheduler can use the pusher list to identify threads that are now runnable and make immediate use of the resource.
A computer-implemented method, comprising:
A non-transitory computer-readable medium programmed with instructions that, when executed by a processing system, perform a method, comprising:
A processing system comprising:
Dependencies are inferred from the claim text.