Clock synchronization in distributed systems is a well-studied problem, and so when we started building the basic services for a hard real-time distributed system, we expected to be able to use an already-existing protocol. We were especially confident of being able to do so because our hardware platform, commodity PCs connected by Ethernet, was not very unusual. We were unable to find an appropriate protocol. The clock synchronization protocols that we found were designed to solve different problems (such as using inappropriate failure models) and had a large impact on schedulability. Our protocol attains very tight precision (50 usec immediately after synchronization) with a very predictable impact on schedulability. I will also describe how we measured the physical constants of the system needed by the clock synchronization protocol. This proved to be harder than we expected it to be.
Back to LESSLast modified: March 28, 1997