If there is no global clock in Distributed systems , then what is the solution for synchronization in DS ? Also , no global clock in DS is a direct consequence of the fact that the only communication is by sending messages through a network. Can someone please explain how the communication via message passing has resulted in no global clock ?
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 "synchronize"). 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.