» »

Windows 10 bo razumel prestopne sekunde in natančneje meril čas

Windows 10 bo razumel prestopne sekunde in natančneje meril čas

Microsoft - Microsoft bo v novo verzijo Windows 10, ki bo izšla oktobra, in Windows Server 2019 prvikrat vključil podporo za prestopne sekunde. Te bodo upoštevali na pravilen način, torej s ponovitvijo (ali teoretično preskokom) sekunde, in ne na Googlov način raztegovanja normalnih sekund. Poleg tega prinašata novi verziji Windows še podporo za naslednika NTP, ki se imenuje Precision Time Protocol (PTP), in nekaj drugih posodobitev za večjo natančnost merjenja časa.

Prestopne sekunde so posledica počasnega upočasnjevanja vrtenja Zemlje in naše želje, da bi bilo sonce v povprečju v zenitu točno ob 12.00, če smo na poldnevniku, ki ustreza aktualnemu časovnemu pasu. To je pomembno, da je dogajanje na nebu predvidljivo, kar najbolj opazijo astronomi, pri daljšem drsenju pa bi opazili tudi ljudje, ko bi bil sončni vzhod čedalje pozneje.

Medtem ko atomske ure merijo atomski čas (TAI) brez oziranja na dogajanje z Zemljo, mora ostati univerzalni koordiniran čas (UTC) oziroma civilni čas v skladu z vrtenjem Zemlje. Kadar razlika med UTC in sončnim časom (UT1) preseže 0,9 sekunde, se ob koncu junija ali decembra doda (ali odvzame) prestopna sekunda, da se časa uskladita. Tedaj se lahko zgodi, da ure pokažejo 23.59:60, ki ustreza dodani sekundi. V povprečju dodamo eno prestopno sekundo vsako poldrugo leto, nazadnje pa se je to zgodilo ob koncu leta 2016. Prestopne sekunde se povsod na Zemlji ne glede na časovni pas dodajo istočasno, in sicer ob polnoči po UTC.

Pričakovali bi, da gre za precej nepomemben detajl, a ima v resnici velike posledice za računalniške sisteme po svetu. Predlani je bilo zaradi tega kar nekaj težav, ker računalniški programi pričakujejo, da čas monotono teče in da ima kasnejši dogodek višji časovni žig. Google se je zato odločil problem reševati tako, da prestopno sekundo razmaže skozi 20 ur. Deset ur pred pojavitvijo prestopne sekunde začno njegove ure tiktakati 0,0014 % počasneje in tako tečejo 20 ur, s čimer se nadoknadi razlika.

Microsoft pojasnjuje, da za njegove potrebe ta rešitev ni sprejemljiva. Googlova rešitev namreč pomeni, da je interni čas do 0,5 sekunde drugačen od dejanskega univerzalnega koordiniranega časa. Microsoft je zato implementiral prave prestopne sekunde, torej bo Windows razumel, da čas lahko teče 23.59:59, 23.59:60, 0.00:00 ali 23.59:58, 0.00:00, 0.00:01. V praksi negativne prestopne sekunde še ni bilo in je tudi ne pričakujemo. Bi se pa lahko zgodila, če bi se vrtenje Zemlje pospešilo, denimo zaradi kakšnega hudega potresa, ki bi spremenil Zemljin vztrajnostni moment. To je mogoče in se je že zgodilo v moderni zgodovini.

Naslednja novost je uvedba PTP. NTP je že precej star protokol za sinhronizacijo lokalnega časa z zunanjimi strežniki. NTP deluje dobro in je za večino uporabnikov zadosti - mimogrede, doslej je Windows dojel prestopne sekunde tako, da se je kasneje sinhroniziral prek NTP - ni pa dovolj natančen. NTP ne upošteva pravilne zakasnitve zaradi končne hitrosti električnih signalov in latenc pri potovanju paketkov po omrežju. NTP privzame le, da je zakasnitev v obe smeri enaka, torej simetrična, kar pa ni nujno res. NTP bo ostal privzet protokol, bo pa moč uporabiti tudi PTP, ki bo natančnejši. Poleg tega novi Windows prinaša še rešitve za zagotavljanje večje zanesljivosti interne ure, avtentikacijo tega časa in dokazljivost točnosti.

13 komentarjev

starfotr ::

Se mi zdi, da je guglova rešitev še vedno super. Ne vem zakaj to novo odkrivanje tople vode.

poweroff ::

Za drugacen namen je tale resitev boljsa. Na dolgi rok verjetno tudi.
sudo poweroff

Invictus ::

Fak no, a v današnjem času se je še vedno treba ukvarjat s pravim računanjem časa?!?!?!

Sicer to sranje ponavadi pomeni na projektih polovico ur dela. In pa codepage :)).
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

darkolord ::

starfotr je izjavil:

Se mi zdi, da je guglova rešitev še vedno super. Ne vem zakaj to novo odkrivanje tople vode.
Ker guglova rešitev ni pravilna.

AndrejO ::

poweroff je izjavil:

Za drugacen namen je tale resitev boljsa. Na dolgi rok verjetno tudi.

Odvisno od tvoje definicije "boljša".

Pa še malo mojega muzanja na temo:

Goog se je ukvarjal z nepravilno napisanimi aplikacijami, ki stensko uro uporabljajo za merjenje časovnih interval ... velik "no, no" v današnjih časih. Goog je praktično pokvaril OS zato, da je reševal kolektivne riti programerjev.

