Managing thread execution in a multitasking computing environment
First Claim
Patent Images
1. A method for managing thread execution, the method comprising:
- predicting, by one or more computer processors, an amount of processor usage that would be used by a thread in a computing system for execution of a critical section of code, where the critical section of code is defined by a starting marker and an ending marker in a program code that contains the critical section of code;
determining that the thread has a sufficient processor usage allowance to execute the critical section of code to completion; and
in response to determining that the thread has sufficient processor usage allowance to execute the critical section of code to completion;
scheduling, by one or more computer processors, the thread for execution of the critical section of code;
receiving, by one or more computer processors, a request to deschedule the thread, wherein the request is made in response to determining that the thread has insufficient processor usage allowance to continue execution;
responsive to receiving a request to deschedule the thread, scheduling, by one or more computer processors, the thread to complete execution of the critical section of code;
responsive to scheduling the thread to complete execution, determining, by one or more computer processors, processor usage debt accumulated by the thread;
determining that the thread has completed execution of the critical section of code;
responsive to determining that the thread has completed execution of the critical section of code, suspending the thread; and
preventing further execution of the thread until after the processor has executed one or more other threads for an amount of time equal to the amount of processor usage debt accumulated by the thread;
wherein;
the predicted amount of processor usage is a percentage of total execution capacity of the processor that the thread is predicted to use during execution of the critical section of code;
the processor usage debt comprises an amount of time for which the thread is executing while the thread has both insufficient processor usage allowance to continue execution and is executing the critical section of code; and
the one or more computer processors are one or more field programmable gate arrays.
1 Assignment
0 Petitions
Accused Products
Abstract
A thread in a computing system is processed for execution of instructions to perform an action. The action is one of the following: accessing a shared resource or executing a critical section of code. A schedule of the thread is managed. The management prevents suspension of the thread during execution of the action.
15 Citations
3 Claims
-
1. A method for managing thread execution, the method comprising:
-
predicting, by one or more computer processors, an amount of processor usage that would be used by a thread in a computing system for execution of a critical section of code, where the critical section of code is defined by a starting marker and an ending marker in a program code that contains the critical section of code; determining that the thread has a sufficient processor usage allowance to execute the critical section of code to completion; and in response to determining that the thread has sufficient processor usage allowance to execute the critical section of code to completion; scheduling, by one or more computer processors, the thread for execution of the critical section of code; receiving, by one or more computer processors, a request to deschedule the thread, wherein the request is made in response to determining that the thread has insufficient processor usage allowance to continue execution; responsive to receiving a request to deschedule the thread, scheduling, by one or more computer processors, the thread to complete execution of the critical section of code; responsive to scheduling the thread to complete execution, determining, by one or more computer processors, processor usage debt accumulated by the thread; determining that the thread has completed execution of the critical section of code; responsive to determining that the thread has completed execution of the critical section of code, suspending the thread; and preventing further execution of the thread until after the processor has executed one or more other threads for an amount of time equal to the amount of processor usage debt accumulated by the thread; wherein; the predicted amount of processor usage is a percentage of total execution capacity of the processor that the thread is predicted to use during execution of the critical section of code; the processor usage debt comprises an amount of time for which the thread is executing while the thread has both insufficient processor usage allowance to continue execution and is executing the critical section of code; and the one or more computer processors are one or more field programmable gate arrays.
-
-
2. A computer program product for managing thread execution, the computer program product comprising:
-
one or more computer readable storage media; and program instructions stored on the one or more computer readable storage media, the program instructions comprising; program instructions to predict, by one or more computer processors, an amount of processor usage that would be used by a thread in a computing system for execution of a critical section of code, where the critical section of code is defined by a starting marker and an ending marker in a program code that contains the critical section of code; program instructions to determine that the thread has a sufficient processor usage allowance to execute the critical section of code to completion; and in response to determining that the thread has sufficient processor usage allowance to execute the critical section of code to completion; program instructions to schedule the thread for execution of the critical section of code; program instructions to receive a request to deschedule the thread, wherein the request is made in response to determining that the thread has insufficient processor usage allowance to continue execution; responsive to receiving the request to deschedule the thread, program instructions, to schedule the thread to complete execution of the critical section of code; responsive to scheduling the thread to complete execution, program instructions, to determine processor usage debt accumulated by the thread; program instructions to determine that the thread has completed execution of the critical section of code; responsive to determining that the thread has completed execution of the critical section of code, program instructions to suspend the thread; and program instructions to prevent further execution of the thread until after the processor has executed one or more other threads for an amount of time equal to the amount of processor usage debt accumulated by the thread; wherein; the predicted amount of processor usage is a percentage of total execution capacity of the processor that the thread is predicted to use during execution of the critical section of code; the processor usage debt comprises an amount of time for which the thread is executing while the thread has both insufficient processor usage allowance to continue execution and is executing the critical section of code; and the one or more computer processors are one or more field programmable gate arrays.
-
-
3. A computer system for managing thread execution, the computer system comprising:
-
one or more computer processors; one or more computer readable storage media; and program instructions, stored on the one or more computer readable storage media, for execution by at least one of the one or more computer processors, the program instructions comprising; program instructions to predict, by one or more computer processors, an amount of processor usage that would be used by a thread in a computing system for execution of a critical section of code, where the critical section of code is defined by a starting marker and an ending marker in a program code that contains the critical section of code; program instructions to determine that the thread has a sufficient processor usage allowance to execute the critical section of code to completion; and in response to determining that the thread has sufficient processor usage allowance to execute the critical section of code to completion; program instructions to schedule the thread for execution of the critical section of code; program instructions to receive a request to deschedule the thread, wherein the request is made in response to determining that the thread has insufficient processor usage allowance to continue execution; responsive to receiving the request to deschedule the thread, program instructions, to schedule the thread to complete execution of the critical section of code; responsive to scheduling the thread to complete execution, program instructions, to determine processor usage debt accumulated by the thread; program instructions to determine that the thread has completed execution of the critical section of code; responsive to determining that the thread has completed execution of the critical section of code, program instructions to suspend the thread; and program instructions to prevent further execution of the thread until after the processor has executed one or more other threads for an amount of time equal to the amount of processor usage debt accumulated by the thread; wherein; the predicted amount of processor usage is a percentage of total execution capacity of the processor that the thread is predicted to use during execution of the critical section of code; the processor usage debt comprises an amount of time for which the thread is executing while the thread has both insufficient processor usage allowance to continue execution and is executing the critical section of code; and the one or more computer processors are one or more field programmable gate arrays.
-
Specification