Embedded Technology and Time Jump
Scientists from International Earth Rotation and Reference Systems Service (IERS) had recently announced about adding a second to June 30, 2015. This phenomenon is called leap second.
The common man won’t think too much about it. To him, one second is nothing. However, for an embedded developer, it can mean a world of difference, especially those who are working on operating systems.
The last time the IERS added a leap second, it confused web servers over the world. A number of leading websites like Reddit, LinkedIn, Yelp, Mozilla, FourSquare, Gawker were affected. The airline industry’s popular Amadeus ticket booking software was also affected for more than two hours. Basically, OS schedulers stopped/started scheduled processes, before the mentioned time.
Real time operating systems depend on real time clock/calenders ICs. These ICs support leap years, but not leap seconds. The reason? Leap years are predictable and well defined, but leap seconds are inserted only when necessary. In this case, the real time clock/calender ICs have to be updated manually.
The US Department of Homeland Security has released a ‘best practices’ document on how to deal with the problem. Moreover, if your RTCC IC refers to the Network Time Protocol for updates, you don’t even have to make any changes. Even if you don’t make the correction (if it not auto corrected by the NTP), many embedded applications adjust with the small difference.