You are here: Re: Unix Time and Leap Seconds « PHP Programming Language « IT news, forums, messages
Re: Unix Time and Leap Seconds

Posted by Moe Trin on 06/26/07 01:58

On Sun, 24 Jun 2007, in the Usenet newsgroup comp.os.linux, in article
<YdWdncWaU_Y1E-PbnZ2dnUVZ_rfinZ2d@comcast.com>, Jerry Stuckle wrote:

>David T. Ashley wrote:

>> "Jerry Stuckle" <jstucklex@attglobal.net> wrote

>>> So they have to be adjusted. And even though NTP tries to speed up and
>>> slow the clock - it's not perfect. And at times the clock WILL jump
>>> forwards or backwards at least one second.

The only time the clock will be jumping is a boot time, before any
applications are running, as kernel time jumps from "zero" to what ever
the BIOS is claiming. There is a mechanism in NTP where you can also
SET the time, but this should only be done at boot time.

>> What kind of events are you speaking of that might cause discontinuities?
>
>It depends on a lot of things. Many systems do not have the necessary
>hardware adjust clock speed.

When was the last time you saw a hardware adjustment for clock speed?
Not to many of us are using IBM Type 1 motherboards from 1985. The
Pentium class motherboards often don't even have a separate oscillator
module. with the interrupt source being the oscillator that is part of
the RTC.

>So just like any clock, if it's running fast, it must be set back
>sooner or later.

This kernel is compiled to run the IRQ0 interrupt at 100 "ticks" per
second (others use 1000 "ticks"), and that means the the divider is
normally running at 18432:1. To _drift_ the clock into correspondence
with "real" time, that division ratio is altered. As the crap crystal
oscillator used as a timing source is accurate to +/-100 ppm, the
division ration is periodically altered over the range of 18430 to
18434 to make it read something approaching the desired time. No big
magic deal - and no "major" steps. It's just that the 1/100 of a
second may vary by up to 54 microseconds. If your kernel is compiled
for a 1000 Hertz interrupt, the kernel is already doing this shuffle
step routine, as the divider is only programed to integers, and not the
1843.2:1 required with a perfectly set oscillator.

Old guy

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация