1. Build directed resource graphs
3. Algorithm detecting circularity executed whenever appropriate
4. Remove process using current resource and not waiting for one
5. Remove process waiting for one resource class not fully allocated
6. Repeat until all connecting lines removed