Process synchronization is used to coordinate processes that share resources so they do not interfere with each other. It uses mechanisms like semaphores and monitors to control access to shared data and order the interactions between processes. The main purposes are to allow sharing of resources without conflict using mutual exclusion and to coordinate process interactions in an operating system.