23.2. Process groups

Many algorithms assume that a certain number of components are participating, indeed the algorithm may make use of the number of processes involved and their identities. Before such an algorithm commences we need to have a means of controlling group membership. Typical primitives for managing groups are as follows:

create(group-name, <list-of-processes>)
kill(group-name)
join(group-name, process)
leave(group-name, process)

The system may provide a 'group server' to which all these requests must be sent or it may be that join and leave may be sent to any member of the group. It would of course be necessary for a process to have the necessary access privilege to be able to kill a group.

It is necessary to specify whether communication ...

Get Operating Systems: Concurrent and Distributed Software Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.