Synchronization in Distributed Systems
It is the other way around. We first model the system in a certain way, for instance we assume that there is a (or is no) global clock, or we assume that messages arrive or may fail, etc. Once we fix our assumptions, we can ask questions about the system we have characterized: does it allow computations of certain types or not?
For instance, if we assume all the nodes are identical and ask whether we can break symmetry, then the answer is no (in certain cases). If we assume there is no global clock, and ask whether the parties can synchronize, then probably the answer is no (it depends on what you mean by &quot;synchronize&quot;). However, can the system solve tasks without a global clock? Sure! there are plenty asynchronous algorithms that perform a large variety of tasks, like broadcasting, finding a leader, or computing a spanning tree.
So, communication via message-passing does not imply no global clock. These two are independent assumptions that characterize the system. Under these assumptions certain tasks are possible/fast and other might be impossible/slow.