Scalable interruptible queue locks for shared-memory multiprocessor
First Claim
1. A method for a computation agent to acquire a queue lock in a multiprocessor system that prevents deadlock between said computation agent and external interrupts, comprising the steps of:
- (a) joining a queue to acquire a lock;
(b) receiving ownership of said lock;
(c) raising a first priority level of said computation agent to a higher second priority level in response to receiving ownership of said lock;
(d) relinquishing ownership of said lock in response to a receipt of an external interrupt having a higher priority level, wherein said external interrupt occurs prior to said computation agent raising its priority level to said second priority level;
(e) determining if said computation agent has acquired possession of said lock after it has raised its priority level; and
(f) repeating step (a) in response to said determination that said computation agent has not acquired possession of said lock.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for a computation agent to acquire a queue lock in a multiprocessor system that prevents deadlock between the computation agent and external interrupts. The method provides for the computation agent to join a queue to acquire a lock. Next, upon receiving ownership of the lock, the computation agent raises its priority level to a higher second priority level. In response to a receipt of an external interrupt having a higher priority level occurring before the computation agent has raised its priority level to the second higher priority level, the computation agent relinquishes ownership of the lock. Subsequent to raising its priority level to the second higher priority level, the computation agent determines if it still has ownership of the lock. If the computation agent determines that it has not acquired possession of the lock after raising its priority level, the computation agent rejoins the queue to reacquire the lock. In one embodiment of the present invention, the computation agent'"'"'s priority level is restored to its original, i.e., first priority level, when it rejoins the queue to reacquire the lock.
-
Citations
26 Claims
-
1. A method for a computation agent to acquire a queue lock in a multiprocessor system that prevents deadlock between said computation agent and external interrupts, comprising the steps of:
-
(a) joining a queue to acquire a lock;
(b) receiving ownership of said lock;
(c) raising a first priority level of said computation agent to a higher second priority level in response to receiving ownership of said lock;
(d) relinquishing ownership of said lock in response to a receipt of an external interrupt having a higher priority level, wherein said external interrupt occurs prior to said computation agent raising its priority level to said second priority level;
(e) determining if said computation agent has acquired possession of said lock after it has raised its priority level; and
(f) repeating step (a) in response to said determination that said computation agent has not acquired possession of said lock. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product, comprising:
-
a computer-readable medium having stored thereon computer executable instructions for implementing queue locks in a multiprocessor system that prevents deadlock between a computation agent and external interrupts when said computation agent is attempting to acquire a lock, said computer executable instructions when executed, perform the steps of;
(a) joining a queue to acquire a lock;
(b) receiving ownership of said lock;
(c) raising a first priority level of said computation agent to a higher second priority level in response to receiving ownership of said lock;
(d) relinquishing ownership of said lock in response to a receipt of an external interrupt having a higher priority level, wherein said external interrupt occurs prior to said computation agent raising its priority level to said second priority level;
(e) determining if said computation agent has acquired possession of said lock after it has raised its priority level; and
(f) repeating step (a) in response to said determination that said computation agent has not acquired possession of said lock. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A multiprocessor system, comprising:
-
a plurality of processors;
a shared memory;
a system bus for interconnecting said shared memory and said plurality of processors; and
means for a computation agent to acquire a queue lock that prevents deadlock between said computation agent and external interrupts, including;
means for joining a queue to acquire a lock;
means for receiving ownership of said lock;
means for raising a first priority level of said computation agent to a higher second priority level in response to receiving ownership of said lock;
means for relinquishing ownership of said lock in response to a receipt of an external interrupt having a higher priority level, wherein said external interrupt occurs prior to said computation agent raising its priority level to said second priority level; and
means for determining if said computation agent has acquired possession of said lock after it has raised its priority level. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
Specification