Časovač (počítač)

Časovač (anglicky timer) je v informatice název hardwarového zařízení v počítači, které umožňuje s vysokou přesností odměřovat čas. Časovač může být také označení softwarové implementace reakce programu na uplynutí určitého času (například timeout). Časovač obecně slouží k asynchronnímu řízení vykonávání strojového kódu. 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.

Princip

Většina počítačů obsahuje jeden 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í.

Použití

Č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). Časovač je základním mechanismem pro zajištění preemptivního multitaskingu.

Hodiny reálného času (RTC)

Související informace naleznete také v článku Hodiny reálného času.
© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
Obvod s RTC na základní desce počítače IBM PC (značka Dallas)

Hodiny reálného času (anglicky Real-time clock) jsou 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í. Jeho programování je časově náročné, a proto se nepoužívá pro periodické vyvolávání přerušení (na to se používá PIT – viz dále). V současné době je RTC na základních deskách integrován do čipsetu (southbridge).[2]

Programmable Interval Timer (PIT)

Související informace naleznete také v článku Programmable Interval Timer.

Programmable Interval Timer je nejstarší používaný časovač v počítačích IBM PC kompatibilních (obvody Intel 8253 a Intel 8254). Obsahuje tři čí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.

High Precision Event Timer (HPET)

Související informace naleznete také v článku High Precision Event Timer.

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í.[3] 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 nefunkč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í.

Reference

  1. KOLÁŘ, Petr. Operační systémy [online]. Liberec: 2005-02-01 [cit. 2008-08-30]. Dostupné v archivu pořízeném dne 2014-07-14. 
  2. ULi M1573 Southbridge Specifications [online]. AMDboard.com [cit. 2007-08-23]. Dostupné v archivu pořízeném dne 2007-08-18. 
  3. Guidelines For Providing Multimedia Timer Support [online]. 2002-09-20 [cit. 2007-07-16]. Dostupné online. 

Externí odkazy

Média použitá na této stránce

ROCKY-518HV - Dallas Semiconductor DS12B887-2377.jpg
© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
ROCKY-518HV - Dallas Semiconductor DS12B887 - real time clock