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.
Un método para que un agente del cómputo adquiera una cerradura de la coleta en un sistema del multiprocesador que previene callejón sin salida entre el agente del cómputo y las interrupciones externas. El método preve el agente del cómputo para ensamblar una coleta para adquirir una cerradura. Después, sobre la recepción de la propiedad de la cerradura, el agente del cómputo levanta su nivel de la prioridad a un segundo nivel más alto de la prioridad. En respuesta a un recibo de una interrupción externa que tiene ocurrir llano de una prioridad más alta antes de que el agente del cómputo haya levantado su nivel de la prioridad al segundo nivel de una prioridad más alta, el agente del cómputo abandona la propiedad de la cerradura. Subsecuente a levantar su nivel de la prioridad al segundo nivel de una prioridad más alta, el agente del cómputo se determina si todavía tiene propiedad de la cerradura. Si el agente del cómputo se determina que no ha adquirido la posesión de la cerradura después de levantar su nivel de la prioridad, el agente del cómputo contesta la coleta al reacquire la cerradura. En una encarnación de la actual invención, el nivel de la prioridad del agente del cómputo se restaura a su original, es decir, primer nivel de la prioridad, cuando contesta la coleta al reacquire la cerradura.