Sleep (systémové volání)

Z Wikipedie, otevřené encyklopedie
(přesměrováno z Nepřerušitelný spánek)

Systémové volání sleep umožňuje přepnout počítačový program (resp. proces, úlohu nebo vlákno) do stavu spánku. To znamená, že program je po určitou dobu neaktivní. Po vypršení časového intervalu nebo po přijetí signálu či po přerušení se obnoví normální provádění programu.

Typické volání sleep očekává jako parametr časovou hodnotu, jež určuje minimální dobu, po kterou má proces spát. Parametr se typicky udává v sekundách; některé operační systémy dovolují jemnější rozlišení, například milisekundy nebo mikrosekundy.

Nepřerušitelný spánek[editovat | editovat zdroj]

Nepřerušitelný spánek (anglicky uninterruptible sleep) je v informatice označení stavu procesu, který nemůže být přerušen signálem. Jediná možnost vzbuzení takového procesu je, že začne být dostupný prostředek, na který se nepřerušitelným spánkem čekalo. Nepřerušitelný spánek se nejčastěji používá v ovladačích při čekání na dokončení I/O operace (např. pevný disk nebo síťová karta). Pokud je proces ve stavu nepřerušitelného spánku, je signál doručen poté, co se proces vrátí ze systémového volání či pasti (trap).

Proces, který je v nepřerušitelném spánku, nelze ani ukončit, protože by tím došlo k poškození interních datových struktur jádra operačního systému (nedokončení naplánované operace). Datové struktury by sice mohly být při předčasném ukončení uvedeny do pořádku, ale kód jádra by se tím zbytečně rozšířil o málo využívanou specialitu, která by mohla obsahovat skryté chyby.

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Sleep (system call) na anglické Wikipedii.