Π Π°Π½ΡΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ name_open() Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠ± ΡΡΠΎΠΌ Π½Π΅ Π·Π½Π°Π». Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΡΠ»Π°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ _IO_CONNECT/_IO_OPEN. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΡΠ΅ΡΠ²Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ _IO_CONNECT.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°Π΄Π°ΡΠ° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π½Π°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ»ΠΈ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ ΠΌΠ½Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ. ΠΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ. Π Π²ΠΎΡ Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ Β«ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Β» ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π² Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Ρ ΠΌΠ΅Π½Ρ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ· ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΡΠΌ Β«ΡΠΏΠ°ΡΡΠ°Π½ΡΠΊΠΈΠΌΒ» ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΏΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Β«Ρ ΡΡΠΏΠΊΠΈΠΌΒ», ΡΡΠ΅Π±ΡΡΡΠΈΠΌ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ°Π»ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΠΌ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΠΈΡΠ½ΠΎ ΠΌΠ½Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠΌΠΏΠΎΠ½ΠΈΡΡΠ΅Ρ Π²ΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π½ΠΎ Π±ΠΎΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΡΡΡΠ°ΡΡΠΈΡ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΡΠ°Π²ΠΈΡΡΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π»Π΅Π½ΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΡΠ΅ΡΡΡΡΠΎΠ², ΠΈ ΡΠ°ΠΌΠΎΠΌΡ Π½Π°Π΄ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ...). ΠΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΡΠΎ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½ΡΠ°Π²ΠΈΡΡΡ Π²Π°ΠΌ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
1. Π ΠΎΠ± ΠΠ΅ΡΡΠ΅Π½ Β«ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² QNX/Neutrino 2Β». β Π‘ΠΠ±.: ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΈΡ, 2001. β 478 Ρ.
2. Π£ΠΈΠ»ΡΡΠΌ Π‘ΡΠΈΠ²Π΅Π½Ρ Β«UNIX: Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²Β». β Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2002. β 576 Ρ.
3. Π£ΠΈΠ»ΡΡΠΌ Π‘ΡΠΈΠ²Π΅Π½Ρ Β«UNIX: ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ». β Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2003. β 1086 Ρ.
4. ΠΠ»Π΅ΠΊΡΠ΅Π΅Π², ΠΠΈΠ΄ΡΠ΅Π²ΠΈΡ, ΠΠΎΠ»ΠΊΠΎΠ², ΠΠΎΡΠΎΡΠΊΠΎ, ΠΠΎΡΡΠ°ΠΊ, ΠΠ°Π²Π½ΠΈΡ, Π‘ΠΎΡΠΈΠ½, Π¦ΠΈΠ»ΡΡΠΈΠΊ, Π§ΠΈΠ»ΠΈΠΊΠΈΠ½ Β«ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΡ Ρ QNXΒ». β Π.: ΠΠΎΠΌΠΡΠΊ, 2004. β 432 Ρ.
5. ΠΡΠΉΡ Π₯ΡΠ²ΠΈΠ»Π΅Π½Π΄, ΠΠ°ΠΉΠ½Π° ΠΡΠ΅ΠΉ, ΠΠ΅Π½ Π‘Π°Π»Π°ΠΌΠ° Β«Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² UNIXΒ». β Π.: ΠΠΠ ΠΡΠ΅ΡΡ, 2000. β 368 Ρ.
6. Π’Π΅ΡΠ΅Π½Ρ Π§Π°Π½ Β«Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C++ Π΄Π»Ρ UNIXΒ». β Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ Π³ΡΡΠΏΠΏΠ° BHV, 1997. β 592 Ρ.
7. ΠΠ½Π΄ΡΠ΅ΠΉ Π ΠΎΠ±Π°ΡΠ΅Π²ΡΠΊΠΈΠΉ Β«ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° UNIXΒ». β Π‘ΠΠ±.: BHV-Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 1997. β 528 Ρ.
8. Β«QNX Neutrino Realtime Operating System. System ArchitectureΒ». β QNX Software Systems Ltd, 2002.
9. ΠΠΎΠ½ Π‘Π½Π΅ΠΉΠ΄Π΅Ρ Β«ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ TCP/IPΒ». β Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2001. β 320 Ρ.
10. Π. ΠΠ΅ΠΉΠΊΡΡΡΠ° Β«ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²Β», ΡΠ±ΠΎΡΠ½ΠΈΠΊ Β«Π―Π·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ» ΠΏΠΎΠ΄ ΡΠ΅Π΄. Π€. ΠΠ΅Π½ΡΠΈ. β Π.: ΠΠΈΡ, 1972.
11. Π‘ΡΠΈΠ²Π΅Π½ Π―Π½Π³ Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°Β». β Π.: ΠΠΈΡ, 1985. β 400 Ρ.
12. ΠΠ°ΡΠΊ ΠΠΈΡΡΠ΅Π»Π», ΠΠΆΠ΅ΡΡΡΠΈ ΠΡΠ»Π΄Π΅ΠΌ, ΠΠ»Π΅ΠΊΡ Π‘Π°ΠΌΡΡΡΠ» Β«ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ Linux. ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Β». β Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌ Β«ΠΠΈΠ»ΡΡΠΌΡΒ», 2002. β 288 Ρ.
13. Π‘. L. Liu and J.W. Layland Β«Scheduling Algorithms for Multiprogramming in a Hard Real-Time EnvironmentΒ», J. CM, Vol. 20, No. 1, Jan.1973, pp. 46-61.
14. The Open Group Base Specifications Issue 6, IEEE Std 1003.1-2001. General Information. Copyright 2001 The IEEE and The Open Group.
1
ΠΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΈΡΠ°Π»ΠΈΡΡ ΠΊΠ½ΠΈΠ³ΠΈ, ΡΡΠ°Π²ΡΠΈΠ΅ ΡΠ°ΠΌΡΠΌΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ Π² ΠΌΠΈΡΠΎΠ²ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΠ°Π½ΠΈΡΠ»Ρ ΠΠΎΡΡΠΎΠ½Π° ΠΏΠΎ MS-DOS ΠΈΠ»ΠΈ ΠΠΆΠ΅ΡΡΡΠΈ Π ΠΈΡ ΡΠ΅ΡΠ° ΠΏΠΎ Win32.
2
ΠΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ QNX API ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π‘. ΠΠ°ΠΏΡΠΎΡΠΈΠ², Π²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° ΠΈΠ·Π»Π°Π³Π°ΡΡΡΡ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ Π‘++, Π° ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΠΌΡΠ΅ ΠΊ ΡΠ΅ΠΊΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π² Π‘++. ΠΡΠΎ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ ΡΡΠ΄ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ, Π½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π·Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ QNX API.
3
Π ΠΊΠ½ΠΈΠ³Π΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΊΠΎΠ΄Π° ΠΌΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ "ΠΠΎΠ»ΡΡΠ΅Π½ ΡΠΈΠ³Π½Π°Π» SIGINT", ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π΄ΠΎΡ ΠΎΠ΄ΡΠΈΠ²ΠΎΡΡΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ°ΠΉΠ»Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² Π°ΡΡ ΠΈΠ²Π΅, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π°Π½Π³Π»ΠΎΡΠ·ΡΡΠ½ΡΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π° ΡΠ΅ΠΊΡΡΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΎΠ»Ρ QNX Π½Π΅ ΡΡΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠ° Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ (pterm, xterm) ΠΈΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
4
ΠΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ Π΄ΠΈΠΊΡΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Β«ΡΠ»Π°Π±ΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²Β», Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π. ΠΠ΅ΠΉΠΊΡΡΡΠΎΠΉ [10]. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΈ ΡΡΡΠΎΠΉΠ½Π°Ρ Β«ΠΊΠ°ΡΡΠΈΠ½Π° ΠΌΠΈΡΠ°Β», Π²ΡΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π. ΠΠ΅ΠΉΠΊΡΡΡΠΎΠΉ ΠΈ ΡΡΠΈΡΠ°ΡΡΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠΈΠΊΠΎΠΉ, ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ (Β«Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΒ») ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ°Π²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° Π·Π°ΡΡΠΌΠ°Π½ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π΄Π΅Π»Π°Π΅Ρ Π²ΡΠ΅ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅β¦
5
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΠ‘ UNIX ΡΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ½Π΅ΡΠ΅Π½Π° ΡΠΈΡΡΠΎ ΠΊ System V ΠΈΠ»ΠΈ BSD, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ POSIX, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π»ΠΈΡΠΈΡ ΠΈ ΡΠΎΠ³ΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ API (Ρ ΠΎΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠΏΠ»ΠΈΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ API ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Β«ΠΎΠ±Π΅ΡΡΠΊΠ°Β» ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ). ΠΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ (ΠΊ 1997β1998 Π³Π³.) ΠΠ‘, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΎΠ±Π° Π½Π°Π±ΠΎΡΠ° API, ΡΡΠ°Π»ΠΈ Sun Solaris 2.6 ΠΈ Digital Unix 4.0B [3].
6
ΠΡΠΈ ΠΎΠ±ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ UNIX, Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅ΠΉΡΡ Ρ 1971 Π³. [7], Π΄Π²Π΅ Π²Π΅ΡΠ²ΠΈ API β BSD ΠΈ System V β Π² ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ·Π΄Π½ΠΎ: BSD ΠΊ 1983 Π³., a System V ΠΊ 1987 Π³. [3, 7]. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ IPC-ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ System V (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΌΠ°ΡΠΎΡΡ) ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠ°Π½ΡΡΠ΅ ΡΠ²ΠΎΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ· BSD. ΠΠ°ΠΊ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² [3]: Β«ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ System V IPC Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΡΡΡΠΏΠ½Π° <β¦> ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ΅ΠΌΠ°ΡΠΎΡΡ ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π² ΠΊΠΎΠ½ΡΠ΅ 70Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠΈΠ»ΠΈΠ°Π»ΠΎΠ² Bell Laboratories Π² Π³ΠΎΡΠΎΠ΄Π΅ ΠΠΎΠ»ΡΠΌΠ±ΡΡβ¦ ΠΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π»Π°ΡΡ Columbus Unix, ΠΈΠ»ΠΈ Π‘Π UnixΒ».
7
[4]: Π³Π»Π°Π²Π° Π. ΠΠ»Π΅ΠΊΡΠ΅Π΅Π²Π° Β«ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈΒ».
8
ΠΠ΄Π΅ΡΡ Π ΠΎΠ±Π°ΡΠ΅Π²ΡΠΊΠΈΠΉ ΠΌΠΈΠΌΠΎΡ ΠΎΠ΄ΠΎΠΌ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΡΡΠΎΠΌ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° shell, ΠΈΠ»ΠΈ ΡΠ·ΡΠΊΠΎΠ² Perl, Tcl/Tk, ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ². Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ Β«ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΒ» Β«ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌΒ» Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ ΡΠΊΡΠΈΠΏΡΠ°, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ Π½Π΅ΠΌΡ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π²ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
9
ΠΠ΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ [7]; ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΈ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠ»ΠΎΠ½ΠΎΠ² UNIX Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ Π² ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ ΠΈΡ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°Ρ .
10
ΠΠ΄Π΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²ΡΡΠΊΠΈΠΉ, ΡΠΈΡΠ°ΡΡΠΈΠΉ Π²Π°Ρ ΠΊΠΎΠ΄, ΡΡΡ ΠΆΠ΅ Π²ΠΎΡΠΊΠ»ΠΈΠΊΠ½ΡΠ»: Β«ΠΡ ΠΈ ΠΊΡΡΡΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΡΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ°ΠΊΠΎΠ΅!Β», Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ spawn(). ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ fork(), Π° Π΅ΡΠ»ΠΈ ΡΡΠ°Π²ΠΈΡΡΡ Π·Π°Π΄Π°ΡΠ° Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΈ ΡΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°, ΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈ system().
11
ΠΠ΅ΡΠ°Π»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΠΈ ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΅ΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π»Π΅Π΅.
12
ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ, ΡΡΠΎ Π»ΠΈΡΡΠΈΠ½Π³ΠΈ, Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (Π½Π° ΡΠ΅ΡΠΎΠΌ ΡΠΎΠ½Π΅), ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π°ΡΡ ΠΈΠ²Π°Ρ ; ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Ρ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².
13
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΡΠΎ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ² spawn(), Π²Π΅Π΄Ρ ΠΎΠ½ ΡΠ°ΠΌΡΠΉ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ ΠΈ ΡΡΠ΅Π²Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ.
14
Π§Π°ΡΡΠΎ Π² ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ POSIX 1003b (1993). ΠΠΎ POSIX 1003b Π½Π΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π³ΡΡΠΏΠΏΡ pthread_*, Ρ ΠΎΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ sem_t. Π£. Π‘ΡΠΈΠ²Π΅Π½Ρ [2] ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ POSIX ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΈΠΈ 1003.1 (1995).
15
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ fork() β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ½Ρ. Π₯ΠΎΡΡ POSIX ΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ (pthread_atfork()) ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° Π½Π΅ ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. API QNX ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΌ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ. ΠΠ΅ΡΠ°Π»ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° pthread_atfork() ΡΠΌ. Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ QNX.
16
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Ρ ΡΡΠΈΠΌ ΠΈ ΡΠ²ΡΠ·Π°Π½ΠΎ ΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡ Β«Π»Π΅Π³ΠΊΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡΒ». ΠΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½ (LWP β lightweight process) Π²Π²Π΅Π»Π° Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΡ, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΡ, ΡΠΈΡΠΌΠ° Sun Microsystems.
17
ΠΡΠ° ΡΡ Π΅ΠΌΠ° PID/TID ΠΎΠΏΠΈΡΠ°Π½Π° Π² POSIX, Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ UNIX-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΠΠ‘. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΠΉ ΡΠ΄ΡΠ° Linux (ΡΠΈΡΡΠ°ΡΠΈΡ ΡΡΠ°Π»Π° ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΉΡΠ°Ρ) ΠΏΡΠΎΡΠ΅ΡΡΡ (fork()) ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ (pthread_create()) (ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈΡΡ Π½Π° Π±Π°Π·Π΅ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° (_clone()) ΠΈ TID ΡΠ²Π»ΡΠ»ΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ ΡΡΠ΄Ρ PID. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΡΠ΄Π½ΠΎ Π²ΡΡΠ²Π»ΡΠ΅ΠΌΡΠΌ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΠ‘.