When multiple copies of a software program reside on a single machine and need
to cooperate with each other to coordinate certain aspects of their execution,
an election process is conducted to elect one of the copies as a master or supervisor
copy, with the non-elected copies becoming slave or subordinate copies. Since only
one of the programs can succeed in being assigned the supervisor port number, the
first program to have its socket assigned to the supervisor port number becomes
the supervisor (e.g., the master) program; the other programs respond to the failure
of their request by assuming the role of a subordinate (e.g., a slave) program.