Β exit(EXIT_SUCCESS);
}
ΠΠ²Π° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½Ρ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ PID ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
fork()
Π ΠΈΡ. 2.2. Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²
Π ΠΈΡΡΠ½ΠΎΠΊ 2.2 ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΄Π²ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²: Π²ΡΡ ΠΈΡ Β«ΡΠ°Π±ΠΎΡΠ°Β» ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠ½Π΅ΡΡ. Π’Π°ΠΊΡΡ ΡΡ Π΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΡΡΠΎΠΊΠΎΠΌ ΡΠ΅ΠΌΠΏΠ΅ (Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Β«Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉΒ» RR-Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ) ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ², Π½Π°Π·ΡΠ²Π°Ρ Π΅Π΅ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Β«ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΠΎΠΉΒ».
Π§ΡΠΎΠ±Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈ Π΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΌΡ Π½Π΅ ΡΡΠΎΠ³Π°Π»ΠΈ ΡΠΎΠ±ΡΡΠΈΡ Β«Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉΒ» Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΈ RR-Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 4 ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠΈΠΊΠ° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ ~4 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ). ΠΠ°ΠΊ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠΊΠ°ΠΆΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΡΠΎΠ±ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° 1 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Ρ, Ρ.e. Π² 4000 ΡΠ°Π· ΡΠ°ΡΠ΅, ΠΈ Π²ΠΎΠ·ΠΌΡΡΠ΅Π½ΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΠΌΡΠ΅ RR-Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π½Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ.
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
# nice -n-19 p5 1000000
1069102 : cycles - 1234175656; on sched β 617
0Β Β Β Β Β Β : cycles - 1234176052; on sched - 617
# nice -n-19 p5 100000
1003566 : cycles - 123439225; on sched β 617
0Β Β Β Β Β Β Β : cycles - 123440347; on sched - 617
# nice -n-19 p5 10000
1019950 : cycles - 12339084; on sched β 616
0Β Β Β Β Β Β : cycles - 12341520; on sched - 617
# nice -n-19 p5 1000
1036334 : cycles - 1243117; on sched β 621
0Β Β Β Β Β Β Β : cycles - 1245123; on sched - 622
# nice -n-19 p5 100
1052718 : cycles - 130740; on sched β 653
0Β Β Β Β Β Β : cycles - 132615; on sched - 663
ΠΠΈΠ΄Π½Π° Π½Π° ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΉΡΠΈΠ²Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ°, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠ°Ρ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° Π°ΠΊΡΠΎΠ² Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠ΅Π³ΠΎΡΡ Π½Π° 4 ΠΏΠΎΡΡΠ΄ΠΊΠ°.
ΠΡΠ±ΡΠΎΡΠΈΠ² ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ, ΠΏΡΠΈΠ²Π½ΠΎΡΠΈΠΌΡΠ΅ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠΈΠΊΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° 600 ΡΠΈΠΊΠ»ΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΡΡΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° 1,2 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ 533 ΠΠΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ ΡΡΠΎΡ ΡΠ΅ΡΡ).
ΠΠΎΡΠΎΠΊΠΈ
ΠΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ [14]POSIX ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΡΡΡ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Β«Π»Π΅Π³ΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²Β» β ΠΏΠΎΡΠΎΠΊΠΎΠ² (Π³ΡΡΠΏΠΏΠ° API
pthread_*()
pthread_create()
fork()
select()
ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΡΡΠΈ Π΄Π²Π΅ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ, ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½Π°Ρ ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²Π°Ρ, Π½Π΅ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ·-Π·Π° Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (not thread safe) ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² UNIX (
fork()
select()
ΠΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠΉ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ (Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ) Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΡΡΠΎΠ³ΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ:
β’Β Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈΠ»ΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ Π³ΡΡΠΏΠΏΡ
spawn()
β’Β Π΄ΡΠ±Π»ΠΈΠΊΠ°Ρ ΠΊΠΎΠ΄Π° Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° [15]ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π²ΡΠ·ΠΎΠ²ΠΎΠΌ
fork()
β’Β ΡΡΠ°ΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° (
void*()(void*)
pthread_create()
Π ΠΏΠ΅ΡΠ²ΡΡ Π΄Π²ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ (Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ) ΠΏΠΎΡΠΎΠΊΠ° ΠΈ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ - ΡΠ²Π½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈ ΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Β«ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠ°Β». Π₯ΠΎΡΡ ΡΡΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π³ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠ° Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ ΠΆΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΡΠΎΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊ ΠΏΠΎΡΠΎΠΊΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΠΈ ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°, ΡΠΎ Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΊ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ) ΠΊΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅Π³ΠΈΡΡΡΡ FPU, ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ) ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π’Π΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ²ΡΠ·Ρ ΠΏΠΎΡΠΎΠΊΠ° Ρ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΎ ΡΠ΅ΠΌ ΠΌΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅. ΠΠ΅ΡΠ°Π»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ , ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΎΠΉ ΠΠ‘, Π½ΠΎ ΠΈ ΡΠΈΠΏΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ (Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΠΠ‘, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΈ QNX).
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² ΠΏΠΎΡΠΎΠΊΠΎΠ² Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠ³ΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ. [16]ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΡΡΠ΅ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ΄Π½ΠΎΡΠΎΠ΄Π½ΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠΈΡΡ ΡΠΎΠ±Π»Π°Π·Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΠ‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅, ΡΡΠΎ ΠΌΡ Π²ΡΠΊΠΎΡΠ΅ ΠΈ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ QNX.
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ° (Π·Π½Π°ΡΠΈΠΌΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°!) ΡΠ²Π»ΡΠ΅ΡΡΡ TID (Thread ID), ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΏΠΎΡΠΎΠΊΡ ΠΏΡΠΈ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ
pthread_create()
main()