Distributed systems have several advantages including resource sharing, increased computation speed through parallel processing, and reliability through independent memory in each processor. There are different types of distributed operating systems based on how data, computations, or processes are transferred between sites. Mutual exclusion in distributed systems aims to ensure that only one process executes in the critical section at a time, while still allowing every request to enter and exit to eventually be granted. This can be achieved through centralized, distributed, or token passing approaches.