1003.1c (Threads) β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ (ΠΌΡΡΡΠ΅ΠΊΡΡ, ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π±Π°ΡΡΠ΅ΡΡ ΠΈ Π΄Ρ., Π½ΠΎ Π½Π΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ), Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ.
System V API
ΠΡΠΎΡ Π½Π°Π±ΠΎΡ API ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ Π΄Π»Ρ Π²ΡΠΎΡΠΎΠΉ Π²Π΅ΡΠ²ΠΈ[6] UNIX β System V (AT&T Unix System V). ΠΠ°ΠΊ ΠΈ ΠΎΠ±Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ , ΡΡΠΎΡ Π½Π°Π±ΠΎΡ API ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ΅Π½ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΠ‘, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΠ΅Π²ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ TLI Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠΊΠ΅ΡΠΎΠ² BSD. ΠΠ»Ρ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π°ΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² - ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΈ Π΄Ρ. β Π² POSIX API ΠΈ System V API ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΊΠ°ΠΊ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠ°ΠΊ ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² POSIX API ΡΠ΅ΠΌΠ°ΡΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΈΠΏΠΎΠΌ sem_t ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ Ρ Π½ΠΈΠΌ sem_wait() ΠΈ sem_post(), Π° Π² System V API ΡΠ΅ΠΌΠ°ΡΠΎΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΡΠ΄ΡΠ° sem, Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (ΠΈ wait, ΠΈ post) ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ semop(). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ Π½Π΅ Π½Π°Π΄ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°ΠΌΠΈ, Π° Π½Π°Π΄ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ (ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ) ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² (Π² Π½Π°Π±ΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΠΌΠ°ΡΠΎΡ). ΠΠ°ΠΊ ΠΎΡΡΡΠ΄Π° Π²ΠΈΠ΄Π½ΠΎ, Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅Π ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ System V API Π² QNX Π½Π΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π½ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ, Π½ΠΎ ΠΎΠ½, ΠΊΠ°ΠΊ ΡΠΎΠ³ΠΎ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ POSIX, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΈ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΈ Π² Π²ΠΈΠ΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²). ΠΡΠΎΡΡΠΎ Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ POSIX-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΌΠ΅ΡΡΠ°Ρ . Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² POSIX API (ΡΠΈΠΏ sem_t) ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ <semaphore.h>, Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² System V API β Π² ΡΠ°ΠΉΠ»Π΅ <sys/sem.h> (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠΈΠΌ API).
Π‘ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° System V API ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² QNX Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ API, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΠ‘ UNIX (Sun Solaris, HP UNIX ΠΈ Π΄Ρ.). Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΡΡΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ API ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
2. ΠΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ
ΠΡΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ [8] ΠΈ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΠ‘ QNX [1] ΠΎΡΡΠ΅ΡΠ»ΠΈΠ²ΠΎ Π±ΡΠΎΡΠ°Π΅ΡΡΡ Π² Π³Π»Π°Π·Π°, ΡΡΠΎ ΡΠΎΠ½ΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΠΎ ΠΈ Π½Π° Π²Π΅ΡΡΠΌΠ° Π½Π΅ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠΈΠ΅ POSIX-ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠΆΠ΅ ΠΈΠ·ΡΡΠ΅Π½Ρ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Ρ Π½Π° ΠΎΠ±ΡΠ°Π·ΡΠ°Ρ ΠΊΠΎΠ΄Π° Π² ΠΎΠ±ΡΠ΅ΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ ΠΏΠΎ UNIX. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² Β«Π΄ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡΒ» ΡΠΏΠΎΡ Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ²Π»ΡΠ»ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ QNX[7] (Π²Π΅ΡΡΠΈΠΈ 6.X ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ Π΅Π΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ POSIX, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ 4.25) Π»ΠΈΡΠ½ΠΈΠΉ ΡΠ°Π· ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅Ρ, ΡΡΠΎ:
β’ ΠΡΠΎΡΠ΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Β«ΠΌΠ΅ΡΡΠ²ΠΎΠΉΒ» ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ, Ρ ΡΠ°Π½ΡΡΠ΅ΠΉ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅ΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡβ¦ Π§Π΅Π³ΠΎ? ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΏΠΎΡΠΎΠΊΠ°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ (Π³Π»Π°Π²Π½ΡΠΉ) ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΏΡΠΎΡΠ΅ΡΡΠ°), ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈΠ½ΡΡΠΎ Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΌ ΠΏΠΎΠ½ΡΡΠΈΡΠΌ.
β’ ΠΡΠ±ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ, Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ» ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΈ, Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠΎΡ Π·Π΄Π΅ΡΡ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠ΅ΡΠΌΠΈΠ½, ΡΡΠ°Π²ΡΠΈΠΉ ΡΠΆΠ΅ ΡΡΠ΅ΡΠ΅ΠΎΡΠΈΠΏΠ½ΡΠΌ: Β«IPC β ΡΡΠ΅Π΄ΡΡΠ²Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²Β». ΠΠ»Ρ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π½ΡΠ°Π½Ρ Π½Π΅ Π²Π½ΠΎΡΠΈΡ ΡΠΎΠ²Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΡ, Π½ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΡΡΡΠΆΠ΄Π°ΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² (ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ).
β’ Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠ΅ΠΉ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ (MMU β Memory Management Unit) ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Β«Π³ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡΒ» β Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ Π² Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ IPC, ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅Π²Π°ΡΡ Π°Π΄ΡΠ΅ΡΠ½ΡΠ΅ Π±Π°ΡΡΠ΅ΡΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ . (Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ MMU, ΡΠΎ Π²ΡΠ΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ x86-Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Ρ ΠΎΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΠ‘ QNX, Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π²Π°Π»ΠΈΠ»ΠΎ Π·Π° Π΄Π΅ΡΡΡΠΎΠΊ.)
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² QNX Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π² MS-DOS ΠΈΠ»ΠΈ Ρ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ (task) Π² ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ ΠΠ‘ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ VxWorks: ΠΈΡΠΏΠΎΠ»Π½ΠΈΠΌΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°. Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² QNX ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΡΠΊΠΎΠ»Ρ ΡΠ³ΠΎΠ΄Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ, ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π² Π² ΠΏΠΎΡΠΎΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ, Ρ ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ΠΌ, ΡΡΠΎ Π² QNX Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½ΠΈΠΊΠΎΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ (ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Ρ) Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ QNX, ΠΈ Π² ΠΊΠ½ΠΈΠ³Π΅ Π . ΠΠ΅ΡΡΠ΅Π½Π° [1] ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΈΡ ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄ΡΡΠ³ΠΈΠΌ Π²Π΅ΡΠ°ΠΌ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ Π°Π»Π»Π΅Π³ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΉ: ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠΎΠΉ, ΠΊΡΡ Π½Π΅ΠΉ... ΠΡΠ»ΠΈ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ Π°Π»Π»Π΅Π³ΠΎΡΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΡ ΠΎΠ΄ΡΠΈΠ²Ρ Π΄Π»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ°ΡΡΠΈΠ½Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ (ΡΡΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΠ°ΠΊ ΠΈ Π΅ΡΡΡ), ΡΠΎ Π΄Π»Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ Β«ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° β ΠΏΡΠΎΡΠ΅ΡΡ β ΠΏΠΎΡΠΎΠΊΒ» ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΡΡ Π°Π»Π»Π΅Π³ΠΎΡΠΈΡ: Β«Π°ΠΊΠ²Π°ΡΠΈΡΠΌΠ½ΠΎΠ΅ Ρ ΠΎΠ·ΡΠΉΡΡΠ²ΠΎΒ». ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ:
β’ Π Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ, Π³Π΄Π΅ ΠΈΠΌΠ΅ΡΡΡΡ Π²ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΆΠΈΠ·Π½Π΅ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ β ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈΠ΅, Π°ΡΡΠ°ΡΠΈΡ, ΡΠ΅ΡΠΌΠΎΡΠ΅Π³ΡΠ»ΡΡΠΈΡ, ΠΊΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°), β ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π°ΠΊΠ²Π°ΡΠΈΡΠΌΡ (ΠΏΡΠΎΡΠ΅ΡΡΡ), Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ (Π² ΠΎΠ΄Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅, Π² Π΄ΡΡΠ³ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ) ΠΆΠΈΠ²ΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ (ΡΠ°ΡΡΠ΅Π½ΠΈΡ, ΡΡΠ±Ρ, ΡΠ»ΠΈΡΠΊΠΈ). ΠΠΎΠΌΠΈΠΌΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠΈΡ Β«ΡΠ΄ΠΎΠ±ΡΡΠ²Β» Π² ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΡΡΡΠ½ΠΎΡΡΡ β Β«Ρ ΠΎΠ·ΡΠΈΠ½Β». ΠΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΈΠ»ΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΠΊΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅ΡΠ°Π΄ΠΊΠ° ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ ), Π½Π°ΡΡΡΠ°ΡΡΠΈΠ΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Β«ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅Β» ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ (ΡΡΠΎ ΡΠ»ΡΠΆΠ±Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·Π²Π½Π΅ Π½Π°Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ).
β’ ΠΠΊΠ²Π°ΡΠΈΡΠΌΡ (ΠΏΡΠΎΡΠ΅ΡΡΡ) ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ, Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌΠΈ Π² ΡΠ΅Π±Π΅ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ (ΠΏΠΎΡΠΎΠΊΠΈ). ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π°ΡΠ΅Π°Π» ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ (Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ) Π΄Π»Ρ ΠΈΡ ΠΎΠ±ΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ: Π»ΡΠ±ΠΎΠ΅ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ°Π½ΠΈΡ ΠΎΠ±ΠΈΡΠ°Π½ΠΈΡ Π² ΡΠΈΠ»Ρ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΠΎΡΡ-ΠΌΠ°ΠΆΠΎΡΠ½ΡΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ², Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π³ΠΈΠ±Π΅Π»Ρ Π½Π°ΡΡΡΠΈΡΠ΅Π»Ρ (ΠΎΡΠΈΠ±ΠΊΠ° Π½Π°ΡΡΡΠ΅Π½ΠΈΠΈ Π·Π°ΡΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΏΠΎΡΠΎΠΊΠ΅).
β’ ΠΠ±ΠΈΡΠ°ΡΠ΅Π»ΠΈ Π°ΠΊΠ²Π°ΡΠΈΡΠΌΠΎΠ² (ΠΏΠΎΡΠΎΠΊΠΈ) Π»Π΅Π³ΠΊΠΎ ΠΈ Π½Π΅ΠΏΡΠΈΠ½ΡΠΆΠ΄Π΅Π½Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ (ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ, Π½Π°ΠΏΡΠΎΡΠΈΠ², ΡΡΡΡΠΏΠ°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ ΠΌΠ΅ΡΡΠΎ) Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (ΠΏΡΠΎΡΠ΅ΡΡΠ°). ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΎΠ±ΠΈΡΠ°ΡΠ΅Π»ΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² (ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²); Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ Π΄Π°ΠΆΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°ΡΡ ΠΎΠ± ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡΠ»ΠΈ ΠΎΠ±ΠΈΡΠ°ΡΠ΅Π»Ρ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠΎΠΌΡ, Π²Π·ΡΠ²Π°Ρ ΡΠ²ΠΎΠΈΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ (ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΡΠΎΠ±ΡΡ Π·Π½Π°ΠΊΠΎΠ²) ΠΊ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Β«ΠΎΠ±ΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΠ±ΡΡΠ°Π½ΡΠΈΠΈΒ», Π²Π·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΊ Ρ ΠΎΠ·ΡΠΈΠ½Ρ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅) ΠΎ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π΅ (Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ).
β’ ΠΡΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅ΡΡΡΡΡ (ΠΊΠΈΡΠ»ΠΎΡΠΎΠ΄, ΠΊΠΎΡΠΌ, ΡΠ²Π΅Ρ) ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π² ΡΠ΅Π»ΠΎΠΌ). ΠΠ±ΠΈΡΠ°ΡΠ΅Π»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (ΠΏΠΎΡΠΎΠΊΠΈ) ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡ Π·Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ²ΠΎΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ (ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ²) ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ (Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Ρ) ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Β«Π»ΠΈΡΠ½ΠΎΡΡΠ½ΡΡ Β» Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ: ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ, Π±ΡΡΡΡΠΎΡΡ ΡΠ΅Π°ΠΊΡΠΈΠΈ ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΈ Ρ.Π΄.
Π’Π°ΠΊΠ°Ρ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½Π°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΡΡΠ΅ΡΠ»ΠΈΠ²Π΅Π΅ ΠΎΡΡΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΏΠΎΡΠΎΠΊ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΡΠΎΠ²Π½ΡΠΌ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΏΠΎΠ½ΡΡΠΈΠΉ ΠΠ‘. ΠΡΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΡΠΌΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ, ΡΡΠΎ Π² Π»ΡΠ±ΠΎΠΉ ΠΠ‘ (Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π΅) Π²ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ΅Π³Π΄Π° Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ Π² Π½Π΅ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌΠΎΠΌ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅ Ρ ΠΎΡΡ Π±Ρ Ρ ΠΎΠ΄Π½ΠΈΠΌ (Π³Π»Π°Π²Π½ΡΠΌ) ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΠΈ Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Β«ΠΏΡΠΎΡΠ΅ΡΡΠ° Π±Π΅Π· ΠΏΠΎΡΠΎΠΊΠ°Β».
ΠΡΡΡΠ΄Π° ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Β«ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΡΡΡΠ΅ΠΉΒ» (Π΅Π΄ΠΈΠ½ΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΠ‘ Linux ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° (fork()), ΠΈ ΠΏΠΎΡΠΎΠΊΠ° (pthread_create()) ΡΠ²Π΅Π»ΠΈ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ Π²ΡΠ·ΠΎΠ²Ρ _clone(), ΡΡΠΎ ΡΠ²ΠΈΠ»ΠΎΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ»Π»ΡΠ·ΠΎΡΠ½ΠΎΠΉ ΡΠΉΡΠΎΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ, ΠΌΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Β«Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡΒ».
Π£ΡΠΈΠ»ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π»Π΅Ρ Π±ΡΠ»ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΠ°Π· Π½Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ², Π»ΠΈΠΊΠ²ΠΈΠ΄Π°ΡΠΈΡ ΡΡΠΎΠΉ Β«Π³ΠΈΠ±ΠΊΠΎΡΡΠΈΒ» ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ POSIX-ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΡΡΡΠ΄Π° ΠΆΠ΅ Π²ΡΡΠ΅ΠΊΠ°ΡΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π»Π΅Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π½ΠΎΠ²ΡΡ Β«ΡΠΊΠ·ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ Β» ΠΠ‘, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½Π° ΡΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΏΠΎΡΠΎΠΊΠ°, ΠΈ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΠΉ Β«Π³ΠΈΠ±ΡΠΈΠ΄Π½ΠΎΠΉΒ» ΡΡΠ±ΡΡΠ°Π½ΡΠΈΠΈ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ΅ΠΉ Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΏΠΎΡΠΎΠΊΠ°, Π΅ΡΠ»ΠΈ ΡΠΎΠ³ΠΎ Π·Π°Ρ ΠΎΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ (Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ). ΠΠΎ Π½Π°ΡΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, ΠΈΠ΄Π΅Ρ Β«Π³ΠΈΠ±ΡΠΈΠ΄ΠΈΠ·Π°ΡΠΈΠΈΒ» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½Π° ΠΈ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π½Π°ΡΠ΅ΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΎ-ΡΠΎ, Π² Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°ΡΡΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡΠ΅Π³ΠΎ Π°ΠΊΠ²Π°ΡΠΈΡΠΌ, Π° Π² Π·Π°Π΄Π½Π΅ΠΉ β ΡΡΠ±Ρ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π΄Π°ΠΆΠ΅ ΡΡΡΠ°ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ ΡΡΡΠ°Π»ΠΊΠ°β¦