Distributed systems face challenges with time ordering and synchronization due to a lack of a global clock. Logical clocks provide a way to determine event ordering without precise time information. Lamport's algorithm uses logical clocks and the "happens before" relation to ensure proper synchronization. Physical clocks also require synchronization methods like Cristian's algorithm to limit clock drift between distributed nodes. Mutual exclusion in distributed systems can be achieved through centralized coordination of access to critical sections.