Low-latency real-time dispatching in general purpose multiprocessor systems
First Claim
1. A method of real-time dispatching in a general purpose multiprocessor system having N processors, the method comprising:
- assigning a priority to each of the multiple real-time threads to be executed on one of the N processors, such that the multiple real-time threads include up to N top priority real-time threads; and
binding each of the up to top N priority real-time threads to a corresponding processor such that the assigned priority of each bound real-time thread is the highest priority for being executed on its corresponding processor and any other thread being executed on the corresponding processor is preempted if the bound real-time thread becomes runnable, wherein binding includes;
preallocating a processor to each one of the N top priority real-time threads; and
dispatching the bound real-time thread to its preallocated processor when the real-time thread becomes runnable.
15 Assignments
0 Petitions
Accused Products
Abstract
A low-latency real-time dispatching scheme performed by the operating system of a general purpose multiprocessor system having N processors, assigns a priority to each of multiple real-time threads to be executed on the N processors. The multiple real-time threads include up to N top priority real-time threads, which are bound to a corresponding processor. The assigned priority of each bound real-time thread is the highest priority for being executed on its corresponding processor, and any other real-time thread being executed on the corresponding processor is preempted if the bound real-time thread becomes runnable.
-
Citations
21 Claims
-
1. A method of real-time dispatching in a general purpose multiprocessor system having N processors, the method comprising:
-
assigning a priority to each of the multiple real-time threads to be executed on one of the N processors, such that the multiple real-time threads include up to N top priority real-time threads; and binding each of the up to top N priority real-time threads to a corresponding processor such that the assigned priority of each bound real-time thread is the highest priority for being executed on its corresponding processor and any other thread being executed on the corresponding processor is preempted if the bound real-time thread becomes runnable, wherein binding includes; preallocating a processor to each one of the N top priority real-time threads; and dispatching the bound real-time thread to its preallocated processor when the real-time thread becomes runnable. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of real-time dispatching in a general purpose multiprocessor system having N processors, the method comprising:
-
assigning a priority to each of the multiple real-time threads to be executed on ones of the N processors, such that the multiple real-time threads include up to N top priority real-time threads; binding each of the up to top N priority real-time threads to a corresponding processor such that the assigned priority of each bound real-time thread is the highest priority for being executed on its corresponding processor and any other thread being executed on the corresponding processor is preempted if the bound real-time thread becomes runnable; creating a new real-time thread having an assigned priority; re-evaluating the assigned priorities of the real-time threads to ascertain if the priority of the new real-time thread is greater than the priority of one of the previous top N priority real-time threads; and if the priority of the new real-time thread is greater than the priority of one of the previous top N priority real-time threads; breaking the binding of the lowest priority bound real-time thread from its corresponding processor; and binding the new real-time thread to said corresponding processor. - View Dependent Claims (7, 8)
-
-
9. A method of real-time dispatching in a general purpose multiprocessor system having N processors, the method comprising:
-
assigning a priority to each of the multiple real-time threads to be executed on ones of the N processors, such that the multiple real-time threads include up to N top priority real-time threads; and binding each of the up to top N priority real-time threads to a corresponding processor such that the assigned priority of each bound real-time thread is the highest priority for being executed on its corresponding processor and any other thread being executed on the corresponding processor is preempted if the bound real-time thread becomes runnable; assigning a new priority to at least one of the real-time threads; reevaluating the assigned priorities of the real-time threads to ascertain if the priority of at least one unbound real-time thread is greater than the priority of at least one of the previous top N priority real-time threads as a result of assigning a new priority; and if the priority of the at least one unbound real-time thread is greater than the priority of the at least one of the previous top N priority real-time threads; breaking the binding of the at least one lowest priority bound real-time thread from its corresponding processor; and binding the at least one unbound real-time thread to said corresponding processor. - View Dependent Claims (10, 11)
-
-
12. A method of real-time dispatching in a general purpose multiprocessor system having a first processor and a second processor, the method comprising:
-
binding a first real-time thread to the first processor such that the first real-time thread has the highest priority for being executed on the first processor and any other thread being executed on the first processor is preempted if the first real-time thread becomes runnable; and binding a second real-time thread to the second processor such that the second real-time thread has the highest priority for being executed on the second processor and any other thread being executed on the second processor is preempted if the second real-time thread becomes runnable wherein binding of said first and second real-time threads includes preallocating the first and second processors to the first and second real-time threads, respectively.
-
-
13. A general purpose multiprocessor system comprising:
-
N processors; assigning means for assigning a priority to each of the multiple real-time threads to be executed on ones of the N processors, such that the multiple real-time threads include up to N top priority real-time threads; and binding means for binding each of the up to top N priority real-time threads to a corresponding processor such that the assigned priority of each bound real-time thread is the highest priority for being executed on its corresponding processor and any other thread being executed on the corresponding processor is preempted if the bound real-time thread becomes runnable, wherein the binding means includes; means for preallocating a processor to each one of the N top priority real-time threads; and means for dispatching the bound real-time thread to its preallocated processor when the real-time thread becomes runnable. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A general purpose multiprocessor system comprising:
-
N processors; assigning means for assigning a priority to each of the multiple real-time threads to be executed on ones of the N processors, such that the multiple real-time threads include up to N top priority real-time threads; and binding means for binding each of the up to top N priority real-time threads to a corresponding processor such that the assigned priority of each bound real-time thread is the highest priority for being executed on its corresponding processor and any other thread being executed on the corresponding processor is preempted if the bound real-time thread becomes runnable; wherein the assigning means assigns a priority to a new real-time thread and reevaluates the assigned priorities of the real-time threads to ascertain if the priority of the new real-time thread is greater than the priority of one of the previous top N priority real-time threads, and wherein if the priority of the new real-time thread is greater than the priority of one of the previous top N priority real-time threads, the binding means breaks the binding of the lowest priority bound real-time thread from its corresponding processor and binds the new real-time thread to said corresponding processor. - View Dependent Claims (19)
-
-
20. A general purpose multiprocessor system comprising:
-
N processors; assigning means for assigning a priority to each of the multiple real-time threads to be executed on ones of the N processors, such that the multiple real-time threads include up to N top priority real-time threads; and binding means for binding each of the up to top N priority real-time threads to a corresponding processor such that the assigned priority of each bound real-time thread is the highest priority for being executed on its corresponding processor and any other thread being executed on the corresponding processor is preempted if the bound real-time thread becomes runnable; wherein when the assigning means assigns a new priority to at least one of the real-time threads, wherein the assigning means reevaluates the assigned priorities of the real-time threads to ascertain if the priority of at least one unbound real-time thread is greater than the priority of at least one of the previous top N priority real-time threads as the result of the assigning, and wherein if the priority of the at least one unbound real-time thread is greater than the priority of the at least one of the previous top N priority real-time threads, the binding means breaks the binding of the at least one lowest priority bound real-time thread from its corresponding processor and binds the at least one unbound real-time thread to said corresponding processor. - View Dependent Claims (21)
-
Specification