MS se ukvarja s tem, da sistem ne pozna pojma prestopne sekunde in predlagana rešitev tega problema je zagotov pravilna v smislu pravilnega merjenja stenskega časa. Posledice pristopa pa bodo odvisne od načina implementacije (povezan članek te informacije ni vseboval). Če bo ta popravek "zadel" funkcijo GetSystemTime(), potem bod stvari hitro postale zabavne za vse programerje, ki bodo v svoji nevednosti (neizkušenosti) še naprej sami računali časovne intervale ... seveda narobe.

IMO je MS-jevo vztrajanje pri pravilni uri boljši odgovor, ker imamo na vseh platformah ustrezna metode za merjenje časovnih intervalov, ki bi jih programerji že tako ali tako morali uporabljati namesto gettimeofday()/GetSystemTime(). Bi pa znale biti posledice zabavne za uporabniške aplikacije. Goog je bil pragmatičen, ampak v takšnem okolju potem izgubiš možnost, da bi ugotovil točno vrednost stenske ure. Če MS-jeva rešitev programerjem omogoča narediti "pravo stvar", pa Googlova programerjem tega ne omogoča.

Sicer pa: Unicode in upravljanje s časom na računalnikih. Dve zadevi na katerih se vsako leto naučim kaj novega. Že več kot 20 let zaporedoma.

RuskiSnajper ::

Kul mala stvar ... googlova rešitev mi tudi ni všeč.

AndrejO ::

RuskiSnajper je izjavil:

Kul mala stvar ... googlova rešitev mi tudi ni všeč.

To dejansko ni "mala svar". Je kar velika.

Googlova rešitev je všečna predvsem sistemcem, ki morajo vzdrževati aplikacije, ki so bile narobe napisane, ker odpravlja enega izmed možnih vzrokov za nepravilno delovanje.

MrStein ::

AndrejO je izjavil:


Sicer pa: Unicode in upravljanje s časom na računalnikih. Dve zadevi na katerih se vsako leto naučim kaj novega. Že več kot 20 let zaporedoma.

Sorodno encodingu je escaping (sploh za URL-je je za enem nedosegljiva umetnost).
Ravno včeraj izšla nova verzija TortoiseSVN in je kar nekaj fixov ravno za enkoding.
Razen tega izvemo, da je piko v path delu URL-a potrebno escapati...
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

AndrejO ::

MrStein je izjavil:


Razen tega izvemo, da je piko v path delu URL-a potrebno escapati...

O, to je pa tudi zame nekaj novega. Je to kakšen odstavek v RFC ali samo neželjena stranska posledica tega, da nekatere aplikacije precej vratolomno preslikujejo poti iz URL-ja v poti na datotečnem sistemu?

MrStein ::

Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

AndrejO ::

MrStein je izjavil:

sam presodi

Težko sam rečem, ker ne vem kaj točno SVN v ozadju poočne s temi podatki.

Na prvo žogo bi rekel, da ga nekaj sračkajo (oz ga verjeno sračka APR, če še vedno uporabljajo to knjižnico), ker RFC3986 pravi, da so rezervirani znaki samo !*'();:@&=+$,/?#[]

Pike ni med njimi, ker je izrecno navedena med nerezerviranimi znaki (RFC3986 2.3).

Kot takšno jo je sicer možno arbitrarno zapisati URI-kodirano (escaped), vendar vsaj meni znan RFC3986 pravi, da je naloga uporabnika, da takšen zapis "normalizira" pred primerjanjem da zagotovijo enakost "." in "%2e" in to mi da misliti, da tista izjava, da naj v URL-ju pike pišejo kot %2e nekoliko smrdi.

Zgodovina sprememb…

  • spremenil: AndrejO ()

Looooooka ::

URIs that differ in the replacement of an unreserved character with
its corresponding percent-encoded US-ASCII octet are equivalent: they
identify the same resource. However, URI comparison implementations
do not always perform normalization prior to comparison (see Section
6). For consistency, percent-encoded octets in the ranges of ALPHA
(%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E),
underscore (%5F), or tilde (%7E) should not be created by URI
producers and, when found in a URI, should be decoded to their
corresponding unreserved characters by URI normalizers.

BigWhale ::

darkolord je izjavil:

starfotr je izjavil:

Se mi zdi, da je guglova rešitev še vedno super. Ne vem zakaj to novo odkrivanje tople vode.
Ker guglova rešitev ni pravilna.


Googlova resitev je prakticno bolj zanic, kot rocno popravljanje ure. :>


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Letos prestopna sekunda, Google bo ure upočasnil za vse

Oddelek: Novice / Znanost in tehnologija
117378 (5257) MrStein
»

Danes ponoči prestopna sekunda, računalniki bodo shajali vsak po svoje

Oddelek: Novice / Znanost in tehnologija
2818268 (2348) zee
»

Po treh letih spet prestopna sekunda

Oddelek: Novice / Znanost in tehnologija
168058 (5036) CaqKa
»

Danes ponoči prestopna sekunda (strani: 1 2 )

Oddelek: Novice / Znanost in tehnologija
7120579 (17396) BlueRunner
»

Sekundo daljše silvestrovanje

Oddelek: Novice / Znanost in tehnologija
335228 (3929) christooss

Več podobnih tem