DigitalOcean interview question

Compare and contrast basic systems programming constructs, eg process vs thread, mutex vs semaphore, TCP vs UDP.