Jste zde

Šílenství roku 2000 - Y2K problém

Trošku techničtější pohled na Y2K problém. Co na to RTC.

Všichni jste to už určitě slyšeli - přesně minutu po půlnoci 1.ledna roku 2000 nastane konec světa. Nejen, že přestanou fungovat všechny počítače, ale elektrárny přestanou dodávat elektřinu, teplárny teplou vodu a teplo, plynárny plyn. Auta přestanou jezdit a co je asi nejhorší, přestanou platit peníze. Sehnal jsem kousek pazourku a v rámci přežití vyrábím pěstní klín.

Úspora místa a hlavně práce..
V dávných dobách počítačů se šetřilo všude. Často to ani nebylo šetření, spíš programátory napadlo uložit pouze poslední dvojčíslí roku v datu. Takto vyjádřený rok totiž snadno uložili do jediného bytu. Důvodem nebyla úspora bytu, ale to, že s roky v 8. Bitovém čísle mohli provádět běžné numerické úkony, bez psaní vlastních rutin..
Pokud se jen hloupě k tomuto dvojčíslí přičte 1900 bude mít počítač najednou o sto let méně. A navíc pokud se náhodou rokem někde dělí bez tohoto přičtení, počítač se s tím nevyrovná vůbec.

Éra osmibitů je již deset let pryč, řeknou si laici. To ale vůbec není pravda… V běžném PC je jediný hlavní procesor, několik silných procesorů, pro řízení sběrnice, grafické karty atd.. a dalčích cca 15 8. bitových procesorů.. Řídí nejen vaše monitory, harddisky a zvukové karty, ale také mikrovlnky, vstřikování v autech, regulaci tepla v domech, zalévání skleníků…

Často procesor používá tzv. RTC obvod (Real Time Controller). Jak se s Y2K vyrovnávají tyto obvody ??

RTC a Y2K 
Výrobci obvodů hodin reálného času se s problémem vypořádali obdobně.  Většina dnes prodávaných a používaných obvodů má rok čtyřmístný,  některé ale mají natvrdo zadrátováno století. Navíc, aby to výrobci zařízení neměli jednoduché existují hodiny, které sice umí jak století 20. tak i 21. Bohužel při počítání let chybí přenos z desítek na stovky. Znamená to, že takovéto hodiny 31.12.1999 v 23:59:59 nepřejdou na  1.1.2000 ale na 1.1.1900 je nutné jim rok 2000 nastavit. Tyto obvody jsou použity asi v polovině dnes vyráběných PC, kde se o tento posun stará BIOS při startu počítače. Počítač tedy nepřejde korektně přes zlom zapnutý, i když některé operační systémy to taky vědí a korekci provedou.
Všichni výrobci zařízení s RTC tedy přezkoušeli své produkty a případně provedli upgrade software..
Neplatí to tedy samozřejmě o všech…
 

Přestupný rok
Pro určení, zda je rok přestupný platí tři jednoduchá pravidla:

Rok beze zbytku dělitelný 4 je přestupný
Rok beze zbytku dělitelný 100 není přestupný
Rok beze zbytku dělitelný 400 je přestupný

Tedy, pokud autor znal pouze první pravidlo, je zatím vše v pořádku. Kritickým rokem je až rok 3000. Pokud však autor znal i pravidlo druhé a bohužel ne třetí, je tu opět problém…
 

Co s tím? - Jak to řešit

Stavím-li  zařízení s RTC. 

Použít obvod bez chyby, nebo zajistit korekci pomocí vložené inteligence. Někteří výrobci totiž neexistenci přenosu mezi desítkou a stovkou neberou jako chybu, ale jako vlastnost a tu není nutno opravit.


Mám zařízení s hodinami.

Zjistit, co tomu říká výrobce. Mnohá zařízení mohou mít rok  1900 přestupný, nebo století vůbec neukazovat a podobně. Horší je když jsou potřeba pro chod zařízení i dny v týdnu (vytápení v kanceláři). Ty nemusí samozřejmě souhlasit. Jako možnost se uvádí nastavení roku  o 28 let zpět. Bohužel tato rada nefunguje na PC, kde se nejnižší  rok povoluje 1980.


Související odkazy :

www.dalsemi.com/info/y2k/ 
www-us.semiconductors.philips.com/y2k/ 
eu.st.com/stonline/company/year2000/index.htm < /blockquote>


 

ing. Tomás Kouba   
Jan Řehák
Hodnocení článku: