Common scheduling and synchronization primitives
First Claim
1. A method of executing code performing one or more operations corresponding to scheduling and synchronization primitives, the method comprising:
- performing, by said code during execution of said code, a call using an application programming interface requesting a first of said operations corresponding to one of said scheduling and synchronization primitives; and
determining, during runtime in response to said call, whether to perform said first operation, said determining using a set of one or more criteria indicating conditions as to when said scheduling and synchronization primitives are allowed to be performed, said one or more criteria being determined in accordance with a plurality of different platforms, if said determining determines that said first operation is allowable and said first operation is to be performed, then said code is allowed to be executed on each of said different platforms in a privileged execution mode and a non-privileged execution mode, wherein first code of the application programming interface provides a same set of functionality for both the privileged execution mode and the non-privileged execution mode, said same set of functionality including functionality in connection with a deferred procedure call and an interrupt service routine, wherein the first code of the application programming interface simulates functionality in connection with any of a deferred procedure call executed in the non-privileged execution mode and an interrupt service routine executed in the non-privileged execution mode using threads executed in the non-privileged execution mode.
9 Assignments
0 Petitions
Accused Products
Abstract
Described are techniques for executing code performing one or more operations corresponding to scheduling and synchronization primitives. During execution of the code, a call is performed using an application programming interface requesting a first of the operations corresponding to one of said scheduling and synchronization primitives. During runtime in response to said call, it is determined whether to perform the first operation. The determining step uses a set of one or more criteria indicating conditions as to when the scheduling and synchronization primitives are allowed to be performed. The one or more criteria are determined in accordance with a plurality of different platforms. If it is determined that the first operation is allowable and the first operation is to be performed, then the code can be executed on each of the different platforms in a privileged execution mode and a non-privileged execution mode.
72 Citations
20 Claims
-
1. A method of executing code performing one or more operations corresponding to scheduling and synchronization primitives, the method comprising:
-
performing, by said code during execution of said code, a call using an application programming interface requesting a first of said operations corresponding to one of said scheduling and synchronization primitives; and determining, during runtime in response to said call, whether to perform said first operation, said determining using a set of one or more criteria indicating conditions as to when said scheduling and synchronization primitives are allowed to be performed, said one or more criteria being determined in accordance with a plurality of different platforms, if said determining determines that said first operation is allowable and said first operation is to be performed, then said code is allowed to be executed on each of said different platforms in a privileged execution mode and a non-privileged execution mode, wherein first code of the application programming interface provides a same set of functionality for both the privileged execution mode and the non-privileged execution mode, said same set of functionality including functionality in connection with a deferred procedure call and an interrupt service routine, wherein the first code of the application programming interface simulates functionality in connection with any of a deferred procedure call executed in the non-privileged execution mode and an interrupt service routine executed in the non-privileged execution mode using threads executed in the non-privileged execution mode. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer readable medium comprising code stored thereon for providing a set of one or more scheduling and synchronization primitives, the non-transitory computer readable medium comprising code stored thereon for:
-
providing an application programming interface for performing one or more operations, each of said one or more operations corresponding to one of said scheduling and synchronization primitives; providing a set of one or more criteria indicating conditions as to when said scheduling and synchronization primitives are allowed to be performed; and determining, using said one or more criteria during execution of other code, whether to perform a requested one of said operations, said other code making a call using said application programming interface to perform said requested operation, said one or more criteria being determined in accordance with a plurality of different platforms, if said determining determines that said requested one of said operations is allowable and said requested operation is to be performed, then said other code is allowed to be executed on each of said different platforms in a privileged execution mode and a non-privileged execution mode, wherein first code of the application programming interface provides a same set of functionality for both the privileged execution mode and the non-privileged execution mode, said same set of functionality including functionality in connection with a deferred procedure call and an interrupt service routine, wherein the first code of the application programming interface simulates functionality in connection with any of a deferred procedure call executed in the non-privileged execution mode and an interrupt service routine executed in the non-privileged execution mode using threads executed in the non-privileged execution mode. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer readable medium comprising code stored thereon for providing a set of one or more scheduling and synchronization primitives, the non-transitory computer readable medium comprising code stored thereon for:
-
providing an application programming interface for performing one or more operations, each of said one or more operations corresponding to one of said scheduling and synchronization primitives; providing a set of one or more criteria indicating conditions as to when said scheduling and synchronization primitives are allowed to be performed, said conditions indicating allowable execution contexts using an execution level and a spin lock held indicator; and determining, during execution of other code, whether to perform a requested one of said operations using said one or more criteria, said other code making a call using said application programming interface to perform said requested operation, said one or more criteria being determined in accordance with a plurality of different platforms so that said other code is portable to each of said different platforms, and wherein said other code is executing in one of a user mode or a kernel mode, and said requested operation is performed in said user mode if said other code is executing in said user mode and is performed in said kernel mode if said other code is executing in said kernel mode, said criteria including kernel-mode semantics for features of said kernel mode simulated when executing in said user mode, wherein first code of the application programming interface provides a same set of functionality for both the user mode and the kernel mode, said same set of functionality including functionality in connection with a deferred procedure call and an interrupt service routine, wherein the first code of the application programming interface simulates functionality in connection with any of a deferred procedure call executed in the user mode and an interrupt service routine executed in the user mode using threads executed in the user mode.
-
Specification