Transparent user mode scheduling on traditional threading systems
First Claim
Patent Images
1. A method, comprising:
- receiving an original asynchronous procedure call (APC) on a kernel portion of a user mode schedulable (UMS) thread during an execution of the UMS thread, the UMS thread including a UMS thread user portion for execution in the user mode and a UMS thread kernel portion for execution in a kernel mode that are independently managed by an application, in which execution switch between the UMS thread user portion and the UMS thread kernel portion during the execution of the UMS thread is performed via a primary thread that exchange context information with the UMS thread, the primary thread having a primary thread user portion and a primary thread kernel portion that are managed in unison by the application;
determining a status of the UMS thread that is being processed in a multi-processor environment, wherein the status includes one of the UMS thread executing in kernel mode, the UMS thread executing via the primary thread in user mode, the UMS thread engaging in a context migration with the primary thread, the UMS thread being idle, the UMS thread engaging in a context loading with the primary thread, or the UMS thread engaging in a context saving with the primary thread; and
processing the original APC on the UMS thread based on the status of the UMS thread.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments for performing cooperative user mode scheduling between user mode schedulable (UMS) threads and primary threads are disclosed. In accordance with one embodiment, an asynchronous procedure call (APC) is received on a kernel portion of a user mode schedulable (UMS) thread. The status of the UMS thread as it is being processed in a multi-processor environment is determined. Based on the determined status, the APC is processed on the UMS thread.
37 Citations
19 Claims
-
1. A method, comprising:
-
receiving an original asynchronous procedure call (APC) on a kernel portion of a user mode schedulable (UMS) thread during an execution of the UMS thread, the UMS thread including a UMS thread user portion for execution in the user mode and a UMS thread kernel portion for execution in a kernel mode that are independently managed by an application, in which execution switch between the UMS thread user portion and the UMS thread kernel portion during the execution of the UMS thread is performed via a primary thread that exchange context information with the UMS thread, the primary thread having a primary thread user portion and a primary thread kernel portion that are managed in unison by the application; determining a status of the UMS thread that is being processed in a multi-processor environment, wherein the status includes one of the UMS thread executing in kernel mode, the UMS thread executing via the primary thread in user mode, the UMS thread engaging in a context migration with the primary thread, the UMS thread being idle, the UMS thread engaging in a context loading with the primary thread, or the UMS thread engaging in a context saving with the primary thread; and processing the original APC on the UMS thread based on the status of the UMS thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer readable memory storing computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:
-
receiving an original asynchronous procedure call (APC) on a kernel portion of a user mode schedulable (UMS) thread; determining that the UMS thread is engaging in a context migration with a primary thread; providing an indicator to signal that the primary thread is ready to transfer new context information to the UMS thread in response to an disassociate APC that is generated based on an original APC; pulling new context information from a primary thread kernel portion to a staging area in a UMS thread kernel portion of the an original APC; replacing old context information of the UMS thread kernel portion with the new context information in the staging area; and executing the original APC on a UMS thread user portion to one of retrieve or modify the new context information of the UMS thread kernel portion. - View Dependent Claims (15, 16)
-
-
17. A computer readable memory storing computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:
-
receiving an original asynchronous procedure call (APC) on a kernel portion of a user mode schedulable (UMS) thread; determining that the UMS thread is engaged in context saving with a primary thread; completing a replacement of first context information in a UMS thread user portion with second context information from a primary thread user portion in response to a disassociate APC, the disassociate APC being generated based on an original APC; executing the original APC on the UMS thread user portion to one of retrieve or modify the first context information of the UMS thread user portion; and repeating the replacement of the first context information in the UMS thread user portion with the second context information from the primary thread user portion. - View Dependent Claims (18, 19)
-
Specification