Organizing execution with groups and semaphores

Groups and semaphores help you to organize the execution of your program when you need to do the following: