ΠΡΠΈ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ FIFO (First In β First Out) ΠΏΠΎΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠΎΡΠΎΠΊ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ, ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° ΠΏΠΎΡΠΎΠΊ Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ. ΠΡΠ»ΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°ΠΌΠΈ, ΠΈ ΠΏΠΎΡΠΎΠΊ Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²Π΅ΡΠ½ΠΎ. Π‘ΠΎΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ Ρ ΠΊΠ°ΡΡΡΠ΅Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ (receive ID)ΠΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° MsgReceive() ΠΈΠ»ΠΈ MsgReceivev() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ (ΡΠ°ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Β«rcvidΒ»). ΠΡΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ rcvid Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΎΡΠ²Π΅Ρ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠ°ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π² Π΅Π³ΠΎ. ΠΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ rcvid Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΡΠΎΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ MsgDeliverEvent().
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (connection ID, ΡΠΎΠΊΡ. CID)ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ConnectAttach() (Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅) ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΡΠ°ΠΉΠ»Π° Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ·ΡΠΊΠ° Π‘ΠΈ β ΠΈΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ open() Π² QNX/Neutrino Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π°, ΡΠ΅Π°Π»ΡΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΎΠ±ΠΌΠ΅Π½Π° (send hierarchy)ΠΡΠΈΠ½ΡΡΠ°Ρ Π² QNX/Neutrino ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, Π² ΡΠΈΠ»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, Π° ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ β Π² Π΄ΡΡΠ³ΠΎΠΌ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ Β«ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈΒ» ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ. ΠΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π°ΡΡΡΠΈΠ»Π° Π±Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ β ΠΏΠΎΡΠΎΠΊ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ.
ΠΈΠΌΠΏΡΠ»ΡΡ (pulse)ΠΠ΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΌ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ; ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ (MsgReceive() ΠΈ MsgReceivev()) ΠΈΠ»ΠΈ ΠΆΠ΅, Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΆΠ΄Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠΏΡΠ»ΡΡΠ°, ΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ MsgReceivePulse(). Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΈΠΌΠΏΡΠ»ΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡΡΡ Π² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ Π½Π°ΡΡΡΠ°ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΎΠ±ΠΌΠ΅Π½Π° (ΡΡΠΎ Π²ΡΠ·Π²Π°Π»ΠΎ Π±Ρ Π²Π·Π°ΠΈΠΌΠ½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ). Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ Ρ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ.
ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ² ΡΠ΄ΡΠ° (kernel callout)ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° QNX/Neutrino ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°Ρ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ΄ΡΠ°. ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ΄ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄, Β«Π·Π½Π°ΡΡΠΈΠΉΒ» ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, ΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ Π½Π° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, ΠΈ Ρ.ΠΏ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ Π² ΠΊΠ½ΠΈΠ³Π΅ Β«Building Embedded SystemsΒ» (Β«ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΒ»).
ΠΊΠ°Π½Π°Π» (channel)ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ChannelCreate() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ°Π½Π°Π»Π° (Β«channel IDΒ», ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎ Β«chidΒ») β ΡΠΎΡ ΡΠ°ΠΌΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ°Π½Π°Π»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ΅ΡΡΡΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌΠΎΠΉ ΠΈΠΌ ΡΠΎΡΠΊΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΊΠ°ΡΡΡΠ΅Π»ΡΠ½Π°Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ (round robin (RR) scheduling)ΠΡΠΈ ΠΊΠ°ΡΡΡΠ΅Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π»ΠΈΠ±ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ² ΠΊ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎΡΠΎΠΊ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΊΠ° ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΡΠ΅ΡΠ΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΠΊΠ²Π°Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π½Π΅Ρ, ΠΏΠΎΡΠΎΠΊ Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ, ΠΏΠΎΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²Π΅ΡΠ½ΠΎ. ΠΡΠ»ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Ρ Π²ΡΠ΅ Π²ΡΡΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π³ΠΎΡΠΎΠ² ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ, ΡΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΡΠ΅ΡΠ΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΅ΠΌΡ ΠΊΠ²Π°Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ β ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π½Ρ Π½Π° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅. Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ FIFO.
ΠΊΠ»ΠΈΠ΅Π½Ρ (client)ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² QNX/Neutrino ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ- ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΠ»ΠΈΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΠΊΡΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ»ΡΠ³Ρ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ±ΡΡΠ½ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ»ΡΠ³ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, lseek()). ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ Π² ΡΠΎΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ², ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΠ²Π΅Ρ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΡΠ±ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ.
ΠΌΡΡΠ΅ΠΊΡ (mutex, ΠΎΡ mutual exclusion β Β«Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅Β»)ΠΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΊ ΡΠ΅ΡΡΡΡΡ β ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΊ ΡΠ΅ΡΡΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡ ΠΌΡΡΠ΅ΠΊΡΠΎΠΌ, Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠΌΠ΅Π» Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΡΡΠ΅ΠΊΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π²Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΠ΅, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΊ Π½Π΅ΠΉ Π΄ΠΎΡΡΡΠΏ, ΡΠ°ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Ρ Π³ΠΎΠ½ΠΊΠΈ. Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ Β«Π°ΡΠΎΠΌΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΒ».
ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ (message-passing)ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° QNX/Neutrino ΠΈΠΌΠ΅Π΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. ΠΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ. Π‘Π΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΡ Π΅Π³ΠΎ.
ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ (interrupt service routine)ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΄ΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (Π² ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅) Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. ΠΡΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ°Π²Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Π΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π²ΡΡΠ΅, ΡΠ΅ΠΌ Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π² QNX/ Neutrino ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ° struct sigevent, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (reply to Π° message)Π‘Π΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ (relative timer)Π’Π°ΠΉΠΌΠ΅Ρ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«ΡΠ΅ΡΠ΅Π· 5 ΠΌΠΈΠ½ΡΡΒ». Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠΌ.
ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (send a message)ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ MsgSend*(); ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΠΎΡΠ²Π΅ΡΠΈΡ Π½Π° ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (ΡΠΌ. Β«ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈΒ»). ΠΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ.
ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ (periodic timer, repetitive timer)ΠΠ±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ»Π΅ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΡΡΠ΅ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ, ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ Π΄ΠΎ ΡΠ²Π½ΠΎΠΉ ΠΎΡΠΌΠ΅Π½Ρ. ΠΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ.
ΠΏΠΎΡΠΎΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Β«Π½ΠΈΡΡΒ» (thread)ΠΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ΄ΡΠΎΠΌ Neutrino ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π²ΡΠ·ΠΎΠ²Π°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ POSIX pthread*(). ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ (Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ) ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΌΡΡΠ΅ΠΊΡΡ, ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠ΅ΠΌΠ°ΡΠΎΡΡ ΠΈ Ρ.Π΄. ΠΠΎΡΠΎΠΊΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎ ΡΠΈΠΏΡ FIFO ΠΈΠ»ΠΈ RR (ΠΊΠ°ΡΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°).
ΠΏΡΠΈΠ½ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (receive a message)ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ MsgReceive() ΠΈΠ»ΠΈ MsgReceivev(). ΠΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π΅Ρ, ΠΏΠΎΡΠΎΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (ΡΠΌ. Β«ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈΒ»). ΠΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ.
ΠΏΡΠΎΡΠ΅ΡΡ (process)ΠΠ΅Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΠΏΠ°ΠΌΡΡΡ ΠΈ Π²ΠΌΠ΅ΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ².
ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ (unblock)Π Π°Π½Π΅Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½, ΠΊΠΎΠ³Π΄Π° ΡΡΠ»ΠΎΠ²ΠΈΠ΅, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ» Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½, Π±ΡΠ΄Π΅Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π°Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½.