β‘ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π₯ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° UNIX ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ΅Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠΊΠ»ΠΈΠΊΠ° ΠΈ Ρ.ΠΏ. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠΈΠ΄Π΅ΠΎΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Π½Π° Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ°Π΄ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ», ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ° Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ ΡΠΎΠ½ΠΎΠ²ΡΡ Π·Π°Π΄Π°Ρ ΠΈ Ρ.ΠΏ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π² Π·Π°Π΄Π°ΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π²Ρ ΠΎΠ΄ΠΈΡ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ "Π·ΠΎΠ»ΠΎΡΠΎΠΉ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ", ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅ΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ.
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ UNIX-ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ (callout) ΠΈ Π°Π»Π°ΡΠΌΡ (alarm).
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ°
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈΠΌΠ΅Π΅Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠ΅Π΄Π½ΠΈΠΌΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡΠΌΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠΊΠΎΠΌ (CPU tick, clock tick). ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΊΠΎΠ², Π½ΠΎ Π² UNIX ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π²Π½ΡΠΌ 10 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌ, Ρ ΠΎΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌ Ρ ΡΠ°Π½ΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ΅ HZ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² ΡΠ°ΠΉΠ»Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² <param.h>. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΈΠΊΠ° Π² 10 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ HZ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π²Π½ΡΠΌ 100.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, ΠΎΠ±ΡΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌ. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΠ΄ΡΠ° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΌΡΠΉ Π²ΡΡΠΎΠΊΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ΅ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ:
β‘ ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°
β‘ ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ²Π°Π½ΡΠ° Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°
β‘ ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΊΠ²ΠΎΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΡΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π»Π° SIGXCPU Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΡ
β‘ ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π½Ρ) ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π½ΠΈΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ²
β‘ ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (callout)
β‘ ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π°Π»Π°ΡΠΌΠΎΠ² (alarm)
β‘ ΠΡΠΎΠ±ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΡΠ²ΠΎΠΏΠ΅ΡΠ°
Π§Π°ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΈΠΊΠ΅. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌ Π²Π²ΠΎΠ΄ΡΡ Π½ΠΎΡΠ°ΡΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ° (major tick), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ n ΡΠΈΠΊΠΎΠ², Π³Π΄Π΅ n Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π³Π»Π°Π²Π½ΡΡ ΡΠΈΠΊΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, 4.3BSD ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΡΠ΅ 4 ΡΠΈΠΊΠ°, a SVR4 ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π°Π»Π°ΡΠΌΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠ±ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ°Π· Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.
ΠΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ
ΠΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠ·ΠΎΠ² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ ΡΠ΄ΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² SVR4 Π»ΡΠ±Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΄ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
int co_ID = timeout(void (*fn)(), caddr_t arg, long delta);
Π³Π΄Π΅ fn() ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π°Π΄ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·Π²Π°ΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π΅ΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ arg, Π° ΡΠ°ΠΌ Π²ΡΠ·ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ ΡΠ΅ΡΠ΅Π· delta ΡΠΈΠΊΠΎΠ².
Π―Π΄ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ² fn() Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΊ Π½Π΅ΠΌΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ), Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ½Π°.
ΠΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
β‘ ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ
β‘ ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ² Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ, Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π½Π΅Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π΅Π»ΠΈΠΊΠ°. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TCP, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎ ΡΠ°ΠΉΠΌ-Π°ΡΡΡ
β‘ ΠΠΏΡΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ², Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅, Π° Π½Π΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. ΠΡΠ·ΠΎΠ² ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°. ΠΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ»Π°Π³ Π΄Π»Ρ Π½ΠΈΡ . Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ»Π°Π³ΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅.
ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π΅ΡΡΠΈΠΉ UNIX. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΊ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²Π»ΠΈΡΠ½ΠΈΡ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ, ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π±ΡΡΡΡΡΠΉ ΠΏΠΎΠΈΡΠΊ Π½ΡΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² 4.3BSD ΠΈ SCO UNIX ΡΠ°Π±Π»ΠΈΡΠ° ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠ°, ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΈΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΠ³Π΄Π° ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°Π²Π½ΡΠΌ 0, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ·ΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π·Π°ΠΏΠΈΡΡ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ. ΠΠ° ΡΠΈΡ. 3.14 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡ Π΅ΠΌΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ.
Π ΠΈΡ. 3.14. ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ²
ΠΠ»Π°ΡΠΌΡ
ΠΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΠ΄ΡΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΠ³Π½Π°Π» ΠΏΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ²ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠΈ ΡΠΈΠΏΠ° Π°Π»Π°ΡΠΌΠΎΠ² β ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (real-time), ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (profiling) ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (virtual time). Π‘ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ· ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΡΠ²ΡΠ·Π°Π½ ΡΠ°ΠΉΠΌΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° (interval timer, ΠΈΠ»ΠΈ itimer). ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ itimer ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΈΠΊΠ΅. ΠΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ itimer Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ Π½ΡΠ»Ρ, ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΠ³Π½Π°Π».
Π£ΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ:
ITIMER_REAL ΠΡΠΎΡ ΡΠ°ΠΉΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΡΡΠ΅ΡΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ, ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π» SIGALRM. ITIMER_PROF ΠΡΠΎΡ ΡΠ°ΠΉΠΌΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΄ΡΠ° ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ, ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π» SIGPROF. ITIMER_VIRT ΠΡΠΎΡ ΡΠ°ΠΉΠΌΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ, ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π» SIGVTALRM.Π Π²Π΅ΡΡΠΈΡΡ BSD UNIX Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² Π²ΡΠ΅Ρ ΡΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² settimer(2), Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Π°Ρ [34]. Π―Π΄ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΈΠΊΠΈ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ°. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΡΠΈΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°. Π Π²Π΅ΡΡΠΈΡΡ System V Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ² alarm(2), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ . UNIX SVR4 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° hrtsys(2), Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Π°Ρ . Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ BSD, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ settimer(3). ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π² BSD UNIX Π²ΡΠ·ΠΎΠ² alarm(3) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π·Π°Π±Π»ΡΠΆΠ΄Π°ΡΡΡΡ Π½Π°ΡΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΠΉ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, Π΄ΠΎΡΡΠΈΠ³Π»ΠΎ Π½ΡΠ»Ρ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΄ΡΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡ ΡΡΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π» SIGALRM. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠΎΡ ΡΠΈΠ³Π½Π°Π», ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ ΠΈ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°ΠΌ ΠΈ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΊ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°. Π’Π°ΠΉΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π»ΠΈΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π΅ΡΠΆΠ°Π½ΠΎ, Π΅ΡΠ»ΠΈ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΄ΡΠ° ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.