Claims Analysis
Total Claims: 18
Claim 1
Independent Claim
175 words
In a computer system having a data processing unit, memory, and a multitasking operating system that supports multiple threads of execution in a shared address space, a resource allocation subsystem comprising: an initialization procedure, executable by said data processing unit, for initializing monitors, where each monitor is stored in said memory and has an associated event data structure denoting the status of said monitor as Signaled or Unsignaled, each monitor further storing epoch information; a notify procedure, executable by said data processing unit, for updating any specified one of said monitors to said Signaled status and for updating said epoch information to indicate an epoch value associated with said updating of said specified monitor's status to Signaled; and a wait procedure, executable by said data processing unit, for blocking execution of any calling thread of execution until a specified monitor's status is updated to Signaled and said specified monitor's epoch information indicates an epoch value distinct from a starting epoch value comprising said epoch value when said calling thread of execution called said wait procedure.
Claim 2
Dependent Claim
175 words
In a computer system having a data processing unit, memory, and a multitasking operating system that supports multiple threads of execution in a shared address space, a resource allocation subsystem comprising: an initialization procedure, executable by said data processing unit, for initializing monitors, where each monitor is stored in said memory and has an associated event data structure denoting the status of said monitor as Signaled or Unsignaled, each monitor further storing epoch information; a notify procedure, executable by said data processing unit, for updating any specified one of said monitors to said Signaled status and for updating said epoch information to indicate an epoch value associated with said updating of said specified monitor's status to Signaled; and a wait procedure, executable by said data processing unit, for blocking execution of any calling thread of execution until a specified monitor's status is updated to Signaled and said specified monitor's epoch information indicates an epoch value distinct from a starting epoch value comprising said epoch value when said calling thread of execution called said wait procedure.
Claim 3
Dependent Claim
28 words
The resource allocation subsystem of claim 1, said wait procedure including instructions for releasing ownership of said specified monitor and performing said execution blocking as an atomic operation.
Claim 4
Dependent Claim
145 words
The resource allocation subsystem of claim 2, each monitor further storing waiters information indicating how many threads are waiting on said monitor, and tickets information indicating how many of said waiting threads are to receive notifications; said notify procedure further for updating said specified monitor's tickets information to indicate that a number of threads are to receive notifications, where said number of threads is at least one; and said wait procedure further includes instructions for checking said specified monitor's tickets information when specified monitors status is updated to Signaled and said specified monitor's epoch information indicates an epoch value distinct from said starting epoch value, for unblocking said calling thread of execution when said checked tickets information indicates a non-zero tickets value and for decrementing said tickets value to indicate that said calling thread of execution has consumed one ticket associated with said associated monitor.
Claim 5
Dependent Claim
213 words
The resource allocation subsystem of claim 1, each monitor further storing a waiters value indicating how many threads are waiting on said monitor, and a tickets value indicating how many of said waiting threads are to receive notifications; said notify procedure further for increasing said specified monitor's tickets value by one to indicate that one additional thread is to receive a notification; said wait procedure further includes instructions for checking said specified monitor's tickets value when specified monitor's status is updated to Signaled and said specified monitor's epoch information indicates an epoch value distinct from said epoch value when said calling thread of execution called said wait procedure, for unblocking said calling thread of execution when said tickets value is non-zero and for decrementing said tickets value to indicate that said calling thread of execution has consumed one ticket associated with said specified monitor; further including: a second notify procedure, executable by said data processing unit, for updating any specified one of said monitors to said Signaled status, for updating said epoch information to indicate an epoch value associated with said updating of said specified monitor's status to Signaled, and for setting said specified monitor's tickets value to said waiters value so as to indicate that all waiting threads are to receive notifications.
Claim 6
Dependent Claim
153 words
The resource allocation subsystem of claim 4, further including: a timed wait procedure, executable by said data processing unit, for blocking execution of any calling thread of execution until (A) a specified time elapses or (B) a specified monitor's status is updated to Signaled and said specified monitor's epoch information indicates an epoch value distinct from said epoch value when said calling thread of execution called said timed wait procedure; said timed wait procedure including instructions for checking said specified monitor's tickets value when specified monitor's status is updated to Signaled and said specified monitor's epoch information indicates an epoch value distinct from said epoch Value when said calling thread of execution called said timed wait procedure, for unblocking said calling thread of execution when said tickets value is non-zero and for decrementing said tickets value to indicate that said calling thread of execution has consumed one ticket associated with said specified monitor.
Claim 7
Dependent Claim
239 words
In a computer system having a data processing unit, memory, and a multitasking operating system that supports multiple threads of execution in a shared address space, a resource allocation subsystem comprising: an initialization procedure for initializing monitors, where each monitor is stored in said memory and has an associated event data structure denoting the status of said monitor as Signaled or Unsignaled, each monitor further storing waiters information indicating how many threads are waiting on said monitor, tickets information indicating how many of said waiting threads are to receive notifications, and epoch information; a notify procedure for updating any specified one of said monitors to said Signaled status and for updating said specified monitor's tickets information to indicate that a number of threads are to receive notifications, where said number of threads is at least one, and for updating said epoch information to indicate an epoch value associated with said updating of said specified monitor's status to Signaled; a wait procedure, executable by said data processing unit, for blocking execution of a calling thread of execution until a specified monitors status is updated to Signaled, said specified monitor's epoch information indicates an epoch value distinct from said epoch value when said calling thread called said wait procedure, and said tickets information indicates a non-zero tickets value, and for decrementing said tickets value to indicate that said calling thread of execution has consumed one ticket associated with said specified monitor.
Claim 8
Dependent Claim
239 words
In a computer system having a data processing unit, memory, and a multitasking operating system that supports multiple threads of execution in a shared address space, a resource allocation subsystem comprising: an initialization procedure for initializing monitors, where each monitor is stored in said memory and has an associated event data structure denoting the status of said monitor as Signaled or Unsignaled, each monitor further storing waiters information indicating how many threads are waiting on said monitor, tickets information indicating how many of said waiting threads are to receive notifications, and epoch information; a notify procedure for updating any specified one of said monitors to said Signaled status and for updating said specified monitor's tickets information to indicate that a number of threads are to receive notifications, where said number of threads is at least one, and for updating said epoch information to indicate an epoch value associated with said updating of said specified monitor's status to Signaled; a wait procedure, executable by said data processing unit, for blocking execution of a calling thread of execution until a specified monitors status is updated to Signaled, said specified monitor's epoch information indicates an epoch value distinct from said epoch value when said calling thread called said wait procedure, and said tickets information indicates a non-zero tickets value, and for decrementing said tickets value to indicate that said calling thread of execution has consumed one ticket associated with said specified monitor.
Claim 9
Dependent Claim
28 words
The resource allocation subsystem of claim 6, said wait procedure including instructions for releasing ownership of said specified monitor and performing said execution blocking as an atomic operation.
Claim 10
Dependent Claim
166 words
In a computer system having a data processing unit, memory, and a multitasking operating system that supports multiple threads of execution in a shared address space, a method of operating the computer system, comprising the steps of: providing at least one monitor, stored in said memory, that has an associated event data structure denoting the status of said monitor as Signaled or Unsignaled, each monitor further storing epoch information; performing a notify operation on any specified one of said monitors by updating said specified monitor to said Signaled status and updating said specified monitor's epoch information to indicate an epoch value associated with said updating of said specified monitor's status to Signaled; and performing a wait operation by blocking execution of any calling thread of execution until a specified monitor's status is updated to Signaled and said specified monitor's epoch information indicates an epoch value distinct from a starting epoch value comprising said epoch value when said calling thread of execution began performing said wait operation.
Claim 11
Dependent Claim
166 words
In a computer system having a data processing unit, memory, and a multitasking operating system that supports multiple threads of execution in a shared address space, a method of operating the computer system, comprising the steps of: providing at least one monitor, stored in said memory, that has an associated event data structure denoting the status of said monitor as Signaled or Unsignaled, each monitor further storing epoch information; performing a notify operation on any specified one of said monitors by updating said specified monitor to said Signaled status and updating said specified monitor's epoch information to indicate an epoch value associated with said updating of said specified monitor's status to Signaled; and performing a wait operation by blocking execution of any calling thread of execution until a specified monitor's status is updated to Signaled and said specified monitor's epoch information indicates an epoch value distinct from a starting epoch value comprising said epoch value when said calling thread of execution began performing said wait operation.
Claim 12
Dependent Claim
28 words
The method of claim 8, said step of performing a wait operation including releasing ownership of said specified monitor and performing said execution blocking as an atomic operation.
Claim 13
Dependent Claim
146 words
The method of claim 9, each monitor further storing waiters information indicating how many threads are waiting on said monitor, and tickets information indicating how many of said waiting threads are to receive notifications; said step or performing a notify operation including updating said specified monitor's tickets information to indicate that a number of threads are to receive notifications, where said number of threads is at least one; and said set of performing a wait operation including checking said specified monitor's tickets information when said specified monitor's status is updated to Signaled and said specified monitor's epoch information indicates an epoch value distinct from said starting epoch value, unblocking said calling thread of execution when said checked tickets information indicates a non-zero tickets value, and decrementing said tickets value to indicate that said calling thread of execution has consumed one ticket associated with said associated monitor.
Claim 14
Dependent Claim
197 words
The method of claim 8, each monitor further storing a waiters value indicating how many threads are waiting on said monitor, and a tickets value indicating how many of said waiting threads are to receive notifications; said step of performing a notify operation including increasing said specified monitors tickets value by one to indicate that one additional thread is to receive a notification; said step of performing a wait operation including checking said specified monitor's tickets value when specified monitor's status is updated to Signaled and said specified monitor's epoch information indicates an epoch value distinct from said starting epoch value, unblocking said calling thread of execution when said tickets value is non-zero, and decrementing said tickets value to indicate that said calling thread of execution has consumed one ticket associated with said specified monitor; further including: performing a second notify operation by updating any specified one of said monitors to said Signaled status, updating said epoch information to indicate an epoch value associated with said updating of said specified monitor's status to Signaled, and setting said specified monitors tickets value to said waiters value so as to indicate that all waiting threads are to receive notifications.
Claim 15
Dependent Claim
126 words
The method of claim 11, further including: performing a timed wait operation by blocking execution of any calling thread of execution until (A) a specified time elapses or (B) a specified monitor's status is updated to Signaled and said specified monitors epoch information indicates an epoch value distinct from said starting epoch value; said step of performing a timed wait operation including checking said specified monitor's tickets value when specified monitor's status is updated to Signaled and said specified monitors epoch information indicates an epoch value distinct from said starting epoch value, unblocking said calling thread of execution when said tickets value is non-zero, and decrementing said tickets value to indicate that said calling thread of execution has consumed one ticket associated with said specified monitor.
Claim 16
Dependent Claim
248 words
In a computer system having a data processing unit, memory, and a multitasking operating system that supports multiple threads of execution in a shared address space, a method of operating the computer system, comprising the steps of: providing at least one monitor, stored in said memory, that has an associated event data structure denoting the status of said monitor as Signaled or Unsignaled, each monitor further storing waiters information indicating how many threads are waiting on said monitor, tickets information indicating how many of said waiting threads are to receive notifications, and epoch information; performing a notify operation on any specified one of said monitors by updating said specified monitor to said Signaled status, updating said specified monitors epoch information to indicate an epoch value associated with said updating of said specified monitor's status to Signaled, and updating said specified monitor's tickets information to indicate that a number of threads are to receive notifications, where said number of threads is at least one; and performing a wait operation by blocking execution of any calling thread of execution until a specified monitor's status is updated to Signaled, said specified monitor's epoch information indicates an epoch value distinct from a starting epoch value comprising said epoch value when said calling thread of execution began performing said wait operation, and said tickets information indicates a non-zero tickets value, and then decrementing said tickets value to indicate that said calling thread of execution has consumed one ticket associated with said specified monitor.
Claim 17
Dependent Claim
248 words
In a computer system having a data processing unit, memory, and a multitasking operating system that supports multiple threads of execution in a shared address space, a method of operating the computer system, comprising the steps of: providing at least one monitor, stored in said memory, that has an associated event data structure denoting the status of said monitor as Signaled or Unsignaled, each monitor further storing waiters information indicating how many threads are waiting on said monitor, tickets information indicating how many of said waiting threads are to receive notifications, and epoch information; performing a notify operation on any specified one of said monitors by updating said specified monitor to said Signaled status, updating said specified monitors epoch information to indicate an epoch value associated with said updating of said specified monitor's status to Signaled, and updating said specified monitor's tickets information to indicate that a number of threads are to receive notifications, where said number of threads is at least one; and performing a wait operation by blocking execution of any calling thread of execution until a specified monitor's status is updated to Signaled, said specified monitor's epoch information indicates an epoch value distinct from a starting epoch value comprising said epoch value when said calling thread of execution began performing said wait operation, and said tickets information indicates a non-zero tickets value, and then decrementing said tickets value to indicate that said calling thread of execution has consumed one ticket associated with said specified monitor.
Claim 18
Dependent Claim
28 words
The method of claim 13, said step of performing a wait operation including releasing ownership of said specified monitor and performing said execution blocking as an atomic operation.