User program and operating system interface in a multithreaded environment
First Claim
1. A method in a computer system for a server to coordinate assignment of a resource to clients, the method comprising:
- assigning the resource to a client;
receiving notification from the client assigned to the resource that the client is waiting for an occurrence of an event before the resource can be productively used;
upon receiving the notification, unassigning the resource from the client;
receiving an indication that the event has occurred; and
after receiving the indication, reassigning the resource to the client.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system that prepares a task for being swapped out from processor utilization that is executing on a computer with multiple processors that each support multiple streams. The task has one or more teams of threads, where each team represents threads executing on a single processor. The task designates, for each stream, one stream that is executing a thread as a team master stream. The task designates one stream that is executing a thread as a task master stream. For each team master stream, the task notifies the operating system that the team is ready to be swapped out when each other thread of the team has saved its state and has quit its stream. Finally, for the task master stream, the task notifies the operating system that the task is ready to be swapped when it has saved its state and each of the other teams have notified the operating system that that team is ready to be swapped out.
99 Citations
57 Claims
-
1. A method in a computer system for a server to coordinate assignment of a resource to clients, the method comprising:
-
assigning the resource to a client; receiving notification from the client assigned to the resource that the client is waiting for an occurrence of an event before the resource can be productively used; upon receiving the notification, unassigning the resource from the client; receiving an indication that the event has occurred; and after receiving the indication, reassigning the resource to the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method in a computer system for clients to coordinate assignment of a resource by a server, the method comprising:
-
determining whether the client cannot productively use the resource until an event occurs; and when the client determines that it cannot productively use the resource, notifying the server that the client cannot productively use the resource wherein the server unassigns the resource from the client until after an event occurs. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A computer-readable medium for causing an operating system executing on a computer to coordinate assignment of processor resources to task, by:
-
assigning a processor resource to a task, the task having productive instructions to execute using the assigned processor resource; receiving notification from the task assigned to the processor resource that the task is waiting for an occurrence of an event before the task can continue execution of the productive instructions upon receiving the notification, unassigning the processor resource from the task; and after occurrence of the event, reassigning the processor resource to the task. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36)
-
-
37. A computer-readable medium for causing clients executing on a computer system to coordinate assignment of a processor resource with an operating system, by:
-
under control of a task, determining whether the task cannot productively use the processor resource until an event occurs; and when the task determines that it cannot productively use the processor resource, notifying the operating system that the task cannot productively use the resource wherein the operating system unassigns the resource from the task until after an event occurs. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44)
-
-
45. A computer system for coordinating assignment of a processor to tasks, comprising:
-
means for determining whether a task cannot productively use the processor until an event occurs; means for notifying an operating system that the task cannot productively use the processor when the task determines that it cannot productively use the resource; and means for unassigning the task from the processor until after an event occurs. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57)
-
Specification