. . . "As such, semaphores are widely used to prevent asynchronous accesses to resources such as devices or memory locations." . .