A multi-threaded, distributed system that provides synchronized access through semaphores. Solves producer-consumer problem. Made for operating systems lab.