Uses of Synchronised clocks
- A distributed system is designed to realize some synchronized behavior, especially in real-time processing in factories, aircraft, space vehicles, and military applications.
- If clocks are synchronized, algorithms can proceed in “rounds :’ and algorithms that are designed for a synchronous system can be employed.
- In database systems, version management and concurrency control depend on being able to assign timestamps and version numbers to files or other entities.
- Some algorithms that use timeouts, such as communication protocols, are very time-dependent.
How to keep clocks synchronized
- One way is to give each processor a receiver and to use time signals sent by satellite.
- An alternative approach is to use software and to design synchronization algorithms.
Problems in clock synchronization
- There are problems associated with clock skew that take on more complexity in distributed computing in which several computers will need to realize the same global time.
- For example, in Unix systems the make command is used to compile new or modified code and seeks to avoid recompiling unchanged code. The make command uses the clock of the machine it runs on to determine which source files need to be recompiled. If the sources reside on a separate file server and the two machines have unsynchronized clocks, the make program might not produce the correct results.
Asynchronous vs Partially synchronous model
An asynchronous model is one in which relative processor speeds and message delivery times are unbounded.
Partially synchronous can be interpreted in several ways — processors may have real-time docks that are approximately the same or that move at about the same rate or that drift slightly. The message detivery time may always be within some bounds, or it may follow a probability distribution.