TimerTimeout(CLOCK_REALTIME, _NTO_TIMEOUT_RECEIVE,
NULL, NULL, NULL);
rcvid = MsgReceive(...
ΠΠΌΠΏΡΠ»ΡΡΡ ΠΈ ΡΠΎΠ±ΡΡΠΈΡΠ QNX4 Π±ΡΠ»ΠΎ Π½Π΅ΡΡΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Β«ΠΏΡΠΎΠΊΡΠΈΒ». ΠΡΠΎΠΊΡΠΈ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Β«Π·Π°ΠΊΠΎΠ½ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅Β» (Ρ.Π΅. Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅) ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΎΡΠ»Π°ΡΡ Π²Π»Π°Π΄Π΅Π»ΡΡΡ ΡΡΠΎΠΉ (ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π² ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ Β«ΠΏΡΠΎΠΊΡΠΈΒ» ΠΆΠ΅Π½ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π°; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠ·-Π·Π° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅Π½Π³ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠ΅Π½ΠΈΡ Β«ΠΏΡΠΎΠΊΡΡΒ» #:ΠΎ) β ΠΏΡΠΈΠΌ. ΡΠ΅Π΄.) ΠΏΡΠΎΠΊΡΠΈ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ»ΠΈ ΡΠ΄ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ). ΠΡΠΎΠΊΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π Π°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΊΡΠΈ (ΡΠΎ Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠΈΡΡ Π΅Π³ΠΎ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ) ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ (Π½Π΅ ΡΠ°ΠΌΡΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ), Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ. ΠΡΠ»ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΊΡΠΈ β Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΎΠΊΡΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΡΠΎΠΊΡΠΈ Π±Π΅ΡΡΡΡΡ ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠ»Π° Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΡΡ.
(ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ QNX4 Π²Π½ΠΎΡΠΈΡ Π² ΠΏΠΎΠ½ΡΡΠΈΠ΅ Β«ΠΏΡΠΎΠΊΡΠΈΒ» ΡΡΡΠ°ΡΠ½ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π±Ρ ΠΏΡΠΎΠΊΡΠΈ ΡΠ²Π»ΡΠ»Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠΊΡΠΈ, ΠΎΠ±ΠΎΡΠΎΡΡ ΡΠΈΠΏΠ° Β«ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΡΠΎΠΊΡΠΈΒ» Π±ΡΠ»ΠΈ Π±Ρ Π»ΠΈΡΠ΅Π½Ρ ΡΠΌΡΡΠ»Π°. Π‘Π°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠ»ΠΎΠ²ΠΎ Β«proxyΒ» ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΠΊ Β«ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ Π°Π³Π΅Π½ΡΒ». ΠΡΠ»ΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π³Π»Π°Π²Ρ Β«IPC via proxiesΒ» ΠΊΠ½ΠΈΠ³ΠΈ Β«QNX4 System ArchitectureΒ», ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΊΡΠΈ β ΡΡΠΎ Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Β«ΠΊΠ²Π°Π·ΠΈΠΏΡΠΎΡΠ΅ΡΡΒ», Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΠΉ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, Π½ΠΎ ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (ΠΊΠΎΡΠΎΡΡΠΉ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΏΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°Π΅ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²) ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΊ ΠΎΠ±ΠΌΠ΅Π½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡΠΈΠΌΠ΅Π½ΡΡ ΠΊ ΠΏΡΠΎΠΊΡΠΈ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ Trigger(), ΠΏΡΠΎΡΠ΅ΡΡ Π² QNX4 ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΠΌΡ ΠΊΠ²Π°Π·ΠΈΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Send(), Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Reply(), ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ (Π²ΡΠ·Π²Π°Π²ΡΠΈΠΉ Trigger()) ΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠΊΡΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ-Π²Π»Π°Π΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅; Π΅ΡΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΠΏΡΠΎΠΊΡΠΈ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ RECEIVE-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π΅Π΅ Π±ΡΠ»ΠΎ Π±Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Β«ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠΊΡΠΈΒ» Π²ΠΌΠ΅ΡΡΠΎ Β«ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠΊΡΠΈΒ» (ΠΎ Π²ΡΠ·ΠΎΠ²Π΅ Trigger()) ΠΈ Β«ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΊΡΠΈΒ» Π²ΠΌΠ΅ΡΡΠΎ Β«ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠΊΡΠΈΒ» β ΠΏΡΠΈΠΌ. ΡΠ΅Π΄.).
QNX/Neutrino ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΏΡΠΎΠΊΡΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Β«ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠ²Β». ΠΠΌΠΏΡΠ»ΡΡΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈ ΠΈΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ»Π°ΡΡ Π»ΠΈΠ±ΠΎ ΠΎΡ ΠΏΠΎΡΠΎΠΊΠ° ΠΊ ΠΏΠΎΡΠΎΠΊΡ, Π»ΠΈΠ±ΠΎ ΠΎΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΄ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ) ΠΊ ΠΏΠΎΡΠΎΠΊΡ. Π Π°Π·Π»ΠΈΡΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΊΡΠΈ ΠΈΠΌΠ΅Π»ΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΠΈΠΌΠΏΡΠ»ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π»ΠΈΠ½Ρ, Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Π΅ΠΌ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ (ISR) ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² ΠΈΠΌΠΏΡΠ»ΡΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ ΠΈΠΌΠΏΡΠ»ΡΡ ΠΏΠΎΡΠΎΠΊΡ.
Π QNX4 Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π±ΡΠ»ΠΈ Π½Π°Π΄Π΅Π»Π΅Π½Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ ΠΏΠΎΡΠ»Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΈΠ³Π½Π°Π», ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΠΊΡΠΈ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π±ΡΠ»ΠΈ Π½Π°Π΄Π΅Π»Π΅Π½Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ ΠΏΠΎΡΠ»Π°ΡΡ Π»ΠΈΠ±ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ, Π»ΠΈΠ±ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠ°Π»ΠΎ ΡΠΎΠ³ΠΎ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΈΠ³Π½Π°Π», Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ kill(). Π§ΡΠΎΠ±Ρ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠΊΡΠΈ ΠΈΠ»ΠΈ ΡΠΈΠ³Π½Π°Π» ΠΏΠΎ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΈΠ³Π½Π°Π»Π° (Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΠΊΡΠΈ) ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΈΠ³Π½Π°Π»Π° (Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ ΡΠΈΠ³Π½Π°Π»). Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΊΡΠΈ.
Π QNX/Neutrino Π²ΡΠ΅ ΡΡΠΎ Π±ΡΠ»ΠΎ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°Π½ΠΎ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ POSIX-ΡΡΡΡΠΊΡΡΡΡ struct sigevent. ΠΡΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ struct sigevent, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΈΠ³Π½Π°Π», ΡΠ°ΠΊ ΠΈ ΠΈΠΌΠΏΡΠ»ΡΡ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ struct sigevent Π±ΡΠ»Π° ΡΠ°ΡΡΠΈΡΠ΅Π½Π° Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°! ΠΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎΠ± ΡΡΠΎΠΌ Π² ΠΠ»Π°Π²Π΅ Β«Π§Π°ΡΡ, ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡΒ» Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠ°Β».
ΠΠΎΠ΄Π΅Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Π ΡΠ°ΠΌΡΡ ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ QNX (ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ QNX2) ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ² Π±ΡΠ»ΠΎ ΡΠ΅ΠΌ-ΡΠΎ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ. Π QNX4 ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ½Π°ΡΠ°Π»Ρ Π±ΡΠ»Π° Π·Π°Π³Π°Π΄ΠΎΡΠ½Π°Ρ Π²Π΅ΡΡ, Π½ΠΎ Π·Π°ΡΠ΅ΠΌ, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π QNX/Neutrino ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Ρ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΊΡΡΡΡ. Π, ΠΊΠ°ΠΊ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π² QNX/ Neutrino ΠΈ QNX4 Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡ ΠΎΠ΄Π½Ρ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² QNX4 Π±ΡΠ»Π° ΠΊΡΠΎΠΌΠ΅ΡΠ½Π°Ρ ΠΏΡΡΠ°Π½ΠΈΡΠ° Π²ΠΎΠΊΡΡΠ³ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Β«ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΒ» ΠΈ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Β«ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°Β», Π² QNX/Neutrino Π²ΡΠ΅ ΡΠ΅ΡΠΊΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΎ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ QNX4 Π²Ρ (ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°) Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΠΈ Ρ.Π΄.) ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. Π QNX/Neutrino Π²ΡΠ΅ ΡΡΠΎ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠΏΡΠΎΡΠ΅Π½ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° MIPS ΠΈ PPCΠΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΡΠ»ΠΈΡΠΈΠΉ QNX/Neutrino ΠΎΡ QNX4 Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΡΡΠΈ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ QNX/Neutrino ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ MIPS ΠΈ PPC (Power PC). QNX4 ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»Π° Β«Π΄ΠΎΠΌΠ°Β» Π½Π° IBM PC Ρ ΠΈΡ BIOS ΠΈ Β«ΠΎΡΠ΅Π½ΡΒ» ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ², QNX/Neutrino ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΏΠΎ-Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌΡ ΡΡΠ²ΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π±Ρ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ Ρ BIOS (ΠΈΠ»ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠΌ ΠΠΠ£) ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π° Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΠ΅, ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ°ΡΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ·Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»Π΅ΠΌ (ΠΈ ΡΠ°ΡΡΠΎ Π±Π΅Π· ΡΡΠ΅ΡΠ° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΠ‘). ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ΄ΡΠΎ QNX/Neutrino Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (callouts), ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΈΠΏ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΡΠΈΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°Ρ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΡΠ³Π°Ρ Π³ΡΡΠΏΠΏΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· QNX4 Π² QNX/Neutrino, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ MIPS ΠΈ PPC ΡΠΆ Π±ΠΎΠ»ΡΠ½ΠΎ Π²ΡΡΡΡΠ½Ρ ΠΏΠΎ ΡΠ°ΡΡΠΈ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ N-Π±Π°ΠΉΡΠΎΠ²ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ½Π°ΡΠ΅ ΡΠ΅ΠΌ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ, ΠΊΡΠ°ΡΠ½ΠΎΠΌΡ N. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° x86 (Ρ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΡΠ»Π°Π³ΠΎΠΌ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ) Π²Ρ Π±Ρ Π²ΠΎΠ»Π΅ΠΉ-Π½Π΅Π²ΠΎΠ»Π΅ΠΉ ΠΎΠ±ΡΠ°ΡΠΈΠ»ΠΈΡΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ·ΠΌΠ΅Π½ΠΈΠ² Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π±ΡΠ»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΡΡΠΎΠ²Π½Π΅Π½Ρ (Π΄Π»Ρ Π½Π΅-x86 ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ²), Π²Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π° x86 ΡΡΠ°Π½Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ x86 Π±ΡΡΡΡΠ΅Π΅ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π²ΡΡΠΎΠ²Π½Π΅Π½Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ.
ΠΡΡΠ³ΠΎΠ΅, ΡΡΠΎ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ Π½Π΅ Π΄Π°Π΅Ρ Π»ΡΠ΄ΡΠΌ ΠΆΠΈΡΡ β ΡΡΠΎ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡ, ΠΏΡΡΠΌΠΎΠΉ (big-endian) ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ (little-endian). (ΠΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΡΡΠΈΠΌΠΎΠ»ΠΎΠ³ΠΈΡ ΡΡΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ², Π·Π°Π³Π»ΡΠ½ΠΈΡΠ΅ Π² Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» Β«ΠΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠΉ ΠΡΠ»Π»ΠΈΠ²Π΅ΡΠ°Β» ΠΠΆΠΎΠ½Π°ΡΠ°Π½Π° Π‘Π²ΠΈΡΡΠ° :-) β ΠΏΡΠΈΠΌ. ΡΠ΅Π΄.). Π£ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° x86 Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡ, ΠΈ ΠΎΠ½ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ. ΠΡΠΎΡΠ΅ΡΡΠΎΡΡ MIPS ΠΈ PPC Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΎΠ±Π° ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡ, Ρ. Π΅. ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ ΠΏΡΡΠΌΡΠΌ, ΡΠ°ΠΊ ΠΈ Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ MIPS ΠΈ PPC ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ ΡΠΈΠΏΠ° RISC (Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄), ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ° |= Π² Π‘ΠΈ (ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡΠ°) ΠΌΠΎΠ³ΡΡ ΠΈ Π½Π΅ Π±ΡΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΌΠΈ. ΠΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΆΡΡΠΊΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌ! Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΡΠ°ΠΉΠ»Π΅ <atomic.h>.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° SMPΠ‘ΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ QNX4 ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ QNX/Neutrino ΡΠΆΠ΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π»Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ SMP ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ x86. SMP Π΄Π°Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΠΠ‘, Π½ΠΎ ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΉ ΠΏΠΈΡΡΠΎΠ»Π΅Ρ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΠ΅Π»ΠΈΠ²Π°Π½ΠΈΡ Π½ΠΎΠ³ΠΈ (ΠΊΡΠΎ Π»ΡΠ±ΠΎΠΏΡΡΠ΅Π½, ΠΏΠΎΠΈΡΠΈΡΠ΅ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΏΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΡΠ°Π·Π΅ Β«shoot yourself in the footΒ» β ΠΏΡΠΈΠΌ. ΡΠ΅Π΄.).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ (ISR) ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠ΅ΡΠ½ΠΈΡΡ ΠΏΠΎΡΠΎΠΊ, Π½ΠΎ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ²Π°Π΅Ρ. Π ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π±Π΅, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠΊΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Ρ ΠΎΡΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
Π Π±Π»ΠΎΠΊΠ΅ SMP ΠΏΠΎΡΠΎΠΊ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π΄Π° ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π’Π°ΠΊ ΡΡΠΎ SMP β ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ ΡΡΠ°Π½ΡΠΈΡ, Π½ΠΎ ΠΈ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ β Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ ΡΠΎ Π½ΠΈ Π±ΡΠ»ΠΎ Β«ΠΏΠ»ΠΎΡ ΠΈΠ΅Β» ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎ Π·Π°ΡΠΈΡΠ΅ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, Π² SMP-ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠ½ΠΈ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠ»ΡΠ²ΡΡ.
ΠΠ»Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²Π΅ΡΠ½ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠ΄Π½Π° ΠΈΠ· ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΡΠ°Π½Π½Π΅ΠΉ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ SMP ΠΏΡΠΎΡΠ²Π»ΡΠ»Π°ΡΡ Π² Β«ΠΎΠΊΠ½Π΅Β» Π΄Π»ΠΈΠ½ΠΎΠΉ Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΡΠΈΠΊΠ»! Π’ΠΎ, ΡΡΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π±ΡΠ»ΠΎ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ Π°ΡΠΎΠΌΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Β«ΡΡΠ΅Π½ΠΈΠ΅/ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ/Π·Π°ΠΏΠΈΡΡΒ», Π² SMP-Π±Π»ΠΎΠΊΠ΅ ΡΡΠ°Π»ΠΎ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²ΠΎ Π² Ρ ΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π³ΠΎ Β«ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅/ΠΎΠ±ΠΌΠ΅Π½Β».