Process

Thread

Synchronization

Critical section requirements

Progress guarantees

Algorithms can be further put into a hierarchy based on how strong they guarantee about progress: