Ordered and reliable signal delivery in a distributed multiprocessor
AssigneeTandem Computers Incorporated
InventorsRamin Modiri, Srinivasa D. Murthy, Alan L. Rowe
Life of this patent
Estimating the term…
Abstract
An apparatus and method, using an inter-processor lock to coordinate signal delivery to a process group whose member processes are distributed across multiple processors. The apparatus and method insure that each process group member process receives the same signals in the same order and that no signal is duplicated. The apparatus and method also insure that a partially completed signal delivery is completed even in the face of failure of the signalling processor.
Claims42
A method for ordering the delivery of signals to a process in a distributed data processing system, the system having a plurality of distributed, interconnected processors, each of said processors having a memory, said method comprising:
- ordering said plurality of processors;
- establishing one of said plurality of processors as a control processor that maintains a global lock;
- generating on a first signalling processor between or among (hereinafter, "among") said plurality of processors a first signal for delivery to said process;
- generating on a second signalling processor among said plurality of processors a second signal for delivery to said process;
- after said first step of generating, requesting of said control processor for said first signalling processor said global lock;
- after said step of requesting, requesting of said control processor for said second signalling processor said global lock;
- after said step of requesting for said first signalling processor, acknowledging to said first signalling processor that said first signalling processor has the global lock;
- after said step of requesting for said second signalling processor, failing to acknowledge to said second processor that said second signalling processor has said global lock;
- after said step of acknowledging, sending said first signal to each of said plurality of processors in order;
- after said step of failing to acknowledge, refraining from sending said second signal to any of said plurality of processors;
- after said step of sending, relinquishing said global lock to said control processor;
- receiving said first signal;
- then delivering said first signal to said process;
- and
- then delivering said second signal to said process.
A method for ordering the delivery of signals to a group of processes in a distributed data processing system, the system having a plurality of distributed, interconnected processors, each of said processors having a memory, said method comprising:
- ordering said plurality of processors;
- establishing one of said plurality of processors as a control processor that maintains a global lock;
- generating on a first signalling processor between or among (hereinafter, "among") said plurality of processors a first signal for delivery to said process group;
- generating on a second signalling processor among said plurality of processors a second signal for delivery to said process group;
- after said first step of generating a first signal, requesting of said control processor for said first signalling processor said global lock;
- after said step of requesting for said first signalling processor, requesting of said control processor for said second signalling processor said global lock;
- after said step of requesting for said first signalling processor, acknowledging to said first signalling processor that said first signalling processor has the global lock;
- after said step of requesting for said second signalling processor, failing to acknowledge to said second processor that said second signalling processor has said global lock;
- after said step of acknowledging, sending said first signal to each of said plurality of processors in order;
- after said step of failing to acknowledge, refraining from sending said second signal to any of said plurality of processors;
- after said step of sending, relinquishing said global lock to said control processor;
- receiving said first signal;
- then delivering said first signal to said process group;
- and
- then delivering said second signal to said process group.
In a distributed data processing system, a method for ordering the delivery of a signal to a group of processes and a change of membership in said process group, the system having a plurality of distributed, interconnected processors, each of said processors having a memory, said method comprising:
- ordering said plurality of processors;
- establishing one of said plurality of processors as a control processor that maintains a global lock;
- generating on a signalling processor between or among (hereinafter, "among") said plurality of processors a signal for delivery to said process group;
- generating on a changing processor among said plurality of processors a change in membership of said process group;
- after said step of generating a signal, requesting of said control processor for said signalling processor said global lock;
- after said step of generating a change, requesting of said control processor for said changing processor said global lock;
- after said step of requesting for said signalling processor, acknowledging to said signalling processor that said signalling processor has the global lock;
- after said step of requesting for said changing processor, failing to acknowledge to said changing processor that said changing processor has said global lock;
- after said step of acknowledging, sending said signal to each of said plurality of processors in order;
- after said step of failing to acknowledge, refraining from changing said process group according to said change in membership;
- after said step of sending, relinquishing said global lock to said control processor;
- receiving said signal;
- then delivering said signal to said process group;
- and
- then changing said process group according to said change in membership.
In a distributed data processing system, a method for ordering the delivery of a signal to a group of processes and a change of membership in said process group, the system having a plurality of distributed, interconnected processors, each of said processors having a memory, said method comprising:
- ordering said plurality of processors;
- establishing one of said plurality of processors as a control processor that maintains a global lock;
- generating on a signalling processor between or among (hereinafter, "among") said plurality of processors a signal for delivery to said process group;
- generating on a changing processor among said plurality of processors a change in membership of said process group;
- after said step of generating a signal, requesting of said control processor for said signalling processor said global lock;
- after said step of generating a change, requesting of said control processor for said changing processor said global lock;
- after said step of requesting for said changing processor, acknowledging to said changing processor that said changing processor has the global lock;
- after said step of requesting for said signalling processor, failing to acknowledge to said signalling processor that said signalling processor has said global lock;
- after said step of acknowledging, sending said change to each of said plurality of processors in order;
- after said step of failing to acknowledge, refraining from sending said signal;
- after said step of sending, relinquishing said global lock to said control processor;
- receiving said change;
- then changing said process group according to said change in membership;
- and
- then delivering said signal to said process group.
An article of manufacture comprising a medium for data storage wherein is located a computer program for causing a distributed data processing system having a plurality of distributed, interconnected processors to order the delivery of signals to a process by
- ordering said plurality of processors;
- establishing one of said plurality of processors as a control processor that maintains a global lock;
- generating on a first signalling processor between or among (hereinafter, "among") said plurality of processors a first signal for delivery to said process;
- generating on a second signalling processor among said plurality of processors a second signal for delivery to said process;
- after said first step of generating, requesting of said control processor for said first signalling processor said global lock;
- after said step of requesting, requesting of said control processor for said second signalling processor said global lock;
- after said step of requesting for said first signalling processor, acknowledging to said first signalling processor that said first signalling processor has the global lock;
- after said step of requesting for said second signalling processor, failing to acknowledge to said second processor that said second signalling processor has said global lock;
- after said step of acknowledging, sending said first signal to each of said plurality of processors in order;
- after said step of failing to acknowledge, refraining from sending said second signal to any of said plurality of processors;
- after said step of sending, relinquishing said global lock to said control processor;
- receiving said first signal;
- then delivering said first signal to said process;
- and
- then delivering said second signal to said process.
An article of manufacture comprising a medium for data storage wherein is located a computer program for causing a distributed data processing system having a plurality of distributed, interconnected processors to order the delivery of signals to a group of processes by
- ordering said plurality of processors;
- establishing one of said plurality of processors as a control processor that maintains a global lock;
- generating on a first signalling processor between or among (hereinafter, "among") said plurality of processors a first signal for delivery to said process group;
- generating on a second signalling processor among said plurality of processors a second signal for delivery to said process group;
- after said first step of generating a first signal, requesting of said control processor for said first signalling processor said global lock;
- after said step of requesting for said first signalling processor, requesting of said control processor for said second signalling processor said global lock;
- after said step of requesting for said first signalling processor, acknowledging to said first signalling processor that said first signalling processor has the global lock;
- after said step of requesting for said second signalling processor, failing to acknowledge to said second processor that said second signalling processor has said global lock;
- after said step of acknowledging, sending said first signal to each of said plurality of processors in order;
- after said step of failing to acknowledge, refraining from sending said second signal to any of said plurality of processors;
- after said step of sending, relinquishing said global lock to said control processor;
- receiving said first signal;
- then delivering said first signal to said process group;
- and
- then delivering said second signal to said process group.
An article of manufacture comprising a medium for data storage wherein is located a computer program for causing a distributed data processing system having a plurality of distributed, interconnected processors to order the delivery of a signal to a group of processes and a change of membership in said process group by
- ordering said plurality of processors;
- establishing one of said plurality of processors as a control processor that maintains a global lock;
- generating on a signalling processor between or among (hereinafter, "among") said plurality of processors a signal for delivery to said process group;
- generating on a changing processor among said plurality of processors a change in membership of said process group;
- after said step of generating a signal, requesting of said control processor for said signalling processor said global lock;
- after said step of generating a change, requesting of said control processor for said changing processor said global lock;
- after said step of requesting for said changing processor, acknowledging to said changing processor that said changing processor has the global lock;
- after said step of requesting for said signalling processor, failing to acknowledge to said signalling processor that said signalling processor has said global lock;
- after said step of acknowledging, sending said change to each of said plurality of processors in order;
- after said step of failing to acknowledge, refraining from sending said signal;
- after said step of sending, relinquishing said global lock to said control processor;
- receiving said change;
- then changing said process group according to said change in membership;
- and
- then delivering said signal to said process group.
An article of manufacture comprising a medium for data storage wherein is located a computer program for causing a distributed data processing system having a plurality of distributed, interconnected processors to order the delivery of a signal to a group of processes and a change of membership in said process group by
- ordering said plurality of processors;
- establishing one of said plurality of processors as a control processor that maintains a global lock;
- generating on a signalling processor between or among (hereinafter, "among") said plurality of processors a signal for delivery to said process group;
- generating on a changing processor among said plurality of processors a change in membership of said process group;
- after said step of generating a signal, requesting of said control processor for said signalling processor said global lock;
- after said step of generating a change, requesting of said control processor for said changing processor said global lock;
- after said step of requesting for said signalling processor, acknowledging to said signalling processor that said signalling processor has the global lock;
- after said step of requesting for said changing processor, failing to acknowledge to said changing processor that said changing processor has said global lock;
- after said step of acknowledging, sending said signal to each of said plurality of processors in order;
- after said step of failing to acknowledge, refraining from changing said process group according to said change in membership;
- after said step of sending, relinquishing said global lock to said control processor;
- receiving said signal;
- then delivering said signal to said process group;
- and
- then changing said process group according to said change in membership.
Dependencies are inferred from the claim text.