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