61-sekundowe minuty nie będą problemem dla nowych systemów Microsoftu

Strona główna Aktualności

O autorze

Przestępna sekunda od 1972 roku dodawana jest pod koniec czerwca lub grudnia do aktualnego uniwersalnego czasu koordynowanego (UTC), służąc jego synchronizowaniu ze średnim czasem słonecznym. Ziemia owiem spowalnia w obrocie wokół swojej własnej osi, wydłużając dobę – po raz ostatni miała ona dokładnie 24 godziny gdzieś w 1820 roku. Jak do tej pory dodano łącznie 37 takich sekund, ostatnią 31 grudnia 2016 roku. Mimo standardowej natury tej operacji i uwzględnienia jej w protokołach stanowi wciąż wyzwanie dla projektantów systemów komputerowych. Jak jednak obiecuje Microsoft, przestanie być problemem w Windowsie 10 i Windows Serverze 2019.

Myśl o 61-sekundowej minucie może wydawać się niepokojąca, tym bardziej że nie ma żadnego algorytmu pozwalającego przewidzieć konieczność dodania przestępnej sekundy (albo jej odjęcia – teoretycznie taka możliwość istnieje, gdyby Ziemia przyspieszyła w swym obrocie dookoła osi). Dlatego też obecny system, w którym na podstawie swoich obserwacji geofizycy z półrocznym wyprzedzeniem zapowiadają konieczność zmiany czasu UTC jest krytykowany, jako stanowiący potencjalne ryzyko dla infrastruktury informatycznej i elektronicznej. Systemy uzależnione od precyzyjnego pomiaru czasu mogą zaliczyć z tego powodu widowiskowe awarie.

Ostatnia taka duża awaria przydarzyła się w 2012 roku Redditowi, LinkedIn, ThePirateBay i wielu innym dużym serwisom: był to najbardziej wyraźny przykład niemożności dogadania się demona czasu ntpd i innych systemowych procesów. Doszło wówczas do sytuacji, w której ntpd dodał przestępną sekundę, modyfikując zegar systemowy, gdy jednocześnie oprogramowanie ogłaszało, że właśnie zamierza odczytać czas z zegara. W systemach uniksowych, które wierzą standardowi POSIX ogłaszającemu, że doba ma 86400 sekund, zawieszało to próbujący odczytać czas proces, sprawiając że pożerał on 100% mocy obliczeniowej procesora.

Po tej aferze wiele się zmieniło, zarówno ntpd jak i linuksowy kernel otrzymały łatki pozwalające jakoś tam sobie z tym wszystkim radzić. Sam Linus Torvalds ogłosił wówczas, że nie ma co dramatyzować, standard czasu obowiązujący w POSIX jest dobry dla 99,9% użytkowników (tylko astronomowie narzekają), a cała reszta może po prostu sekundy przestępne potraktować jako pretekst do zrobienia małej apokaliptycznej imprezy ze znajomymi i upicia się tak, by następnego dnia mieć dobrze uzasadnionego kaca.

Od Microsoftu takich komentarzy raczej się nie ma co spodziewać, ale i firma z Redmond postanowiła się za problem przestępnej sekundy wreszcie wziąć. Na łamach TechNetu zapowiedziano nowe funkcje sieciowe w Windows Serverze 2019 – w tym właśnie wsparcie dla dodania przestępnej sekundy. Wyglądać to ma następująco:

Jednocześnie Microsoft odciął się od praktyki „rozsmarowywania przestępnej sekundy”, polegającej na podzieleniu jej na mniejsze jednostki i dodawaniu ich w ciągu całego dnia, w nadziei że nikt nie zauważy. Ta stosowana przez niektóre korporacje praktyka (potępiona też przez Linusa) prowadzi jedynie do problemów z dokładnością zegara, co gorsza nie ma żadnego ustalonego standardu takiego rozsmarowywania.

Przy okazji dowiedzieliśmy się też, że Windows otrzyma obsługę nowego protokołu czasu PTP (Precision Time Protocol – IEEE 1588v2), pozwalającego urządzeniom sieciowym na dodanie do pomiaru czasu opóźnień dodawanych przez infrastrukturę.

Kernel Windowsa będzie też oznaczał pakiety przed i po ich przejściu przez komponenty sieciowe systemu, aby uniknąć problemów z desynchronizacją z usługą Windows Time na zdalnych urządzeniach, zwiększy dokładność zegara do 100 nanosekund na sekundę (wcześniej osiągał 6,4 mikrosekundy na sekundę) i zapewni lepsze mechanizmy śledzenia i logowania pomiarów czasu.

© dobreprogramy