Časovač (počítač)

Z Wikipedie, otevřené encyklopedie

Skočit na: Navigace, Hledání

Časovač (anglicky timer) je v informatice zařízení v počítači, které umožňuje přesně odměřovat čas. Časovač může být implementován softwarově jako součást počítačového programu nebo hardwarově pomocí specializovaného obvodu. Hardwarové časovače využívá operační systém pro řízení multitaskingu a plánování dalších důležitých událostí, které jsou závislé na reálném čase. Časovač může být umístěn ve specializovaném integrovaném obvodu, v čipsetu nebo přímo v procesoru.

Obsah

[editovat] Princip

Většina počítačů obsahuje 1 nebo více hardwarových časovačů. Obvykle jsou to čítače, které program nastaví na nějakou hodnotu, která se následně automaticky snižuje. V okamžiku, kdy dosáhne nuly, je vyvoláno přerušení, které je doručeno procesoru. Časovač umožňuje procesoru zpracovávat během měření času jiné úlohy, čímž snižuje režii systému a zvyšuje jeho výkon. Odstraňuje tedy tzv. aktivní čekání pomocí naprogramovaného cyklu nebo specializované instrukce (například RDTSC v procesorech x86), během kterého nelze jinou činnost vykonávat. Časovač může pracovat v jednorázovém režimu, kdy je přerušení vykonáno po vypršení časovače nebo v periodickém režimu, kdy je přerušení vyvoláváno periodicky po uplynutí nastaveného fixního času (například každou 1 milisekundu).

Protože je počet hardwarových časovačů v počítači omezen a není možné předpokládat, že budou stačit pro všechny účely, je možné používat jen jeden časovač, který obsluhuje operační systém a vytváří k němu softwarovou časovou frontu[1]. Hardwarový časovač se pak používá k odměření času zbývajícího do první události v časové frontě. Ve frontě jsou události řazeny podle času, takže nejbližší událost je první. Po uplynutí času nastaveného v časovači do první události je časovačem vyvoláno přerušení, které vyvolá obsluhu přerušení uvnitř operačního systému, která obsluhuje čekací frontu. V obsluze přerušení je z fronty odebrána událost, která přerušení vyvolala, časovač je nastaven na čas zbývající do následující události ve frontě a aktuální (vyřazená) událost je předána k vyřízení.

Časovač se v počítači používá pro řízení multitaskingu (přidělování časových kvant) a dalších časově závislých událostí (například vypršení času vymezeného na příjem odpovědi při komunikaci v počítačové síti).

[editovat] Real-time clock (RTC)

Obvod s RTC na základní desce počítače IBM PC (značka Dallas)

Real-time clock (česky hodiny reálného času) je integrovaný obvod, který udržuje informaci o aktuálním čase v počítačích, embedded systémech, a dalších elektronických zařízeních. V IBM PC kompatibilních počítačích byl na základní desce jako samostatný integrovaný obvod, který je napájen lithiovou baterií. Běžně se využívá pro periodické vyvolávání přerušení, protože programování tohoto obvodu je časově velmi náročné a pro nastavování jednorázových period proto není vhodný. V současné době je na základních deskách integrován do čipsetu (southbridge).

Podrobnější informace naleznete v článku Real-time clock.

[editovat] Programmable Interval Timer (PIT)

Programmable Interval Timer je nejstarší používaný časovač v počítačích IBM PC kompatibilních (obvody Intel 8253 a Intel 8254). Obsahuje 3 čítače: časovač číslo 0 používají operační systémy (Microsoft Windows, Linux a další) jako systémový časovač, časovač číslo 1 je z historických důvodů použit pro obnovování (anglicky refresh) paměti RAM a časovač číslo 2 pro PC speaker.

Podrobnější informace naleznete v článku Programmable Interval Timer.

[editovat] High Precision Event Timer (HPET)

High Precision Event Timer byl společně vyvinut firmami Intel a Microsoft. Původně byl označován jako Multimedia Timer a umožňuje vyšší a přesnější rozlišení času (například pro synchronizaci multimédií). Na rozdíl od RTC a PIT je jeho programování efektivní, takže je výhodné ho využívat i pro jednorázová přerušení[2]. Aby ho operační systém mohl používat, musí být speciálně upraven, takže funguje jen na novějších systémech – Windows Vista, Windows 2008, x86 verzích Mac OS X, Linux 2.6 a FreeBSD. Windows XP obsahuje nefukční ovladač HPET. Jeden HPET blok obsahuje 3 až 32 časovačů a bloků může být až osm. Časovač přičítá a po dosažení hodnoty nastavené v registru vyvolá přerušení.

Podrobnější informace naleznete v článku High Precision Event Timer.

[editovat] Reference

  1. KOLÁŘ, Petr. Operační systémy [online]. Liberec : 2005-02-01, [cit. 2008-08-30]. Dostupné online.
  2. Guidelines For Providing Multimedia Timer Support [online]. [s.n.], [cit. 2007-07-16]. Dostupné: <[1]>.

[editovat] Externí odkazy