Adaptive partitioning for operating system
First Claim
Patent Images
1. A method for scheduling in an operating system comprising:
- creating one or more adaptive partitions comprising one or more threads or one or more group of threads in an operating system;
designating one or more critical threads;
executing the threads by the operating system if a CPU budget is available for use by the partition; and
allowing use of an additional amount of CPU budget for critical threads even when the adaptive partition comprising the critical thread has exhausted its CPU budget.
16 Assignments
0 Petitions
Accused Products
Abstract
An adaptive partition scheduler is a priority-based scheduler that also provides execution time guarantees (fair-share). Execution time guarantees apply to threads or groups of threads when the system is overloaded. When the system is not overloaded, threads are scheduled based strictly on priority, maintaining strict real-time behavior. Even when overloaded, the scheduler provides real-time guarantees to a set of critical threads, as specified by the system architect.
155 Citations
34 Claims
-
1. A method for scheduling in an operating system comprising:
-
creating one or more adaptive partitions comprising one or more threads or one or more group of threads in an operating system;
designating one or more critical threads;
executing the threads by the operating system if a CPU budget is available for use by the partition; and
allowing use of an additional amount of CPU budget for critical threads even when the adaptive partition comprising the critical thread has exhausted its CPU budget. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
15. A method for scheduling an adaptive partition comprising:
-
determining if one or more threads in one or more adaptive partitions comprising one or more threads in an operating system is critical;
evaluating an ordering function for the one or more adaptive partitions to determine the thread with the highest value of the ordering function;
executing the thread from the adaptive partition that has the highest value;
applying a time spent executing the thread against a CPU budget of the thread'"'"'s adaptive partition; and
applying the time spent executing the thread against a critical time budget of the adaptive partition if and only if the thread is critical and if the thread would not have been scheduled if it had not been critical. - View Dependent Claims (16, 17)
-
-
18. A method for transferring status of a critical thread in a message-passing operating system comprising:
-
sending a message from a sending thread to a server, where the sending thread has a priority level, where the sending thread is part of an adaptive partition in an operating system, and where the adaptive partition has a CPU budget and a critical time budget;
receiving the message by a receiving thread where the receiving thread is configured to act on behalf of the sending thread;
assigning the priority level of the sending thread to the receiving thread; and
joining the receiving thread to the adaptive partition of the sending thread. - View Dependent Claims (19, 20, 33)
-
-
30. A method of prioritizing access to a mutex in a message-passing operating system, comprising:
-
determining, from one or more waiting threads in one or more adaptive partitions, a waiting thread that is most likely to run next after a current thread in an adaptive partition, where the current thread is holding a mutex, and the waiting threads are waiting for the mutex;
raising a priority level of the current thread in the adaptive partition to a priority level of the waiting thread most likely to run next after the current thread;
determining a CPU waiting time incurred by the current thread while the current thread is holding the mutex;
charging a current thread assigned CPU budget the amount of the CPU waiting time, where the current thread assigned CPU budget is charged until the CPU budget reaches zero; and
charging a waiting thread assigned CPU budget a remaining CPU waiting time if the current thread assigned CPU budget reaches zero, where the remaining CPU waiting time is the difference between the CPU waiting time and the amount of CPU budget charged to the current thread. - View Dependent Claims (31, 32)
-
-
34. A system for scheduling processes comprising:
-
an operating system configured to control a transaction processing system;
a scheduler for scheduling one or more transactions in the operating system;
one or more adaptive partitions comprising one or more threads or one or more group of threads in the operating system, where the adaptive partitions are allocated a CPU budget; and
at least one thread designated as a critical thread by the operating system, where the adaptive partition associated with the critical thread is assigned a critical CPU budget, where the scheduler allows the critical thread to execute when the critical thread'"'"'s adaptive partition CPU budget has a zero value and when the critical thread'"'"'s adaptive partition critical CPU budget has a non-zero value.
-
Specification