This project is implemented in C. Firstly, we create components of different types (A, B or C). These components should pass successfully through four other levels, and in the end, they will be combined in order to create some products. To achieve the communication between levels, we have used semaphores and shared memories.