Create code solution using semaphores

A new example for cooperating processes, using semaphores to synchronize their processing and to maintain mutual exclusion on two shared variables, has been presented. This new example has three different types of processes instead of the normal two used in most previously cited examples. It also forces one type (the elf) to monitor the behavior of other processes of that type, as well as "getting in sync" with a different process (Santa).